react-native-marked 8.2.0 → 8.3.0

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 (94) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +374 -354
  3. package/dist/commonjs/components/MDImage.js +3 -3
  4. package/dist/commonjs/components/MDImage.js.map +1 -1
  5. package/dist/commonjs/components/MDList.js.map +1 -1
  6. package/dist/commonjs/components/MDSvg.js.map +1 -1
  7. package/dist/commonjs/components/MDTable.js.map +1 -1
  8. package/dist/commonjs/hooks/useMarkdown.js +4 -2
  9. package/dist/commonjs/hooks/useMarkdown.js.map +1 -1
  10. package/dist/commonjs/hooks/useMarkdownWithComponents.js +7 -1
  11. package/dist/commonjs/hooks/useMarkdownWithComponents.js.map +1 -1
  12. package/dist/commonjs/index.js.map +1 -1
  13. package/dist/commonjs/lib/Markdown.js +4 -2
  14. package/dist/commonjs/lib/Markdown.js.map +1 -1
  15. package/dist/commonjs/lib/Parser.js +7 -7
  16. package/dist/commonjs/lib/Parser.js.map +1 -1
  17. package/dist/commonjs/lib/ReactComponentRegistry.js.map +1 -1
  18. package/dist/commonjs/lib/ReactComponentTokenizer.js.map +1 -1
  19. package/dist/commonjs/lib/Renderer.js +6 -4
  20. package/dist/commonjs/lib/Renderer.js.map +1 -1
  21. package/dist/commonjs/lib/types.js.map +1 -1
  22. package/dist/commonjs/theme/colors.js.map +1 -1
  23. package/dist/commonjs/theme/spacing.js.map +1 -1
  24. package/dist/commonjs/theme/styles.js +4 -0
  25. package/dist/commonjs/theme/styles.js.map +1 -1
  26. package/dist/commonjs/theme/types.js.map +1 -1
  27. package/dist/commonjs/utils/handlers.js.map +1 -1
  28. package/dist/commonjs/utils/svg.js.map +1 -1
  29. package/dist/commonjs/utils/table.js.map +1 -1
  30. package/dist/commonjs/utils/url.js.map +1 -1
  31. package/dist/module/components/MDImage.js +3 -3
  32. package/dist/module/components/MDImage.js.map +1 -1
  33. package/dist/module/components/MDList.js.map +1 -1
  34. package/dist/module/components/MDSvg.js.map +1 -1
  35. package/dist/module/components/MDTable.js.map +1 -1
  36. package/dist/module/hooks/useMarkdown.js +4 -2
  37. package/dist/module/hooks/useMarkdown.js.map +1 -1
  38. package/dist/module/hooks/useMarkdownWithComponents.js +7 -1
  39. package/dist/module/hooks/useMarkdownWithComponents.js.map +1 -1
  40. package/dist/module/index.js.map +1 -1
  41. package/dist/module/lib/Markdown.js +4 -2
  42. package/dist/module/lib/Markdown.js.map +1 -1
  43. package/dist/module/lib/Parser.js +7 -7
  44. package/dist/module/lib/Parser.js.map +1 -1
  45. package/dist/module/lib/ReactComponentRegistry.js.map +1 -1
  46. package/dist/module/lib/ReactComponentTokenizer.js.map +1 -1
  47. package/dist/module/lib/Renderer.js +6 -4
  48. package/dist/module/lib/Renderer.js.map +1 -1
  49. package/dist/module/lib/types.js.map +1 -1
  50. package/dist/module/theme/colors.js.map +1 -1
  51. package/dist/module/theme/spacing.js.map +1 -1
  52. package/dist/module/theme/styles.js +4 -0
  53. package/dist/module/theme/styles.js.map +1 -1
  54. package/dist/module/theme/types.js.map +1 -1
  55. package/dist/module/utils/handlers.js.map +1 -1
  56. package/dist/module/utils/svg.js.map +1 -1
  57. package/dist/module/utils/table.js.map +1 -1
  58. package/dist/module/utils/url.js.map +1 -1
  59. package/dist/typescript/hooks/useMarkdown.d.ts +3 -0
  60. package/dist/typescript/hooks/useMarkdown.d.ts.map +1 -1
  61. package/dist/typescript/hooks/useMarkdownWithComponents.d.ts.map +1 -1
  62. package/dist/typescript/index.d.ts +2 -2
  63. package/dist/typescript/index.d.ts.map +1 -1
  64. package/dist/typescript/lib/Markdown.d.ts +1 -1
  65. package/dist/typescript/lib/Markdown.d.ts.map +1 -1
  66. package/dist/typescript/lib/Renderer.d.ts +8 -1
  67. package/dist/typescript/lib/Renderer.d.ts.map +1 -1
  68. package/dist/typescript/lib/types.d.ts +6 -0
  69. package/dist/typescript/lib/types.d.ts.map +1 -1
  70. package/dist/typescript/theme/styles.d.ts.map +1 -1
  71. package/dist/typescript/theme/types.d.ts +1 -0
  72. package/dist/typescript/theme/types.d.ts.map +1 -1
  73. package/package.json +178 -175
  74. package/src/components/MDImage.tsx +90 -90
  75. package/src/components/MDList.tsx +46 -46
  76. package/src/components/MDSvg.tsx +108 -108
  77. package/src/components/MDTable.tsx +60 -60
  78. package/src/hooks/useMarkdown.ts +56 -51
  79. package/src/hooks/useMarkdownWithComponents.tsx +94 -89
  80. package/src/index.ts +44 -43
  81. package/src/lib/Markdown.tsx +55 -53
  82. package/src/lib/Parser.tsx +316 -316
  83. package/src/lib/ReactComponentRegistry.tsx +52 -52
  84. package/src/lib/ReactComponentTokenizer.ts +149 -149
  85. package/src/lib/Renderer.tsx +247 -238
  86. package/src/lib/types.ts +93 -87
  87. package/src/theme/colors.ts +31 -31
  88. package/src/theme/spacing.ts +10 -10
  89. package/src/theme/styles.ts +206 -198
  90. package/src/theme/types.ts +34 -33
  91. package/src/utils/handlers.ts +9 -9
  92. package/src/utils/svg.ts +14 -14
  93. package/src/utils/table.ts +29 -29
  94. package/src/utils/url.ts +22 -22
