react-native-nitro-markdown 0.5.3 → 0.5.4

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 (118) hide show
  1. package/README.md +77 -10
  2. package/android/CMakeLists.txt +1 -1
  3. package/android/src/main/java/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSession.kt +9 -3
  4. package/cpp/bindings/HybridMarkdownParser.cpp +4 -2
  5. package/cpp/core/MD4CParser.cpp +20 -2
  6. package/cpp/core/MarkdownTypes.hpp +1 -1
  7. package/lib/commonjs/headless.js +2 -2
  8. package/lib/commonjs/markdown.js +16 -12
  9. package/lib/commonjs/markdown.js.map +1 -1
  10. package/lib/commonjs/renderers/blockquote.js +15 -13
  11. package/lib/commonjs/renderers/blockquote.js.map +1 -1
  12. package/lib/commonjs/renderers/code.js +57 -53
  13. package/lib/commonjs/renderers/code.js.map +1 -1
  14. package/lib/commonjs/renderers/heading.js +48 -46
  15. package/lib/commonjs/renderers/heading.js.map +1 -1
  16. package/lib/commonjs/renderers/horizontal-rule.js +10 -8
  17. package/lib/commonjs/renderers/horizontal-rule.js.map +1 -1
  18. package/lib/commonjs/renderers/image.js +12 -3
  19. package/lib/commonjs/renderers/image.js.map +1 -1
  20. package/lib/commonjs/renderers/list.js +75 -70
  21. package/lib/commonjs/renderers/list.js.map +1 -1
  22. package/lib/commonjs/renderers/math.js +4 -3
  23. package/lib/commonjs/renderers/math.js.map +1 -1
  24. package/lib/commonjs/renderers/paragraph.js +15 -13
  25. package/lib/commonjs/renderers/paragraph.js.map +1 -1
  26. package/lib/commonjs/renderers/style-cache.js +14 -0
  27. package/lib/commonjs/renderers/style-cache.js.map +1 -0
  28. package/lib/commonjs/renderers/table/index.js +7 -4
  29. package/lib/commonjs/renderers/table/index.js.map +1 -1
  30. package/lib/module/headless.js +2 -2
  31. package/lib/module/markdown.js +16 -12
  32. package/lib/module/markdown.js.map +1 -1
  33. package/lib/module/renderers/blockquote.js +15 -13
  34. package/lib/module/renderers/blockquote.js.map +1 -1
  35. package/lib/module/renderers/code.js +57 -53
  36. package/lib/module/renderers/code.js.map +1 -1
  37. package/lib/module/renderers/heading.js +48 -46
  38. package/lib/module/renderers/heading.js.map +1 -1
  39. package/lib/module/renderers/horizontal-rule.js +10 -8
  40. package/lib/module/renderers/horizontal-rule.js.map +1 -1
  41. package/lib/module/renderers/image.js +13 -4
  42. package/lib/module/renderers/image.js.map +1 -1
  43. package/lib/module/renderers/list.js +75 -70
  44. package/lib/module/renderers/list.js.map +1 -1
  45. package/lib/module/renderers/math.js +4 -3
  46. package/lib/module/renderers/math.js.map +1 -1
  47. package/lib/module/renderers/paragraph.js +15 -13
  48. package/lib/module/renderers/paragraph.js.map +1 -1
  49. package/lib/module/renderers/style-cache.js +10 -0
  50. package/lib/module/renderers/style-cache.js.map +1 -0
  51. package/lib/module/renderers/table/index.js +7 -4
  52. package/lib/module/renderers/table/index.js.map +1 -1
  53. package/lib/typescript/commonjs/Markdown.nitro.d.ts +1 -0
  54. package/lib/typescript/commonjs/Markdown.nitro.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/headless.d.ts +2 -2
  56. package/lib/typescript/commonjs/markdown.d.ts +1 -1
  57. package/lib/typescript/commonjs/markdown.d.ts.map +1 -1
  58. package/lib/typescript/commonjs/renderers/blockquote.d.ts +1 -1
  59. package/lib/typescript/commonjs/renderers/blockquote.d.ts.map +1 -1
  60. package/lib/typescript/commonjs/renderers/code.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/renderers/heading.d.ts +1 -1
  62. package/lib/typescript/commonjs/renderers/heading.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/renderers/horizontal-rule.d.ts +1 -1
  64. package/lib/typescript/commonjs/renderers/horizontal-rule.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/renderers/image.d.ts.map +1 -1
  66. package/lib/typescript/commonjs/renderers/list.d.ts +1 -1
  67. package/lib/typescript/commonjs/renderers/list.d.ts.map +1 -1
  68. package/lib/typescript/commonjs/renderers/math.d.ts +1 -1
  69. package/lib/typescript/commonjs/renderers/math.d.ts.map +1 -1
  70. package/lib/typescript/commonjs/renderers/paragraph.d.ts +1 -1
  71. package/lib/typescript/commonjs/renderers/paragraph.d.ts.map +1 -1
  72. package/lib/typescript/commonjs/renderers/style-cache.d.ts +3 -0
  73. package/lib/typescript/commonjs/renderers/style-cache.d.ts.map +1 -0
  74. package/lib/typescript/commonjs/renderers/table/index.d.ts.map +1 -1
  75. package/lib/typescript/module/Markdown.nitro.d.ts +1 -0
  76. package/lib/typescript/module/Markdown.nitro.d.ts.map +1 -1
  77. package/lib/typescript/module/headless.d.ts +2 -2
  78. package/lib/typescript/module/markdown.d.ts +1 -1
  79. package/lib/typescript/module/markdown.d.ts.map +1 -1
  80. package/lib/typescript/module/renderers/blockquote.d.ts +1 -1
  81. package/lib/typescript/module/renderers/blockquote.d.ts.map +1 -1
  82. package/lib/typescript/module/renderers/code.d.ts.map +1 -1
  83. package/lib/typescript/module/renderers/heading.d.ts +1 -1
  84. package/lib/typescript/module/renderers/heading.d.ts.map +1 -1
  85. package/lib/typescript/module/renderers/horizontal-rule.d.ts +1 -1
  86. package/lib/typescript/module/renderers/horizontal-rule.d.ts.map +1 -1
  87. package/lib/typescript/module/renderers/image.d.ts.map +1 -1
  88. package/lib/typescript/module/renderers/list.d.ts +1 -1
  89. package/lib/typescript/module/renderers/list.d.ts.map +1 -1
  90. package/lib/typescript/module/renderers/math.d.ts +1 -1
  91. package/lib/typescript/module/renderers/math.d.ts.map +1 -1
  92. package/lib/typescript/module/renderers/paragraph.d.ts +1 -1
  93. package/lib/typescript/module/renderers/paragraph.d.ts.map +1 -1
  94. package/lib/typescript/module/renderers/style-cache.d.ts +3 -0
  95. package/lib/typescript/module/renderers/style-cache.d.ts.map +1 -0
  96. package/lib/typescript/module/renderers/table/index.d.ts.map +1 -1
  97. package/nitro.json +12 -3
  98. package/nitrogen/generated/android/NitroMarkdownOnLoad.cpp +2 -2
  99. package/nitrogen/generated/android/c++/JFunc_void.hpp +2 -2
  100. package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +2 -2
  101. package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.hpp +2 -2
  102. package/nitrogen/generated/ios/NitroMarkdown+autolinking.rb +2 -0
  103. package/nitrogen/generated/shared/c++/ParserOptions.hpp +6 -2
  104. package/package.json +5 -5
  105. package/react-native-nitro-markdown.podspec +3 -0
  106. package/src/Markdown.nitro.ts +1 -0
  107. package/src/headless.ts +2 -2
  108. package/src/markdown.tsx +30 -12
  109. package/src/renderers/blockquote.tsx +22 -17
  110. package/src/renderers/code.tsx +75 -63
  111. package/src/renderers/heading.tsx +60 -54
  112. package/src/renderers/horizontal-rule.tsx +17 -12
  113. package/src/renderers/image.tsx +15 -4
  114. package/src/renderers/list.tsx +93 -76
  115. package/src/renderers/math.tsx +8 -3
  116. package/src/renderers/paragraph.tsx +22 -17
  117. package/src/renderers/style-cache.ts +14 -0
  118. package/src/renderers/table/index.tsx +15 -10
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.InlineCode = exports.CodeBlock = void 0;
7
7
  var _react = require("react");
