react-native-jet-markdown 0.2.0-beta.7
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/JetMarkdown.podspec +42 -0
- package/LICENSE +20 -0
- package/README.md +247 -0
- package/android/CMakeLists.txt +52 -0
- package/android/build.gradle +55 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/JniBindings.cpp +243 -0
- package/android/src/main/java/com/jetmarkdown/JetMarkdownNative.kt +114 -0
- package/android/src/main/java/com/jetmarkdown/JetMarkdownPackage.kt +22 -0
- package/android/src/main/java/com/jetmarkdown/JetMarkdownView.kt +235 -0
- package/android/src/main/java/com/jetmarkdown/JetMarkdownViewManager.kt +75 -0
- package/android/src/main/java/com/jetmarkdown/editor/EditorSpans.kt +217 -0
- package/android/src/main/java/com/jetmarkdown/editor/JetMarkdownEditorManager.kt +224 -0
- package/android/src/main/java/com/jetmarkdown/editor/JetMarkdownEditorView.kt +1736 -0
- package/android/src/main/java/com/jetmarkdown/measure/MarkdownMeasurer.kt +54 -0
- package/android/src/main/java/com/jetmarkdown/parser/AstDecoder.kt +59 -0
- package/android/src/main/java/com/jetmarkdown/parser/MdNode.kt +43 -0
- package/android/src/main/java/com/jetmarkdown/render/ContentCache.kt +53 -0
- package/android/src/main/java/com/jetmarkdown/render/RenderedContent.kt +318 -0
- package/android/src/main/java/com/jetmarkdown/render/SpannableRenderer.kt +658 -0
- package/android/src/main/java/com/jetmarkdown/render/spans/ChipSpan.kt +17 -0
- package/android/src/main/java/com/jetmarkdown/render/spans/InteractiveSpans.kt +11 -0
- package/android/src/main/java/com/jetmarkdown/render/spans/MarkdownLineHeightSpan.kt +59 -0
- package/android/src/main/java/com/jetmarkdown/render/spans/RunSpan.kt +40 -0
- package/android/src/main/java/com/jetmarkdown/style/Fonts.kt +34 -0
- package/android/src/main/java/com/jetmarkdown/style/LayoutStyleSpec.kt +71 -0
- package/android/src/main/java/com/jetmarkdown/style/PlatformColorResolver.kt +77 -0
- package/android/src/main/java/com/jetmarkdown/style/StyleConfig.kt +80 -0
- package/android/src/main/java/com/jetmarkdown/style/TextStyleSpec.kt +61 -0
- package/android/src/main/java/com/jetmarkdown/views/BlockStackView.kt +292 -0
- package/android/src/main/java/com/jetmarkdown/views/BlockTextView.kt +378 -0
- package/android/src/main/java/com/jetmarkdown/views/BoxDrawing.kt +50 -0
- package/android/src/main/java/com/jetmarkdown/views/MarkdownHost.kt +12 -0
- package/android/src/main/java/com/jetmarkdown/views/MarkdownImageView.kt +113 -0
- package/android/src/main/java/com/jetmarkdown/views/NestedHorizontalScrollView.kt +87 -0
- package/android/src/main/java/com/jetmarkdown/views/TableBlockView.kt +139 -0
- package/cpp/core/Ast.h +85 -0
- package/cpp/core/AstJson.cpp +129 -0
- package/cpp/core/AstJson.h +12 -0
- package/cpp/core/AstSerializer.cpp +40 -0
- package/cpp/core/AstSerializer.h +21 -0
- package/cpp/core/AstToMarkdown.cpp +549 -0
- package/cpp/core/AstToMarkdown.h +16 -0
- package/cpp/core/EditorRuns.cpp +640 -0
- package/cpp/core/EditorRuns.h +94 -0
- package/cpp/core/EditorText.cpp +15 -0
- package/cpp/core/EditorText.h +18 -0
- package/cpp/core/InlineExtensions.cpp +305 -0
- package/cpp/core/InlineExtensions.h +17 -0
- package/cpp/core/Parser.cpp +470 -0
- package/cpp/core/Parser.h +16 -0
- package/cpp/core/Preprocess.cpp +181 -0
- package/cpp/core/Preprocess.h +14 -0
- package/cpp/md4c/LICENSE +22 -0
- package/cpp/md4c/VERSION +1 -0
- package/cpp/md4c/md4c.c +6462 -0
- package/cpp/md4c/md4c.h +407 -0
- package/cpp/react/JetMarkdownEditorShadowNode.cpp +54 -0
- package/cpp/react/JetMarkdownEditorShadowNode.h +55 -0
- package/cpp/react/JetMarkdownEditorState.h +35 -0
- package/cpp/react/JetMarkdownMeasurer.cpp +32 -0
- package/cpp/react/JetMarkdownMeasurer.h +41 -0
- package/cpp/react/JetMarkdownShadowNode.cpp +100 -0
- package/cpp/react/JetMarkdownShadowNode.h +53 -0
- package/cpp/react/JetMarkdownState.h +52 -0
- package/cpp/react/override/react/renderer/components/JetMarkdownViewSpec/ComponentDescriptors.h +21 -0
- package/cpp/tests/parser_tests.cpp +662 -0
- package/cpp/tests/run_tests.sh +25 -0
- package/ios/JetMarkdownView.h +14 -0
- package/ios/JetMarkdownView.mm +468 -0
- package/ios/editor/JetMarkdownEditor.h +12 -0
- package/ios/editor/JetMarkdownEditor.mm +2002 -0
- package/ios/measure/JMDMarkdownMeasurer.h +22 -0
- package/ios/measure/JMDMarkdownMeasurer.mm +38 -0
- package/ios/render/JMDBlock.h +97 -0
- package/ios/render/JMDBlock.m +28 -0
- package/ios/render/JMDBlockRenderer.h +17 -0
- package/ios/render/JMDBlockRenderer.mm +852 -0
- package/ios/render/JMDContentCache.h +17 -0
- package/ios/render/JMDContentCache.mm +42 -0
- package/ios/render/JMDRenderedContent.h +35 -0
- package/ios/render/JMDRenderedContent.mm +274 -0
- package/ios/style/JMDFontScale.h +33 -0
- package/ios/style/JMDLayoutStyle.h +37 -0
- package/ios/style/JMDLayoutStyle.mm +68 -0
- package/ios/style/JMDStyleConfig.h +39 -0
- package/ios/style/JMDStyleConfig.mm +111 -0
- package/ios/style/JMDTextStyle.h +25 -0
- package/ios/style/JMDTextStyle.mm +68 -0
- package/ios/views/JMDBlockStackView.h +18 -0
- package/ios/views/JMDBlockStackView.m +97 -0
- package/ios/views/JMDBlockTextView.h +24 -0
- package/ios/views/JMDBlockTextView.m +340 -0
- package/ios/views/JMDBoxViews.h +33 -0
- package/ios/views/JMDBoxViews.m +292 -0
- package/ios/views/JMDImageView.h +19 -0
- package/ios/views/JMDImageView.m +68 -0
- package/ios/views/JMDMarkdownHost.h +16 -0
- package/ios/views/JMDTableView.h +16 -0
- package/ios/views/JMDTableView.m +172 -0
- package/lib/module/JetMarkdownEditor.js +85 -0
- package/lib/module/JetMarkdownEditor.js.map +1 -0
- package/lib/module/JetMarkdownEditor.native.js +244 -0
- package/lib/module/JetMarkdownEditor.native.js.map +1 -0
- package/lib/module/JetMarkdownEditorNativeComponent.ts +173 -0
- package/lib/module/JetMarkdownView.js +19 -0
- package/lib/module/JetMarkdownView.js.map +1 -0
- package/lib/module/JetMarkdownView.native.js +44 -0
- package/lib/module/JetMarkdownView.native.js.map +1 -0
- package/lib/module/JetMarkdownViewNativeComponent.ts +35 -0
- package/lib/module/defaultStyles.js +122 -0
- package/lib/module/defaultStyles.js.map +1 -0
- package/lib/module/index.js +9 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/serializeStyles.js +259 -0
- package/lib/module/serializeStyles.js.map +1 -0
- package/lib/module/types.js +4 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/useJetMarkdownEditor.js +41 -0
- package/lib/module/useJetMarkdownEditor.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/JetMarkdownEditor.d.ts +6 -0
- package/lib/typescript/src/JetMarkdownEditor.d.ts.map +1 -0
- package/lib/typescript/src/JetMarkdownEditor.native.d.ts +6 -0
- package/lib/typescript/src/JetMarkdownEditor.native.d.ts.map +1 -0
- package/lib/typescript/src/JetMarkdownEditorNativeComponent.d.ts +105 -0
- package/lib/typescript/src/JetMarkdownEditorNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/JetMarkdownView.d.ts +3 -0
- package/lib/typescript/src/JetMarkdownView.d.ts.map +1 -0
- package/lib/typescript/src/JetMarkdownView.native.d.ts +3 -0
- package/lib/typescript/src/JetMarkdownView.native.d.ts.map +1 -0
- package/lib/typescript/src/JetMarkdownViewNativeComponent.d.ts +28 -0
- package/lib/typescript/src/JetMarkdownViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/defaultStyles.d.ts +20 -0
- package/lib/typescript/src/defaultStyles.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +7 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/serializeStyles.d.ts +34 -0
- package/lib/typescript/src/serializeStyles.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +352 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/useJetMarkdownEditor.d.ts +36 -0
- package/lib/typescript/src/useJetMarkdownEditor.d.ts.map +1 -0
- package/package.json +150 -0
- package/react-native.config.js +11 -0
- package/src/JetMarkdownEditor.native.tsx +301 -0
- package/src/JetMarkdownEditor.tsx +90 -0
- package/src/JetMarkdownEditorNativeComponent.ts +173 -0
- package/src/JetMarkdownView.native.tsx +67 -0
- package/src/JetMarkdownView.tsx +16 -0
- package/src/JetMarkdownViewNativeComponent.ts +35 -0
- package/src/defaultStyles.ts +102 -0
- package/src/index.tsx +34 -0
- package/src/serializeStyles.ts +369 -0
- package/src/types.ts +438 -0
- package/src/useJetMarkdownEditor.ts +50 -0
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
import type { ColorValue, StyleProp } from "react-native";
|
|
2
|
+
export type FontVariant = "small-caps" | "oldstyle-nums" | "lining-nums" | "tabular-nums" | "proportional-nums" | "stylistic-one" | "stylistic-two" | "stylistic-three" | "stylistic-four" | "stylistic-five" | "stylistic-six" | "stylistic-seven" | "stylistic-eight" | "stylistic-nine" | "stylistic-ten" | "stylistic-eleven" | "stylistic-twelve" | "stylistic-thirteen" | "stylistic-fourteen" | "stylistic-fifteen" | "stylistic-sixteen" | "stylistic-seventeen" | "stylistic-eighteen" | "stylistic-nineteen" | "stylistic-twenty";
|
|
3
|
+
export type FontWeight = "normal" | "bold" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
|
|
4
|
+
/**
|
|
5
|
+
* Text styling shared by every text-bearing markdown element.
|
|
6
|
+
*/
|
|
7
|
+
export interface MarkdownTextStyle {
|
|
8
|
+
/** Highlight behind the text run. */
|
|
9
|
+
backgroundColor?: ColorValue;
|
|
10
|
+
color?: ColorValue;
|
|
11
|
+
fontFamily?: string;
|
|
12
|
+
fontSize?: number;
|
|
13
|
+
fontVariant?: FontVariant[];
|
|
14
|
+
fontWeight?: FontWeight;
|
|
15
|
+
/** Total line height in points, like React Native's `lineHeight`. */
|
|
16
|
+
lineHeight?: number;
|
|
17
|
+
textDecorationColor?: ColorValue;
|
|
18
|
+
/**
|
|
19
|
+
* Android renders `underline` and `line-through` natively; decoration
|
|
20
|
+
* color/style on Android are drawn for links and mentions, best-effort
|
|
21
|
+
* elsewhere.
|
|
22
|
+
*/
|
|
23
|
+
textDecorationLine?: "none" | "underline" | "line-through" | "underline line-through";
|
|
24
|
+
textDecorationStyle?: "solid" | "double" | "dotted" | "dashed";
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Box styling shared by every block-level markdown element.
|
|
28
|
+
*/
|
|
29
|
+
export interface MarkdownLayoutStyle {
|
|
30
|
+
backgroundColor?: ColorValue;
|
|
31
|
+
borderBottomColor?: ColorValue;
|
|
32
|
+
borderBottomWidth?: number;
|
|
33
|
+
borderColor?: ColorValue;
|
|
34
|
+
/** iOS only; Android always renders circular corners. */
|
|
35
|
+
borderCurve?: "circular" | "continuous";
|
|
36
|
+
borderLeftColor?: ColorValue;
|
|
37
|
+
borderLeftWidth?: number;
|
|
38
|
+
borderRadius?: number;
|
|
39
|
+
borderRightColor?: ColorValue;
|
|
40
|
+
borderRightWidth?: number;
|
|
41
|
+
borderTopColor?: ColorValue;
|
|
42
|
+
borderTopWidth?: number;
|
|
43
|
+
borderWidth?: number;
|
|
44
|
+
padding?: number;
|
|
45
|
+
paddingBottom?: number;
|
|
46
|
+
paddingHorizontal?: number;
|
|
47
|
+
paddingLeft?: number;
|
|
48
|
+
paddingRight?: number;
|
|
49
|
+
paddingTop?: number;
|
|
50
|
+
paddingVertical?: number;
|
|
51
|
+
}
|
|
52
|
+
export interface MarkdownImageStyle {
|
|
53
|
+
backgroundColor?: ColorValue;
|
|
54
|
+
borderRadius?: number;
|
|
55
|
+
/** Fixed rendered height; wins over the image's intrinsic height. */
|
|
56
|
+
height?: number;
|
|
57
|
+
maxHeight?: number;
|
|
58
|
+
}
|
|
59
|
+
export interface MarkdownTableStyle extends MarkdownLayoutStyle {
|
|
60
|
+
/** Upper clamp for computed column widths. Unset = natural width. */
|
|
61
|
+
maxColumnWidth?: number;
|
|
62
|
+
/** Lower clamp for computed column widths. Unset = natural width. */
|
|
63
|
+
minColumnWidth?: number;
|
|
64
|
+
}
|
|
65
|
+
export interface MarkdownSpoilerStyle {
|
|
66
|
+
backgroundColor?: ColorValue;
|
|
67
|
+
/** iOS only; Android always renders circular corners. */
|
|
68
|
+
borderCurve?: "circular" | "continuous";
|
|
69
|
+
borderRadius?: number;
|
|
70
|
+
}
|
|
71
|
+
export interface MarkdownDividerStyle {
|
|
72
|
+
color?: ColorValue;
|
|
73
|
+
height?: number;
|
|
74
|
+
}
|
|
75
|
+
export interface MarkdownListStyle {
|
|
76
|
+
marginLeft?: number;
|
|
77
|
+
}
|
|
78
|
+
export interface MarkdownListMarkerStyle {
|
|
79
|
+
color?: ColorValue;
|
|
80
|
+
marginLeft?: number;
|
|
81
|
+
width?: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Mention styling. `variants` maps a regular expression (matched against the
|
|
85
|
+
* mention link's URL) to the style for that mention type. Longest pattern
|
|
86
|
+
* first, first match wins:
|
|
87
|
+
*
|
|
88
|
+
* ```ts
|
|
89
|
+
* mention: {
|
|
90
|
+
* color: 'gray',
|
|
91
|
+
* variants: {
|
|
92
|
+
* '^users://': { color: 'blue' },
|
|
93
|
+
* '^channels://': { color: 'green' },
|
|
94
|
+
* },
|
|
95
|
+
* }
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
export interface MarkdownMentionStyle extends MarkdownTextStyle {
|
|
99
|
+
/** iOS only; Android always renders circular corners. */
|
|
100
|
+
borderCurve?: "circular" | "continuous";
|
|
101
|
+
/** Rounds the `backgroundColor` chip behind the mention. */
|
|
102
|
+
borderRadius?: number;
|
|
103
|
+
variants?: Record<string, MarkdownTextStyle>;
|
|
104
|
+
}
|
|
105
|
+
/** Link styling; `backgroundColor` renders as a chip behind the link. */
|
|
106
|
+
export interface MarkdownLinkStyle extends MarkdownTextStyle {
|
|
107
|
+
/** iOS only; Android always renders circular corners. */
|
|
108
|
+
borderCurve?: "circular" | "continuous";
|
|
109
|
+
/** Rounds the `backgroundColor` chip behind the link. */
|
|
110
|
+
borderRadius?: number;
|
|
111
|
+
}
|
|
112
|
+
export interface MarkdownInlineCodeStyle extends MarkdownTextStyle {
|
|
113
|
+
backgroundColor?: ColorValue;
|
|
114
|
+
/** iOS only; Android always renders circular corners. */
|
|
115
|
+
borderCurve?: "circular" | "continuous";
|
|
116
|
+
borderRadius?: number;
|
|
117
|
+
padding?: number;
|
|
118
|
+
paddingHorizontal?: number;
|
|
119
|
+
paddingLeft?: number;
|
|
120
|
+
paddingRight?: number;
|
|
121
|
+
}
|
|
122
|
+
export type MarkdownTableCellStyle = MarkdownTextStyle & Pick<MarkdownLayoutStyle, "padding" | "paddingHorizontal" | "paddingVertical" | "paddingLeft" | "paddingRight" | "paddingTop" | "paddingBottom">;
|
|
123
|
+
export type MarkdownHeadingLevel = "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
124
|
+
/**
|
|
125
|
+
* Per-element styles for the markdown viewer.
|
|
126
|
+
*/
|
|
127
|
+
export interface MarkdownStyles {
|
|
128
|
+
blockQuote?: MarkdownTextStyle & MarkdownLayoutStyle;
|
|
129
|
+
bold?: MarkdownTextStyle;
|
|
130
|
+
codeBlock?: MarkdownTextStyle & MarkdownLayoutStyle;
|
|
131
|
+
divider?: MarkdownDividerStyle;
|
|
132
|
+
/** Vertical spacing between blocks. The `style` prop's `gap` wins. */
|
|
133
|
+
gap?: number;
|
|
134
|
+
headings?: Partial<Record<MarkdownHeadingLevel, MarkdownTextStyle>>;
|
|
135
|
+
image?: MarkdownImageStyle;
|
|
136
|
+
inlineCode?: MarkdownInlineCodeStyle;
|
|
137
|
+
italic?: MarkdownTextStyle;
|
|
138
|
+
link?: MarkdownLinkStyle;
|
|
139
|
+
list?: MarkdownListStyle;
|
|
140
|
+
listItem?: MarkdownTextStyle;
|
|
141
|
+
listMarker?: MarkdownListMarkerStyle;
|
|
142
|
+
mention?: MarkdownMentionStyle;
|
|
143
|
+
paragraph?: MarkdownTextStyle;
|
|
144
|
+
spoiler?: MarkdownSpoilerStyle;
|
|
145
|
+
strikethrough?: MarkdownTextStyle;
|
|
146
|
+
subscript?: MarkdownTextStyle;
|
|
147
|
+
superscript?: MarkdownTextStyle;
|
|
148
|
+
table?: MarkdownTableStyle;
|
|
149
|
+
/** Body-row overrides layered on top of `tableRow`. */
|
|
150
|
+
tableBodyRow?: MarkdownLayoutStyle;
|
|
151
|
+
tableCell?: MarkdownTableCellStyle;
|
|
152
|
+
/** Header-cell overrides layered on top of `tableCell`. */
|
|
153
|
+
tableHeaderCell?: MarkdownTableCellStyle;
|
|
154
|
+
/** Header-row overrides layered on top of `tableRow`. */
|
|
155
|
+
tableHeaderRow?: MarkdownLayoutStyle;
|
|
156
|
+
/** Base style for every row; header/body variants layer on top. */
|
|
157
|
+
tableRow?: MarkdownLayoutStyle;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Pre-sizing data for images referenced in the markdown. Images whose URL is
|
|
161
|
+
* listed here lay out at their final size immediately (zero layout shift);
|
|
162
|
+
* unknown images show a full-width, 200pt-tall placeholder and resize once
|
|
163
|
+
* loaded.
|
|
164
|
+
*/
|
|
165
|
+
export interface MarkdownImageData {
|
|
166
|
+
height: number;
|
|
167
|
+
url: string;
|
|
168
|
+
width: number;
|
|
169
|
+
}
|
|
170
|
+
export interface MarkdownUrlEvent {
|
|
171
|
+
url: string;
|
|
172
|
+
}
|
|
173
|
+
export interface MarkdownImageEvent {
|
|
174
|
+
/** Height of the rendered image, in dp. */
|
|
175
|
+
height: number;
|
|
176
|
+
url: string;
|
|
177
|
+
/** Width of the rendered image, in dp. */
|
|
178
|
+
width: number;
|
|
179
|
+
/** Horizontal position of the rendered image relative to the screen, in dp. */
|
|
180
|
+
x: number;
|
|
181
|
+
/** Vertical position of the rendered image relative to the screen, in dp. */
|
|
182
|
+
y: number;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* The main container style: background, padding, and the gap between
|
|
186
|
+
* blocks, plus base text styles that cascade into every text element
|
|
187
|
+
* (paragraphs, headings, lists, tables, quotes) unless overridden
|
|
188
|
+
* per-element via the `styles` prop. Element builtins survive the cascade:
|
|
189
|
+
* heading sizes/weight and the code block's monospace font stay unless
|
|
190
|
+
* their own section overrides them.
|
|
191
|
+
*
|
|
192
|
+
* For outer layout (margin, width, flex), wrap the component in a View.
|
|
193
|
+
*/
|
|
194
|
+
export interface MarkdownContainerStyle extends MarkdownTextStyle {
|
|
195
|
+
backgroundColor?: ColorValue;
|
|
196
|
+
/** Vertical spacing between blocks; overrides `styles.gap`. */
|
|
197
|
+
gap?: number;
|
|
198
|
+
/**
|
|
199
|
+
* Editor: caps autogrow — past this height the editor scrolls
|
|
200
|
+
* internally like a textarea. Viewer: plain layout clamp.
|
|
201
|
+
*/
|
|
202
|
+
maxHeight?: number;
|
|
203
|
+
padding?: number;
|
|
204
|
+
paddingBottom?: number;
|
|
205
|
+
paddingHorizontal?: number;
|
|
206
|
+
paddingLeft?: number;
|
|
207
|
+
paddingRight?: number;
|
|
208
|
+
paddingTop?: number;
|
|
209
|
+
paddingVertical?: number;
|
|
210
|
+
}
|
|
211
|
+
/** Formatting active at the cursor / selection. */
|
|
212
|
+
export interface MarkdownEditorState {
|
|
213
|
+
/** 0 = no heading. */
|
|
214
|
+
headingLevel: number;
|
|
215
|
+
isBlockQuote: boolean;
|
|
216
|
+
isBold: boolean;
|
|
217
|
+
isCodeBlock: boolean;
|
|
218
|
+
isInlineCode: boolean;
|
|
219
|
+
isItalic: boolean;
|
|
220
|
+
isOrderedList: boolean;
|
|
221
|
+
isSpoiler: boolean;
|
|
222
|
+
isStrikethrough: boolean;
|
|
223
|
+
isSubscript: boolean;
|
|
224
|
+
isSuperscript: boolean;
|
|
225
|
+
isUnorderedList: boolean;
|
|
226
|
+
}
|
|
227
|
+
export interface MarkdownSelection {
|
|
228
|
+
end: number;
|
|
229
|
+
start: number;
|
|
230
|
+
}
|
|
231
|
+
export interface MarkdownMentionEvent {
|
|
232
|
+
trigger: string;
|
|
233
|
+
}
|
|
234
|
+
export interface MarkdownMentionQueryEvent {
|
|
235
|
+
query: string;
|
|
236
|
+
trigger: string;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Paste payload. `text` is present when the clipboard has text (parsed as
|
|
240
|
+
* markdown and inserted by default); `images` when it has images (reported
|
|
241
|
+
* only, never auto-inserted). `preventDefault()` suppresses the default
|
|
242
|
+
* text insertion.
|
|
243
|
+
*/
|
|
244
|
+
export interface MarkdownPasteEvent {
|
|
245
|
+
images?: MarkdownImageData[];
|
|
246
|
+
preventDefault(): void;
|
|
247
|
+
text?: string;
|
|
248
|
+
}
|
|
249
|
+
export interface JetMarkdownEditorRef {
|
|
250
|
+
blur(): void;
|
|
251
|
+
focus(): void;
|
|
252
|
+
/** Resolves the markdown as of the latest edit. */
|
|
253
|
+
getMarkdown(): Promise<string>;
|
|
254
|
+
/**
|
|
255
|
+
* Links the selection to `url`; with a collapsed cursor, inserts `label`
|
|
256
|
+
* (or the URL itself) as linked text.
|
|
257
|
+
*/
|
|
258
|
+
insertLink(url: string, label?: string): void;
|
|
259
|
+
/** Parses `markdown` and inserts it at the cursor (or over the selection). */
|
|
260
|
+
insertMarkdown(markdown: string): void;
|
|
261
|
+
/**
|
|
262
|
+
* Inserts an atomic mention token (`trigger + label`, e.g. `@ali`)
|
|
263
|
+
* linked to `url` (an app scheme like `users://ali`), replacing any
|
|
264
|
+
* active mention query.
|
|
265
|
+
*/
|
|
266
|
+
insertMention(trigger: string, label: string, url: string): void;
|
|
267
|
+
/** Removes the link covering the selection or cursor. */
|
|
268
|
+
removeLink(): void;
|
|
269
|
+
setSelection(start: number, end: number): void;
|
|
270
|
+
/** Replaces the content; the value is parsed as markdown. */
|
|
271
|
+
setValue(markdown: string): void;
|
|
272
|
+
/** Block toggles apply to every line the selection touches. */
|
|
273
|
+
toggleBlockQuote(): void;
|
|
274
|
+
/**
|
|
275
|
+
* Each inline toggle applies to the selection, or arms/disarms the mark
|
|
276
|
+
* for text typed at the collapsed cursor.
|
|
277
|
+
*/
|
|
278
|
+
toggleBold(): void;
|
|
279
|
+
toggleCode(): void;
|
|
280
|
+
toggleCodeBlock(): void;
|
|
281
|
+
/** Toggles the heading level (1-6) on the selected lines. */
|
|
282
|
+
toggleHeading(level: number): void;
|
|
283
|
+
toggleItalic(): void;
|
|
284
|
+
toggleOrderedList(): void;
|
|
285
|
+
toggleSpoiler(): void;
|
|
286
|
+
toggleStrikethrough(): void;
|
|
287
|
+
toggleSubscript(): void;
|
|
288
|
+
toggleSuperscript(): void;
|
|
289
|
+
toggleUnorderedList(): void;
|
|
290
|
+
}
|
|
291
|
+
export interface JetMarkdownEditorProps {
|
|
292
|
+
/** Scale text with the system font size setting. Defaults to true. */
|
|
293
|
+
allowFontScaling?: boolean;
|
|
294
|
+
autoCapitalize?: "none" | "sentences" | "words" | "characters";
|
|
295
|
+
autoCorrect?: boolean;
|
|
296
|
+
autoFocus?: boolean;
|
|
297
|
+
/**
|
|
298
|
+
* Caret color. On iOS the caret and selection share one tint, so
|
|
299
|
+
* `selectionColor` wins when both are set. Android 10+ only. Platform
|
|
300
|
+
* colors (`PlatformColor`, `DynamicColorIOS`) are supported.
|
|
301
|
+
*/
|
|
302
|
+
cursorColor?: ColorValue;
|
|
303
|
+
/** Initial markdown content, applied once. */
|
|
304
|
+
defaultValue?: string;
|
|
305
|
+
editable?: boolean;
|
|
306
|
+
/** Trigger characters (e.g. '@', '#') that begin a mention. */
|
|
307
|
+
mentionTriggers?: string[];
|
|
308
|
+
multiline?: boolean;
|
|
309
|
+
onBlur?: () => void;
|
|
310
|
+
onChangeMarkdown?: (markdown: string) => void;
|
|
311
|
+
onChangeSelection?: (selection: MarkdownSelection) => void;
|
|
312
|
+
onChangeState?: (state: MarkdownEditorState) => void;
|
|
313
|
+
onChangeText?: (text: string) => void;
|
|
314
|
+
onFocus?: () => void;
|
|
315
|
+
onLinkDetected?: (event: MarkdownUrlEvent) => void;
|
|
316
|
+
onMentionChange?: (event: MarkdownMentionQueryEvent) => void;
|
|
317
|
+
onMentionEnd?: (event: MarkdownMentionEvent) => void;
|
|
318
|
+
onMentionStart?: (event: MarkdownMentionEvent) => void;
|
|
319
|
+
onPaste?: (event: MarkdownPasteEvent) => void;
|
|
320
|
+
placeholder?: string;
|
|
321
|
+
placeholderTextColor?: ColorValue;
|
|
322
|
+
scrollEnabled?: boolean;
|
|
323
|
+
/**
|
|
324
|
+
* Selection highlight color. On iOS this also tints the caret (UIKit
|
|
325
|
+
* shares one tint). Platform colors (`PlatformColor`, `DynamicColorIOS`)
|
|
326
|
+
* are supported.
|
|
327
|
+
*/
|
|
328
|
+
selectionColor?: ColorValue;
|
|
329
|
+
/** Same container style contract as the viewer. */
|
|
330
|
+
style?: StyleProp<MarkdownContainerStyle>;
|
|
331
|
+
/** Per-element markdown styles; shared shape with the viewer. */
|
|
332
|
+
styles?: MarkdownStyles;
|
|
333
|
+
}
|
|
334
|
+
export interface JetMarkdownViewProps {
|
|
335
|
+
/** Scale text with the system font size setting. Defaults to true. */
|
|
336
|
+
allowFontScaling?: boolean;
|
|
337
|
+
images?: MarkdownImageData[];
|
|
338
|
+
/** The markdown source to render. */
|
|
339
|
+
markdown: string;
|
|
340
|
+
onImagePress?: (event: MarkdownImageEvent) => void;
|
|
341
|
+
onLinkLongPress?: (event: MarkdownUrlEvent) => void;
|
|
342
|
+
onLinkPress?: (event: MarkdownUrlEvent) => void;
|
|
343
|
+
/**
|
|
344
|
+
* Main container style: `backgroundColor`, `padding*`, `gap`, and base
|
|
345
|
+
* text styles that cascade into every text element unless overridden via
|
|
346
|
+
* `styles`. All keys are measured natively.
|
|
347
|
+
*/
|
|
348
|
+
style?: StyleProp<MarkdownContainerStyle>;
|
|
349
|
+
/** Per-element markdown styles. Hoist to module scope or memoize. */
|
|
350
|
+
styles?: MarkdownStyles;
|
|
351
|
+
}
|
|
352
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { JetMarkdownEditorRef } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Convenience hook: a ref to pass to `<JetMarkdownEditor>` plus stable
|
|
4
|
+
* callbacks for every editor command.
|
|
5
|
+
*
|
|
6
|
+
* ```tsx
|
|
7
|
+
* const editor = useJetMarkdownEditor();
|
|
8
|
+
* <JetMarkdownEditor ref={editor.ref} />
|
|
9
|
+
* <Button onPress={editor.focus} />
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export declare function useJetMarkdownEditor(): {
|
|
13
|
+
blur: () => void | undefined;
|
|
14
|
+
focus: () => void | undefined;
|
|
15
|
+
getMarkdown: () => Promise<string>;
|
|
16
|
+
insertLink: (url: string, label?: string) => void | undefined;
|
|
17
|
+
insertMarkdown: (markdown: string) => void | undefined;
|
|
18
|
+
insertMention: (trigger: string, label: string, url: string) => void | undefined;
|
|
19
|
+
ref: import("react").RefObject<JetMarkdownEditorRef | null>;
|
|
20
|
+
removeLink: () => void | undefined;
|
|
21
|
+
setSelection: (start: number, end: number) => void | undefined;
|
|
22
|
+
setValue: (markdown: string) => void | undefined;
|
|
23
|
+
toggleBlockQuote: () => void | undefined;
|
|
24
|
+
toggleBold: () => void | undefined;
|
|
25
|
+
toggleCode: () => void | undefined;
|
|
26
|
+
toggleCodeBlock: () => void | undefined;
|
|
27
|
+
toggleHeading: (level: number) => void | undefined;
|
|
28
|
+
toggleItalic: () => void | undefined;
|
|
29
|
+
toggleOrderedList: () => void | undefined;
|
|
30
|
+
toggleSpoiler: () => void | undefined;
|
|
31
|
+
toggleStrikethrough: () => void | undefined;
|
|
32
|
+
toggleSubscript: () => void | undefined;
|
|
33
|
+
toggleSuperscript: () => void | undefined;
|
|
34
|
+
toggleUnorderedList: () => void | undefined;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=useJetMarkdownEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useJetMarkdownEditor.d.ts","sourceRoot":"","sources":["../../../src/useJetMarkdownEditor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAS,CAAC;AAEpD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB;;;uBAOb,OAAO,CAAC,MAAM,CAAC;sBAEd,MAAM,UAAU,MAAM;+BAEb,MAAM;6BAER,MAAM,SAAS,MAAM,OAAO,MAAM;;;0BAIrC,MAAM,OAAO,MAAM;yBAEpB,MAAM;;;;;2BAKJ,MAAM;;;;;;;;EAWlC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "react-native-jet-markdown",
|
|
3
|
+
"version": "0.2.0-beta.7",
|
|
4
|
+
"description": "High-performance native Markdown renderer and editor for React Native",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"react-native",
|
|
7
|
+
"ios",
|
|
8
|
+
"android"
|
|
9
|
+
],
|
|
10
|
+
"homepage": "https://github.com/alizahid/react-native-jet-markdown#readme",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/alizahid/react-native-jet-markdown/issues"
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/alizahid/react-native-jet-markdown.git"
|
|
17
|
+
},
|
|
18
|
+
"license": "MIT",
|
|
19
|
+
"author": "Ali Zahid <ali.zahid@live.com> (https://github.com/alizahid)",
|
|
20
|
+
"exports": {
|
|
21
|
+
".": {
|
|
22
|
+
"react-native-jet-markdown-source": "./src/index.tsx",
|
|
23
|
+
"types": "./lib/typescript/src/index.d.ts",
|
|
24
|
+
"default": "./lib/module/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./package.json": "./package.json"
|
|
27
|
+
},
|
|
28
|
+
"main": "./lib/module/index.js",
|
|
29
|
+
"types": "./lib/typescript/src/index.d.ts",
|
|
30
|
+
"files": [
|
|
31
|
+
"src",
|
|
32
|
+
"lib",
|
|
33
|
+
"android",
|
|
34
|
+
"ios",
|
|
35
|
+
"cpp",
|
|
36
|
+
"*.podspec",
|
|
37
|
+
"react-native.config.js",
|
|
38
|
+
"!ios/build",
|
|
39
|
+
"!android/build",
|
|
40
|
+
"!android/gradle",
|
|
41
|
+
"!android/gradlew",
|
|
42
|
+
"!android/gradlew.bat",
|
|
43
|
+
"!android/local.properties",
|
|
44
|
+
"!**/__tests__",
|
|
45
|
+
"!**/__fixtures__",
|
|
46
|
+
"!**/__mocks__",
|
|
47
|
+
"!**/.*"
|
|
48
|
+
],
|
|
49
|
+
"workspaces": [
|
|
50
|
+
"example"
|
|
51
|
+
],
|
|
52
|
+
"scripts": {
|
|
53
|
+
"check": "ultracite check",
|
|
54
|
+
"clean": "del-cli lib",
|
|
55
|
+
"example": "bun run --cwd example",
|
|
56
|
+
"fix": "ultracite fix",
|
|
57
|
+
"prepare": "bob build && husky",
|
|
58
|
+
"release": "release-it --only-version",
|
|
59
|
+
"test": "bun test src && cpp/tests/run_tests.sh",
|
|
60
|
+
"typecheck": "tsc"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"@biomejs/biome": "2.4.16",
|
|
64
|
+
"@react-native/babel-preset": "0.86.0",
|
|
65
|
+
"@release-it/conventional-changelog": "^11.0.1",
|
|
66
|
+
"@types/bun": "^1.3.14",
|
|
67
|
+
"@types/react": "^19.2.17",
|
|
68
|
+
"del-cli": "^7.0.0",
|
|
69
|
+
"husky": "^9.1.7",
|
|
70
|
+
"lint-staged": "^17.0.8",
|
|
71
|
+
"react": "19.2.3",
|
|
72
|
+
"react-native": "0.86.0",
|
|
73
|
+
"react-native-builder-bob": "^0.43.0",
|
|
74
|
+
"release-it": "^20.2.1",
|
|
75
|
+
"turbo": "^2.10.2",
|
|
76
|
+
"typescript": "^6.0.3",
|
|
77
|
+
"ultracite": "7.8.4"
|
|
78
|
+
},
|
|
79
|
+
"peerDependencies": {
|
|
80
|
+
"react": ">=19.0.0",
|
|
81
|
+
"react-native": ">=0.86.0"
|
|
82
|
+
},
|
|
83
|
+
"packageManager": "bun@1.3.14",
|
|
84
|
+
"publishConfig": {
|
|
85
|
+
"registry": "https://registry.npmjs.org/"
|
|
86
|
+
},
|
|
87
|
+
"codegenConfig": {
|
|
88
|
+
"name": "JetMarkdownViewSpec",
|
|
89
|
+
"type": "components",
|
|
90
|
+
"jsSrcsDir": "src",
|
|
91
|
+
"android": {
|
|
92
|
+
"javaPackageName": "com.jetmarkdown"
|
|
93
|
+
},
|
|
94
|
+
"ios": {
|
|
95
|
+
"components": {
|
|
96
|
+
"JetMarkdownEditor": {
|
|
97
|
+
"className": "JetMarkdownEditor"
|
|
98
|
+
},
|
|
99
|
+
"JetMarkdownView": {
|
|
100
|
+
"className": "JetMarkdownView"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"create-react-native-library": {
|
|
106
|
+
"type": "fabric-view",
|
|
107
|
+
"languages": "kotlin-objc",
|
|
108
|
+
"tools": [
|
|
109
|
+
"release-it"
|
|
110
|
+
],
|
|
111
|
+
"version": "0.63.0"
|
|
112
|
+
},
|
|
113
|
+
"react-native-builder-bob": {
|
|
114
|
+
"source": "src",
|
|
115
|
+
"output": "lib",
|
|
116
|
+
"targets": [
|
|
117
|
+
[
|
|
118
|
+
"module",
|
|
119
|
+
{
|
|
120
|
+
"esm": true
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
[
|
|
124
|
+
"typescript",
|
|
125
|
+
{
|
|
126
|
+
"project": "tsconfig.build.json"
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
"release-it": {
|
|
132
|
+
"git": {
|
|
133
|
+
"commitMessage": "chore: release ${version}",
|
|
134
|
+
"tagName": "v${version}"
|
|
135
|
+
},
|
|
136
|
+
"npm": {
|
|
137
|
+
"publish": true
|
|
138
|
+
},
|
|
139
|
+
"github": {
|
|
140
|
+
"release": true
|
|
141
|
+
},
|
|
142
|
+
"plugins": {
|
|
143
|
+
"@release-it/conventional-changelog": {
|
|
144
|
+
"preset": {
|
|
145
|
+
"name": "angular"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|