package/src/index.ts CHANGED
@@ -1,43 +1,44 @@
1
- import type { Token, Tokens } from "marked";
2
- import {
3
- Hooks as MarkedHooks,
4
- Tokenizer as MarkedTokenizer,
5
- marked,
6
- } from "marked";
7
- import useMarkdown, { type useMarkdownHookOptions } from "./hooks/useMarkdown";
8
- import useMarkdownWithComponents from "./hooks/useMarkdownWithComponents";
9
- import Markdown from "./lib/Markdown";
10
- import type { ReactComponentRegistry } from "./lib/ReactComponentRegistry";
11
- import { ReactComponentRegistryProvider } from "./lib/ReactComponentRegistry";
12
- import Renderer from "./lib/Renderer";
13
- import type {
14
- MarkdownProps,
15
- ParserOptions,
16
- RendererInterface,
17
- } from "./lib/types";
18
- import type { MarkedStyles } from "./theme/types";
19
-
20
- const MarkedLexer = marked.lexer;
21
-
22
- export type {
23
- MarkdownProps,
24
- MarkedStyles,
25
- ParserOptions,
26
- ReactComponentRegistry,
27
- RendererInterface,
28
- Token,
29
- Tokens,
30
- useMarkdownHookOptions,
31
- };
32
-
33
- export {
34
- MarkedHooks,
35
- MarkedLexer,
36
- MarkedTokenizer,
37
- ReactComponentRegistryProvider,
38
- Renderer,
39
- useMarkdown,
40
- useMarkdownWithComponents,
41
- };
42
-
43
- export default Markdown;
1
+ import type { Token, Tokens } from "marked";
2
+ import {
3
+ Hooks as MarkedHooks,
4
+ Tokenizer as MarkedTokenizer,
5
+ marked,
6
+ } from "marked";
7
+ import useMarkdown, { type useMarkdownHookOptions } from "./hooks/useMarkdown";
8
+ import useMarkdownWithComponents from "./hooks/useMarkdownWithComponents";
9
+ import Markdown from "./lib/Markdown";
10
+ import type { ReactComponentRegistry } from "./lib/ReactComponentRegistry";
11
+ import { ReactComponentRegistryProvider } from "./lib/ReactComponentRegistry";
12
+ import Renderer, { type RendererOptions } from "./lib/Renderer";
13
+ import type {
14
+ MarkdownProps,
15
+ ParserOptions,
16
+ RendererInterface,
17
+ } from "./lib/types";
18
+ import type { MarkedStyles } from "./theme/types";
19
+
20
+ const MarkedLexer = marked.lexer;
21
+
22
+ export type {
23
+ MarkdownProps,
24
+ MarkedStyles,
25
+ ParserOptions,
26
+ ReactComponentRegistry,
27
+ RendererInterface,
28
+ RendererOptions,
29
+ Token,
30
+ Tokens,
31
+ useMarkdownHookOptions,
32
+ };
33
+
34
+ export {
35
+ MarkedHooks,
36
+ MarkedLexer,
37
+ MarkedTokenizer,
38
+ ReactComponentRegistryProvider,
39
+ Renderer,
40
+ useMarkdown,
41
+ useMarkdownWithComponents,
42
+ };
43
+
44
+ export default Markdown;
@@ -1,53 +1,55 @@
1
- import React, { type ReactElement, type ReactNode, useCallback } from "react";
2
- import { FlatList, useColorScheme } from "react-native";
3
- import useMarkdown from "../hooks/useMarkdown";
4
- import type { MarkdownProps } from "./types";
5
-
6
- const Markdown = ({
7
- value,
8
- flatListProps,
9
- theme,
10
- baseUrl,
11
- renderer,
12
- styles,
13
- tokenizer,
14
- hooks,
15
- }: MarkdownProps) => {
16
- const colorScheme = useColorScheme();
17
-
18
- const rnElements = useMarkdown(value, {
19
- theme,
20
- baseUrl,
21
- renderer,
22
- colorScheme,
23
- styles,
24
- tokenizer,
25
- hooks,
26
- });
27
-
28
- const renderItem = useCallback(({ item }: { item: ReactNode }) => {
29
- return item as ReactElement;
30
- }, []);
31
-
32
- const keyExtractor = useCallback(
33
- (_: ReactNode, index: number) => index.toString(),
34
- [],
35
- );
36
-
37
- return (
38
- <FlatList
39
- removeClippedSubviews={false}
40
- keyExtractor={keyExtractor}
41
- maxToRenderPerBatch={8}
42
- initialNumToRender={8}
43
- style={{
44
- backgroundColor: colorScheme === "light" ? "#ffffff" : "#000000",
45
- }}
46
- {...flatListProps}
47
- data={rnElements}
48
- renderItem={renderItem}
49
- />
50
- );
51
- };
52
-
53
- export default Markdown;
1
+ import React, { type ReactElement, type ReactNode, useCallback } from "react";
2
+ import { FlatList, useColorScheme } from "react-native";
3
+ import useMarkdown from "../hooks/useMarkdown";
4
+ import type { MarkdownProps } from "./types";
5
+
6
+ const Markdown = ({
7
+ value,
8
+ flatListProps,
9
+ theme,
10
+ baseUrl,
11
+ renderer,
12
+ styles,
13
+ tokenizer,
14
+ hooks,
15
+ selectable,
16
+ }: MarkdownProps) => {
17
+ const colorScheme = useColorScheme();
18
+
19
+ const rnElements = useMarkdown(value, {
20
+ theme,
21
+ baseUrl,
22
+ renderer,
23
+ colorScheme,
24
+ styles,
25
+ tokenizer,
26
+ hooks,
27
+ selectable,
28
+ });
29
+
30
+ const renderItem = useCallback(({ item }: { item: ReactNode }) => {
31
+ return item as ReactElement;
32
+ }, []);
33
+
34
+ const keyExtractor = useCallback(
35
+ (_: ReactNode, index: number) => index.toString(),
36
+ [],
37
+ );
38
+
39
+ return (
40
+ <FlatList
41
+ removeClippedSubviews={false}
42
+ keyExtractor={keyExtractor}
43
+ maxToRenderPerBatch={8}
44
+ initialNumToRender={8}
45
+ style={{
46
+ backgroundColor: colorScheme === "light" ? "#ffffff" : "#000000",
47
+ }}
48
+ {...flatListProps}
49
+ data={rnElements}
50
+ renderItem={renderItem}
51
+ />
52
+ );
53
+ };
54
+
55
+ export default Markdown;