8
8
  var _reactNative = require("react-native");
9
+ var _styleCache = require("./style-cache.js");
9
10
  var _headless = require("../headless.js");
10
11
  var _MarkdownContext = require("../MarkdownContext.js");
11
12
  var _codeHighlight = require("../utils/code-highlight.js");
@@ -22,40 +23,8 @@ const CodeBlock = ({
22
23
  } = ctx;
23
24
  const highlighter = ctx.highlightCode === true ? _codeHighlight.defaultHighlighter : typeof ctx.highlightCode === "function" ? ctx.highlightCode : null;
24
25
  const displayContent = content ?? (node ? (0, _headless.getTextContent)(node) : "");
25
- const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
26
- codeBlock: {
27
- backgroundColor: theme.colors.codeBackground,
28
- borderRadius: theme.borderRadius.m,
29
- padding: theme.spacing.l,
30
- marginVertical: theme.spacing.m,
31
- borderWidth: 1,
32
- borderColor: theme.colors.border
33
- },
34
- codeLanguage: {
35
- color: theme.colors.codeLanguage,
36
- fontSize: theme.fontSizes.xs,
37
- fontWeight: "600",
38
- marginBottom: theme.spacing.s,
39
- textTransform: "uppercase",
40
- letterSpacing: 0.5,
41
- fontFamily: theme.fontFamilies.mono,
42
- ...(_reactNative.Platform.OS === "android" && {
43
- includeFontPadding: false
44
- })
45
- },
46
- codeBlockText: {
47
- fontFamily: theme.fontFamilies.mono ?? _reactNative.Platform.select({
48
- ios: "Courier",
49
- android: "monospace"
50
- }),
51
- fontSize: theme.fontSizes.s,
52
- color: theme.colors.text,
53
- lineHeight: theme.fontSizes.s * 1.5,
54
- ...(_reactNative.Platform.OS === "android" && {
55
- includeFontPadding: false
56
- })
57
- }
58
- }), [theme]);
26
+ const highlightedTokens = (0, _react.useMemo)(() => highlighter && language ? highlighter(language, displayContent) : null, [displayContent, highlighter, language]);
27
+ const styles = (0, _styleCache.getCachedStyles)(codeBlockStylesCache, theme, createCodeStyles);
59
28
  const showLanguage = theme.showCodeLanguage && language;
60
29
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
61
30
  style: [styles.codeBlock, style],
@@ -66,10 +35,10 @@ const CodeBlock = ({
66
35
  horizontal: true,
67
36
  showsHorizontalScrollIndicator: false,
68
37
  bounces: false,
69
- children: highlighter && language ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
38
+ children: highlightedTokens ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
70
39
  style: styles.codeBlockText,
71
40
  selectable: true,
72
- children: highlighter(language, displayContent).map((token, i) => {
41
+ children: highlightedTokens.map((token, i) => {
73
42
  const tokenColor = ctx.theme.colors.codeTokenColors?.[token.type];
74
43
  return tokenColor ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
75
44
  style: {
@@ -99,27 +68,62 @@ const InlineCode = ({
99
68
  theme
100
69
  } = (0, _MarkdownContext.useMarkdownContext)();
101
70
  const displayContent = content ?? children ?? (node ? (0, _headless.getTextContent)(node) : "");
102
- const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
103
- codeInline: {
104
- fontFamily: theme.fontFamilies.mono ?? _reactNative.Platform.select({
105
- ios: "Courier",
106
- android: "monospace"
107
- }),
108
- fontSize: theme.fontSizes.s,
109
- color: theme.colors.code,
110
- backgroundColor: theme.colors.codeBackground,
111
- paddingHorizontal: theme.spacing.xs,
112
- paddingVertical: 2,
113
- borderRadius: theme.borderRadius.s,
114
- ...(_reactNative.Platform.OS === "android" && {
115
- includeFontPadding: false
116
- })
117
- }
118
- }), [theme]);
71
+ const styles = (0, _styleCache.getCachedStyles)(inlineCodeStylesCache, theme, createInlineStyles);
119
72
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
120
73
  style: [styles.codeInline, style],
121
74
  children: displayContent
122
75
  });
123
76
  };
124
77
  exports.InlineCode = InlineCode;
78
+ const codeBlockStylesCache = new WeakMap();
79
+ const inlineCodeStylesCache = new WeakMap();
80
+ const getMonoFontFamily = theme => theme.fontFamilies.mono ?? _reactNative.Platform.select({
81
+ ios: "Courier",
82
+ android: "monospace"
83
+ });
84
+ const createCodeStyles = theme => _reactNative.StyleSheet.create({
85
+ codeBlock: {
86
+ backgroundColor: theme.colors.codeBackground,
87
+ borderRadius: theme.borderRadius.m,
88
+ padding: theme.spacing.l,
89
+ marginVertical: theme.spacing.m,
90
+ borderWidth: 1,
91
+ borderColor: theme.colors.border
92
+ },
93
+ codeLanguage: {
94
+ color: theme.colors.codeLanguage,
95
+ fontSize: theme.fontSizes.xs,
96
+ fontWeight: "600",
97
+ marginBottom: theme.spacing.s,
98
+ textTransform: "uppercase",
99
+ letterSpacing: 0.5,
100
+ fontFamily: theme.fontFamilies.mono,
101
+ ...(_reactNative.Platform.OS === "android" && {
102
+ includeFontPadding: false
103
+ })
104
+ },
105
+ codeBlockText: {
106
+ fontFamily: getMonoFontFamily(theme),
107
+ fontSize: theme.fontSizes.s,
108
+ color: theme.colors.text,
109
+ lineHeight: theme.fontSizes.s * 1.5,
110
+ ...(_reactNative.Platform.OS === "android" && {
111
+ includeFontPadding: false
112
+ })
113
+ }
114
+ });
115
+ const createInlineStyles = theme => _reactNative.StyleSheet.create({
116
+ codeInline: {
117
+ fontFamily: getMonoFontFamily(theme),
118
+ fontSize: theme.fontSizes.s,
119
+ color: theme.colors.code,
120
+ backgroundColor: theme.colors.codeBackground,
121
+ paddingHorizontal: theme.spacing.xs,
122
+ paddingVertical: 2,
123
+ borderRadius: theme.borderRadius.s,
124
+ ...(_reactNative.Platform.OS === "android" && {
125
+ includeFontPadding: false
126
+ })
127
+ }
128
+ });
125
129
  //# sourceMappingURL=code.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_headless","_MarkdownContext","_codeHighlight","_jsxRuntime","CodeBlock","language","content","node","style","ctx","useMarkdownContext","theme","highlighter","highlightCode","defaultHighlighter","displayContent","getTextContent","styles","useMemo","StyleSheet","create","codeBlock","backgroundColor","colors","codeBackground","borderRadius","m","padding","spacing","l","marginVertical","borderWidth","borderColor","border","codeLanguage","color","fontSize","fontSizes","xs","fontWeight","marginBottom","s","textTransform","letterSpacing","fontFamily","fontFamilies","mono","Platform","OS","includeFontPadding","codeBlockText","select","ios","android","text","lineHeight","showLanguage","showCodeLanguage","jsxs","View","children","jsx","Text","ScrollView","horizontal","showsHorizontalScrollIndicator","bounces","selectable","map","token","i","tokenColor","codeTokenColors","type","exports","InlineCode","codeInline","code","paddingHorizontal","paddingVertical"],"sourceRoot":"../../../src","sources":["renderers/code.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_styleCache","_headless","_MarkdownContext","_codeHighlight","_jsxRuntime","CodeBlock","language","content","node","style","ctx","useMarkdownContext","theme","highlighter","highlightCode","defaultHighlighter","displayContent","getTextContent","highlightedTokens","useMemo","styles","getCachedStyles","codeBlockStylesCache","createCodeStyles","showLanguage","showCodeLanguage","jsxs","View","codeBlock","children","jsx","Text","codeLanguage","ScrollView","horizontal","showsHorizontalScrollIndicator","bounces","codeBlockText","selectable","map","token","i","tokenColor","colors","codeTokenColors","type","color","text","exports","InlineCode","inlineCodeStylesCache","createInlineStyles","codeInline","WeakMap","getMonoFontFamily","fontFamilies","mono","Platform","select","ios","android","StyleSheet","create","backgroundColor","codeBackground","borderRadius","m","padding","spacing","l","marginVertical","borderWidth","borderColor","border","fontSize","fontSizes","xs","fontWeight","marginBottom","s","textTransform","letterSpacing","fontFamily","OS","includeFontPadding","lineHeight","code","paddingHorizontal","paddingVertical"],"sourceRoot":"../../../src","sources":["renderers/code.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Heading = void 0;
7
- var _react = require("react");
8
7
  var _reactNative = require("react-native");
8
+ var _styleCache = require("./style-cache.js");
9
9
  var _MarkdownContext = require("../MarkdownContext.js");
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  const ANDROID_SYSTEM_FONTS = new Set(["sans-serif", "sans-serif-medium", "sans-serif-light", "sans-serif-condensed", "sans-serif-thin", "serif", "monospace"]);
@@ -17,51 +17,7 @@ const Heading = ({
17
17
  const {
18
18
  theme
19
19
  } = (0, _MarkdownContext.useMarkdownContext)();
20
- const headingWeight = theme.headingWeight ?? (_reactNative.Platform.OS === "android" && theme.fontFamilies.heading && !ANDROID_SYSTEM_FONTS.has(theme.fontFamilies.heading) ? "normal" : "700");
21
- const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
22
- heading: {
23
- color: theme.colors.heading,
24
- fontWeight: headingWeight,
25
- marginTop: theme.spacing.xl,
26
- marginBottom: theme.spacing.m,
27
- fontFamily: theme.fontFamilies.heading,
28
- letterSpacing: -0.2,
29
- ...(_reactNative.Platform.OS === "android" && {
30
- includeFontPadding: false
31
- })
32
- },
33
- h1: {
34
- fontSize: theme.fontSizes.h1,
35
- lineHeight: theme.fontSizes.h1 * 1.3,
36
- borderBottomWidth: 1,
37
- borderBottomColor: theme.colors.border,
38
- paddingBottom: theme.spacing.s,
39
- letterSpacing: -0.6
40
- },
41
- h2: {
42
- fontSize: theme.fontSizes.h2,
43
- lineHeight: theme.fontSizes.h2 * 1.3,
44
- letterSpacing: -0.4
45
- },
46
- h3: {
47
- fontSize: theme.fontSizes.h3,
48
- lineHeight: theme.fontSizes.h3 * 1.3,
49
- letterSpacing: -0.2
50
- },
51
- h4: {
52
- fontSize: theme.fontSizes.h4,
53
- lineHeight: theme.fontSizes.h4 * 1.3
54
- },
55
- h5: {
56
- fontSize: theme.fontSizes.h5,
57
- lineHeight: theme.fontSizes.h5 * 1.3
58
- },
59
- h6: {
60
- fontSize: theme.fontSizes.h6,
61
- lineHeight: theme.fontSizes.h6 * 1.3,
62
- color: theme.colors.textMuted
63
- }
64
- }), [headingWeight, theme]);
20
+ const styles = (0, _styleCache.getCachedStyles)(stylesCache, theme, createStyles);
65
21
  const headingStyles = [styles.heading, level === 1 && styles.h1, level === 2 && styles.h2, level === 3 && styles.h3, level === 4 && styles.h4, level === 5 && styles.h5, level === 6 && styles.h6];
66
22
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
67
23
  style: [...headingStyles, style],
@@ -69,4 +25,50 @@ const Heading = ({
69
25
  });
70
26
  };
71
27
  exports.Heading = Heading;
28
+ const stylesCache = new WeakMap();
29
+ const getHeadingWeight = theme => theme.headingWeight ?? (_reactNative.Platform.OS === "android" && theme.fontFamilies.heading && !ANDROID_SYSTEM_FONTS.has(theme.fontFamilies.heading) ? "normal" : "700");
30
+ const createStyles = theme => _reactNative.StyleSheet.create({
31
+ heading: {
32
+ color: theme.colors.heading,
33
+ fontWeight: getHeadingWeight(theme),
34
+ marginTop: theme.spacing.xl,
35
+ marginBottom: theme.spacing.m,
36
+ fontFamily: theme.fontFamilies.heading,
37
+ letterSpacing: -0.2,
38
+ ...(_reactNative.Platform.OS === "android" && {
39
+ includeFontPadding: false
40
+ })
41
+ },
42
+ h1: {
43
+ fontSize: theme.fontSizes.h1,
44
+ lineHeight: theme.fontSizes.h1 * 1.3,
45
+ borderBottomWidth: 1,
46
+ borderBottomColor: theme.colors.border,
47
+ paddingBottom: theme.spacing.s,
48
+ letterSpacing: -0.6
49
+ },
50
+ h2: {
51
+ fontSize: theme.fontSizes.h2,
52
+ lineHeight: theme.fontSizes.h2 * 1.3,
53
+ letterSpacing: -0.4
54
+ },
55
+ h3: {
56
+ fontSize: theme.fontSizes.h3,
57
+ lineHeight: theme.fontSizes.h3 * 1.3,
58
+ letterSpacing: -0.2
59
+ },
60
+ h4: {
61
+ fontSize: theme.fontSizes.h4,
62
+ lineHeight: theme.fontSizes.h4 * 1.3
63
+ },
64
+ h5: {
65
+ fontSize: theme.fontSizes.h5,
66
+ lineHeight: theme.fontSizes.h5 * 1.3
67
+ },
68
+ h6: {
69
+ fontSize: theme.fontSizes.h6,
70
+ lineHeight: theme.fontSizes.h6 * 1.3,
71
+ color: theme.colors.textMuted
72
+ }
73
+ });
72
74
  //# sourceMappingURL=heading.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_MarkdownContext","_jsxRuntime","ANDROID_SYSTEM_FONTS","Set","Heading","level","children","style","theme","useMarkdownContext","headingWeight","Platform","OS","fontFamilies","heading","has","styles","useMemo","StyleSheet","create","color","colors","fontWeight","marginTop","spacing","xl","marginBottom","m","fontFamily","letterSpacing","includeFontPadding","h1","fontSize","fontSizes","lineHeight","borderBottomWidth","borderBottomColor","border","paddingBottom","s","h2","h3","h4","h5","h6","textMuted","headingStyles","jsx","Text","exports"],"sourceRoot":"../../../src","sources":["renderers/heading.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_styleCache","_MarkdownContext","_jsxRuntime","ANDROID_SYSTEM_FONTS","Set","Heading","level","children","style","theme","useMarkdownContext","styles","getCachedStyles","stylesCache","createStyles","headingStyles","heading","h1","h2","h3","h4","h5","h6","jsx","Text","exports","WeakMap","getHeadingWeight","headingWeight","Platform","OS","fontFamilies","has","StyleSheet","create","color","colors","fontWeight","marginTop","spacing","xl","marginBottom","m","fontFamily","letterSpacing","includeFontPadding","fontSize","fontSizes","lineHeight","borderBottomWidth","borderBottomColor","border","paddingBottom","s","textMuted"],"sourceRoot":"../../../src","sources":["renderers/heading.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.HorizontalRule = void 0;
7
- var _react = require("react");
8
7
  var _reactNative = require("react-native");
8
+ var _styleCache = require("./style-cache.js");
9
9
  var _MarkdownContext = require("../MarkdownContext.js");
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  const HorizontalRule = ({
@@ -14,16 +14,18 @@ const HorizontalRule = ({
14
14
  const {
15
15
  theme
16
16
  } = (0, _MarkdownContext.useMarkdownContext)();
17
- const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
18
- horizontalRule: {
19
- height: 1,
20
- backgroundColor: theme.colors.border,
21
- marginVertical: theme.spacing.xl
22
- }
23
- }), [theme]);
17
+ const styles = (0, _styleCache.getCachedStyles)(stylesCache, theme, createStyles);
24
18
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
25
19
  style: [styles.horizontalRule, style]
26
20
  });
27
21
  };
28
22
  exports.HorizontalRule = HorizontalRule;
23
+ const stylesCache = new WeakMap();
24
+ const createStyles = theme => _reactNative.StyleSheet.create({
25
+ horizontalRule: {
26
+ height: 1,
27
+ backgroundColor: theme.colors.border,
28
+ marginVertical: theme.spacing.xl
29
+ }
30
+ });
29
31
  //# sourceMappingURL=horizontal-rule.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_MarkdownContext","_jsxRuntime","HorizontalRule","style","theme","useMarkdownContext","styles","useMemo","StyleSheet","create","horizontalRule","height","backgroundColor","colors","border","marginVertical","spacing","xl","jsx","View","exports"],"sourceRoot":"../../../src","sources":["renderers/horizontal-rule.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAAwD,IAAAG,WAAA,GAAAH,OAAA;AAMjD,MAAMI,cAAuC,GAAGA,CAAC;EAAEC;AAAM,CAAC,KAAK;EACpE,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,mCAAkB,EAAC,CAAC;EACtC,MAAMC,MAAM,GAAG,IAAAC,cAAO,EACpB,MACEC,uBAAU,CAACC,MAAM,CAAC;IAChBC,cAAc,EAAE;MACdC,MAAM,EAAE,CAAC;MACTC,eAAe,EAAER,KAAK,CAACS,MAAM,CAACC,MAAM;MACpCC,cAAc,EAAEX,KAAK,CAACY,OAAO,CAACC;IAChC;EACF,CAAC,CAAC,EACJ,CAACb,KAAK,CACR,CAAC;EACD,oBAAO,IAAAH,WAAA,CAAAiB,GAAA,EAACnB,YAAA,CAAAoB,IAAI;IAAChB,KAAK,EAAE,CAACG,MAAM,CAACI,cAAc,EAAEP,KAAK;EAAE,CAAE,CAAC;AACxD,CAAC;AAACiB,OAAA,CAAAlB,cAAA,GAAAA,cAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_styleCache","_MarkdownContext","_jsxRuntime","HorizontalRule","style","theme","useMarkdownContext","styles","getCachedStyles","stylesCache","createStyles","jsx","View","horizontalRule","exports","WeakMap","StyleSheet","create","height","backgroundColor","colors","border","marginVertical","spacing","xl"],"sourceRoot":"../../../src","sources":["renderers/horizontal-rule.tsx"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AAAwD,IAAAG,WAAA,GAAAH,OAAA;AAOjD,MAAMI,cAAuC,GAAGA,CAAC;EAAEC;AAAM,CAAC,KAAK;EACpE,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,mCAAkB,EAAC,CAAC;EACtC,MAAMC,MAAM,GAAG,IAAAC,2BAAe,EAACC,WAAW,EAAEJ,KAAK,EAAEK,YAAY,CAAC;EAChE,oBAAO,IAAAR,WAAA,CAAAS,GAAA,EAACb,YAAA,CAAAc,IAAI;IAACR,KAAK,EAAE,CAACG,MAAM,CAACM,cAAc,EAAET,KAAK;EAAE,CAAE,CAAC;AACxD,CAAC;AAACU,OAAA,CAAAX,cAAA,GAAAA,cAAA;AAIF,MAAMM,WAAW,GAAG,IAAIM,OAAO,CAAsC,CAAC;AAEtE,MAAML,YAAY,GAAIL,KAAoB,IACxCW,uBAAU,CAACC,MAAM,CAAC;EAChBJ,cAAc,EAAE;IACdK,MAAM,EAAE,CAAC;IACTC,eAAe,EAAEd,KAAK,CAACe,MAAM,CAACC,MAAM;IACpCC,cAAc,EAAEjB,KAAK,CAACkB,OAAO,CAACC;EAChC;AACF,CAAC,CAAC","ignoreList":[]}
@@ -97,18 +97,24 @@ const Image = ({
97
97
  })
98
98
  }
99
99
  }), [theme, aspectRatio]);
100
- (0, _react.useLayoutEffect)(() => {
101
- // Fast path for consistent aspect ratios if checking picsum
100
+ (0, _react.useEffect)(() => {
101
+ let isMounted = true;
102
+ setLoading(true);
103
+ setError(false);
104
+ setAspectRatio(undefined);
102
105
  const picsumMatch = url.match(/picsum\.photos\/.*\/(\d+)\/(\d+)/);
103
106
  if (picsumMatch) {
104
107
  const w = parseInt(picsumMatch[1], 10);
105
108
  const h = parseInt(picsumMatch[2], 10);
106
109
  if (!isNaN(w) && !isNaN(h) && h !== 0) {
107
110
  setAspectRatio(w / h);
111
+ return () => {
112
+ isMounted = false;
113
+ };
108
114
  }
109
115
  }
110
116
  _reactNative.Image.getSize(url, (width, height) => {
111
- if (width > 0 && height > 0) {
117
+ if (isMounted && width > 0 && height > 0) {
112
118
  setAspectRatio(width / height);
113
119
  }
114
120
  }, error => {
@@ -117,6 +123,9 @@ const Image = ({
117
123
  console.warn("[NitroMarkdown] Failed to get image dimensions:", error);
118
124
  }
119
125
  });
126
+ return () => {
127
+ isMounted = false;
128
+ };
120
129
  }, [url]);
121
130
  const altContent = (0, _react.useMemo)(() => {
122
131
  if (!alt || !Renderer) return null;
@@ -1 +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","style","loading","setLoading","useState","error","setError","aspectRatio","setAspectRatio","undefined","theme","useMarkdownContext","styles","useMemo","StyleSheet","create","imageContainer","marginVertical","spacing","m","alignItems","image","width","minHeight","borderRadius","backgroundColor","colors","surface","imageHidden","opacity","position","imageLoading","height","justifyContent","imageLoadingText","color","textMuted","fontSize","fontSizes","s","fontFamily","fontFamilies","regular","Platform","OS","includeFontPadding","imageError","padding","l","imageErrorText","imageCaption","xs","marginTop","fontStyle","textAlign","useLayoutEffect","picsumMatch","match","w","parseInt","h","isNaN","RNImage","getSize","__DEV__","console","warn","altContent","includes","ast","parseMarkdownWithOptions","math","gfm","paragraph","inlineContent","Text","View","jsxs","flexDirection","flexWrap","source","uri","resizeMode","onLoad","onError","exports"],"sourceRoot":"../../../src","sources":["renderers/image.tsx"],"mappings":"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","ignoreList":[]}
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","style","loading","setLoading","useState","error","setError","aspectRatio","setAspectRatio","undefined","theme","useMarkdownContext","styles","useMemo","StyleSheet","create","imageContainer","marginVertical","spacing","m","alignItems","image","width","minHeight","borderRadius","backgroundColor","colors","surface","imageHidden","opacity","position","imageLoading","height","justifyContent","imageLoadingText","color","textMuted","fontSize","fontSizes","s","fontFamily","fontFamilies","regular","Platform","OS","includeFontPadding","imageError","padding","l","imageErrorText","imageCaption","xs","marginTop","fontStyle","textAlign","useEffect","isMounted","picsumMatch","match","w","parseInt","h","isNaN","RNImage","getSize","__DEV__","console","warn","altContent","includes","ast","parseMarkdownWithOptions","math","gfm","paragraph","inlineContent","Text","View","jsxs","flexDirection","flexWrap","source","uri","resizeMode","onLoad","onError","exports"],"sourceRoot":"../../../src","sources":["renderers/image.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,12 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.TaskListItem = exports.ListItem = exports.List = void 0;
7
- var _react = require("react");
8
7
  var _reactNative = require("react-native");
8
+ var _styleCache = require("./style-cache.js");
9
9
  var _MarkdownContext = require("../MarkdownContext.js");
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
- // Note: ordered and start are accepted for API consistency but layout is
12
- // handled at the ListItem level — the List container is style-only.
11
+ // ordered/start stay on List for renderer API parity; markers render in ListItem.
13
12
  const List = ({
14
13
  depth,
15
14
  children,
@@ -18,15 +17,7 @@ const List = ({
18
17
  const {
19
18
  theme
20
19
  } = (0, _MarkdownContext.useMarkdownContext)();
21
- const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
22
- list: {
23
- marginBottom: theme.spacing.m
24
- },
25
- listNested: {
26
- marginLeft: theme.spacing.s,
27
- marginBottom: 0
28
- }
29
- }), [theme]);
20
+ const styles = (0, _styleCache.getCachedStyles)(listStylesCache, theme, createListStyles);
30
21
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
31
22
  style: [styles.list, depth > 0 && styles.listNested, style],
32
23
  children: children
@@ -43,29 +34,7 @@ const ListItem = ({
43
34
  const {
44
35
  theme
45
36
  } = (0, _MarkdownContext.useMarkdownContext)();
46
- const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
47
- listItem: {
48
- flexDirection: "row",
49
- marginBottom: theme.spacing.s,
50
- alignItems: "flex-start"
51
- },
52
- listBullet: {
53
- color: theme.colors.accent,
54
- fontSize: theme.fontSizes.m,
55
- lineHeight: theme.fontSizes.m * 1.6,
56
- marginRight: theme.spacing.s,
57
- minWidth: 22,
58
- textAlign: "center",
59
- fontFamily: theme.fontFamilies.regular,
60
- ...(_reactNative.Platform.OS === "android" && {
61
- includeFontPadding: false
62
- })
63
- },
64
- listItemContent: {
65
- flex: 1,
66
- minWidth: 0
67
- }
68
- }), [theme]);
37
+ const styles = (0, _styleCache.getCachedStyles)(listItemStylesCache, theme, createListItemStyles);
69
38
  const bullet = ordered ? `${start + index}.` : "•";
70
39
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
71
40
  style: [styles.listItem, style],
@@ -87,41 +56,7 @@ const TaskListItem = ({
87
56
  const {
88
57
  theme
89
58
  } = (0, _MarkdownContext.useMarkdownContext)();
90
- const styles = (0, _react.useMemo)(() => _reactNative.StyleSheet.create({
91
- taskListItem: {
92
- flexDirection: "row",
93
- alignItems: "flex-start",
94
- marginBottom: theme.spacing.s
95
- },
96
- taskCheckbox: {
97
- width: 18,
98
- height: 18,
99
- borderRadius: 4,
100
- borderWidth: 2,
101
- borderColor: theme.colors.accent,
102
- alignItems: "center",
103
- justifyContent: "center",
104
- marginRight: theme.spacing.s,
105
- marginTop: 2
106
- },
107
- taskCheckboxChecked: {
108
- backgroundColor: theme.colors.accent
109
- },
110
- taskCheckboxText: {
111
- color: theme.colors.surface,
112
- fontSize: 12,
113
- lineHeight: 12,
114
- fontWeight: "700",
115
- fontFamily: theme.fontFamilies.regular,
116
- ...(_reactNative.Platform.OS === "android" && {
117
- includeFontPadding: false
118
- })
119
- },
120
- taskContent: {
121
- flex: 1,
122
- minWidth: 0
123
- }
124
- }), [theme]);
59
+ const styles = (0, _styleCache.getCachedStyles)(taskListItemStylesCache, theme, createTaskListItemStyles);
125
60
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
126
61
  style: [styles.taskListItem, style],
127
62
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
@@ -137,4 +72,74 @@ const TaskListItem = ({
137
72
  });
138
73
  };
139
74
  exports.TaskListItem = TaskListItem;
75
+ const listStylesCache = new WeakMap();
76
+ const listItemStylesCache = new WeakMap();
77
+ const taskListItemStylesCache = new WeakMap();
78
+ const createListStyles = theme => _reactNative.StyleSheet.create({
79
+ list: {
80
+ marginBottom: theme.spacing.m
81
+ },
82
+ listNested: {
83
+ marginLeft: theme.spacing.s,
84
+ marginBottom: 0
85
+ }
86
+ });
87
+ const createListItemStyles = theme => _reactNative.StyleSheet.create({
88
+ listItem: {
89
+ flexDirection: "row",
90
+ marginBottom: theme.spacing.s,
91
+ alignItems: "flex-start"
92
+ },
93
+ listBullet: {
94
+ color: theme.colors.accent,
95
+ fontSize: theme.fontSizes.m,
96
+ lineHeight: theme.fontSizes.m * 1.6,
97
+ marginRight: theme.spacing.s,
98
+ minWidth: 22,
99
+ textAlign: "center",
100
+ fontFamily: theme.fontFamilies.regular,
101
+ ...(_reactNative.Platform.OS === "android" && {
102
+ includeFontPadding: false
103
+ })
104
+ },
105
+ listItemContent: {
106
+ flex: 1,
107
+ minWidth: 0
108
+ }
109
+ });
110
+ const createTaskListItemStyles = theme => _reactNative.StyleSheet.create({
111
+ taskListItem: {
112
+ flexDirection: "row",
113
+ alignItems: "flex-start",
114
+ marginBottom: theme.spacing.s
115
+ },
116
+ taskCheckbox: {
117
+ width: 18,
118
+ height: 18,
119
+ borderRadius: 4,
120
+ borderWidth: 2,
121
+ borderColor: theme.colors.accent,
122
+ alignItems: "center",
123
+ justifyContent: "center",
124
+ marginRight: theme.spacing.s,
125
+ marginTop: 2
126
+ },
127
+ taskCheckboxChecked: {
128
+ backgroundColor: theme.colors.accent
129
+ },
130
+ taskCheckboxText: {
131
+ color: theme.colors.surface,
132
+ fontSize: 12,
133
+ lineHeight: 12,
134
+ fontWeight: "700",
135
+ fontFamily: theme.fontFamilies.regular,
136
+ ...(_reactNative.Platform.OS === "android" && {
137
+ includeFontPadding: false
138
+ })
139
+ },
140
+ taskContent: {
141
+ flex: 1,
142
+ minWidth: 0
143
+ }
144
+ });
140
145
  //# sourceMappingURL=list.js.map