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.
Files changed (157) hide show
  1. package/JetMarkdown.podspec +42 -0
  2. package/LICENSE +20 -0
  3. package/README.md +247 -0
  4. package/android/CMakeLists.txt +52 -0
  5. package/android/build.gradle +55 -0
  6. package/android/src/main/AndroidManifest.xml +2 -0
  7. package/android/src/main/cpp/JniBindings.cpp +243 -0
  8. package/android/src/main/java/com/jetmarkdown/JetMarkdownNative.kt +114 -0
  9. package/android/src/main/java/com/jetmarkdown/JetMarkdownPackage.kt +22 -0
  10. package/android/src/main/java/com/jetmarkdown/JetMarkdownView.kt +235 -0
  11. package/android/src/main/java/com/jetmarkdown/JetMarkdownViewManager.kt +75 -0
  12. package/android/src/main/java/com/jetmarkdown/editor/EditorSpans.kt +217 -0
  13. package/android/src/main/java/com/jetmarkdown/editor/JetMarkdownEditorManager.kt +224 -0
  14. package/android/src/main/java/com/jetmarkdown/editor/JetMarkdownEditorView.kt +1736 -0
  15. package/android/src/main/java/com/jetmarkdown/measure/MarkdownMeasurer.kt +54 -0
  16. package/android/src/main/java/com/jetmarkdown/parser/AstDecoder.kt +59 -0
  17. package/android/src/main/java/com/jetmarkdown/parser/MdNode.kt +43 -0
  18. package/android/src/main/java/com/jetmarkdown/render/ContentCache.kt +53 -0
  19. package/android/src/main/java/com/jetmarkdown/render/RenderedContent.kt +318 -0
  20. package/android/src/main/java/com/jetmarkdown/render/SpannableRenderer.kt +658 -0
  21. package/android/src/main/java/com/jetmarkdown/render/spans/ChipSpan.kt +17 -0
  22. package/android/src/main/java/com/jetmarkdown/render/spans/InteractiveSpans.kt +11 -0
  23. package/android/src/main/java/com/jetmarkdown/render/spans/MarkdownLineHeightSpan.kt +59 -0
  24. package/android/src/main/java/com/jetmarkdown/render/spans/RunSpan.kt +40 -0
  25. package/android/src/main/java/com/jetmarkdown/style/Fonts.kt +34 -0
  26. package/android/src/main/java/com/jetmarkdown/style/LayoutStyleSpec.kt +71 -0
  27. package/android/src/main/java/com/jetmarkdown/style/PlatformColorResolver.kt +77 -0
  28. package/android/src/main/java/com/jetmarkdown/style/StyleConfig.kt +80 -0
  29. package/android/src/main/java/com/jetmarkdown/style/TextStyleSpec.kt +61 -0
  30. package/android/src/main/java/com/jetmarkdown/views/BlockStackView.kt +292 -0
  31. package/android/src/main/java/com/jetmarkdown/views/BlockTextView.kt +378 -0
  32. package/android/src/main/java/com/jetmarkdown/views/BoxDrawing.kt +50 -0
  33. package/android/src/main/java/com/jetmarkdown/views/MarkdownHost.kt +12 -0
  34. package/android/src/main/java/com/jetmarkdown/views/MarkdownImageView.kt +113 -0
  35. package/android/src/main/java/com/jetmarkdown/views/NestedHorizontalScrollView.kt +87 -0
  36. package/android/src/main/java/com/jetmarkdown/views/TableBlockView.kt +139 -0
  37. package/cpp/core/Ast.h +85 -0
  38. package/cpp/core/AstJson.cpp +129 -0
  39. package/cpp/core/AstJson.h +12 -0
  40. package/cpp/core/AstSerializer.cpp +40 -0
  41. package/cpp/core/AstSerializer.h +21 -0
  42. package/cpp/core/AstToMarkdown.cpp +549 -0
  43. package/cpp/core/AstToMarkdown.h +16 -0
  44. package/cpp/core/EditorRuns.cpp +640 -0
  45. package/cpp/core/EditorRuns.h +94 -0
  46. package/cpp/core/EditorText.cpp +15 -0
  47. package/cpp/core/EditorText.h +18 -0
  48. package/cpp/core/InlineExtensions.cpp +305 -0
  49. package/cpp/core/InlineExtensions.h +17 -0
  50. package/cpp/core/Parser.cpp +470 -0
  51. package/cpp/core/Parser.h +16 -0
  52. package/cpp/core/Preprocess.cpp +181 -0
  53. package/cpp/core/Preprocess.h +14 -0
  54. package/cpp/md4c/LICENSE +22 -0
  55. package/cpp/md4c/VERSION +1 -0
  56. package/cpp/md4c/md4c.c +6462 -0
  57. package/cpp/md4c/md4c.h +407 -0
  58. package/cpp/react/JetMarkdownEditorShadowNode.cpp +54 -0
  59. package/cpp/react/JetMarkdownEditorShadowNode.h +55 -0
  60. package/cpp/react/JetMarkdownEditorState.h +35 -0
  61. package/cpp/react/JetMarkdownMeasurer.cpp +32 -0
  62. package/cpp/react/JetMarkdownMeasurer.h +41 -0
  63. package/cpp/react/JetMarkdownShadowNode.cpp +100 -0
  64. package/cpp/react/JetMarkdownShadowNode.h +53 -0
  65. package/cpp/react/JetMarkdownState.h +52 -0
  66. package/cpp/react/override/react/renderer/components/JetMarkdownViewSpec/ComponentDescriptors.h +21 -0
  67. package/cpp/tests/parser_tests.cpp +662 -0
  68. package/cpp/tests/run_tests.sh +25 -0
  69. package/ios/JetMarkdownView.h +14 -0
  70. package/ios/JetMarkdownView.mm +468 -0
  71. package/ios/editor/JetMarkdownEditor.h +12 -0
  72. package/ios/editor/JetMarkdownEditor.mm +2002 -0
  73. package/ios/measure/JMDMarkdownMeasurer.h +22 -0
  74. package/ios/measure/JMDMarkdownMeasurer.mm +38 -0
  75. package/ios/render/JMDBlock.h +97 -0
  76. package/ios/render/JMDBlock.m +28 -0
  77. package/ios/render/JMDBlockRenderer.h +17 -0
  78. package/ios/render/JMDBlockRenderer.mm +852 -0
  79. package/ios/render/JMDContentCache.h +17 -0
  80. package/ios/render/JMDContentCache.mm +42 -0
  81. package/ios/render/JMDRenderedContent.h +35 -0
  82. package/ios/render/JMDRenderedContent.mm +274 -0
  83. package/ios/style/JMDFontScale.h +33 -0
  84. package/ios/style/JMDLayoutStyle.h +37 -0
  85. package/ios/style/JMDLayoutStyle.mm +68 -0
  86. package/ios/style/JMDStyleConfig.h +39 -0
  87. package/ios/style/JMDStyleConfig.mm +111 -0
  88. package/ios/style/JMDTextStyle.h +25 -0
  89. package/ios/style/JMDTextStyle.mm +68 -0
  90. package/ios/views/JMDBlockStackView.h +18 -0
  91. package/ios/views/JMDBlockStackView.m +97 -0
  92. package/ios/views/JMDBlockTextView.h +24 -0
  93. package/ios/views/JMDBlockTextView.m +340 -0
  94. package/ios/views/JMDBoxViews.h +33 -0
  95. package/ios/views/JMDBoxViews.m +292 -0
  96. package/ios/views/JMDImageView.h +19 -0
  97. package/ios/views/JMDImageView.m +68 -0
  98. package/ios/views/JMDMarkdownHost.h +16 -0
  99. package/ios/views/JMDTableView.h +16 -0
  100. package/ios/views/JMDTableView.m +172 -0
  101. package/lib/module/JetMarkdownEditor.js +85 -0
  102. package/lib/module/JetMarkdownEditor.js.map +1 -0
  103. package/lib/module/JetMarkdownEditor.native.js +244 -0
  104. package/lib/module/JetMarkdownEditor.native.js.map +1 -0
  105. package/lib/module/JetMarkdownEditorNativeComponent.ts +173 -0
  106. package/lib/module/JetMarkdownView.js +19 -0
  107. package/lib/module/JetMarkdownView.js.map +1 -0
  108. package/lib/module/JetMarkdownView.native.js +44 -0
  109. package/lib/module/JetMarkdownView.native.js.map +1 -0
  110. package/lib/module/JetMarkdownViewNativeComponent.ts +35 -0
  111. package/lib/module/defaultStyles.js +122 -0
  112. package/lib/module/defaultStyles.js.map +1 -0
  113. package/lib/module/index.js +9 -0
  114. package/lib/module/index.js.map +1 -0
  115. package/lib/module/package.json +1 -0
  116. package/lib/module/serializeStyles.js +259 -0
  117. package/lib/module/serializeStyles.js.map +1 -0
  118. package/lib/module/types.js +4 -0
  119. package/lib/module/types.js.map +1 -0
  120. package/lib/module/useJetMarkdownEditor.js +41 -0
  121. package/lib/module/useJetMarkdownEditor.js.map +1 -0
  122. package/lib/typescript/package.json +1 -0
  123. package/lib/typescript/src/JetMarkdownEditor.d.ts +6 -0
  124. package/lib/typescript/src/JetMarkdownEditor.d.ts.map +1 -0
  125. package/lib/typescript/src/JetMarkdownEditor.native.d.ts +6 -0
  126. package/lib/typescript/src/JetMarkdownEditor.native.d.ts.map +1 -0
  127. package/lib/typescript/src/JetMarkdownEditorNativeComponent.d.ts +105 -0
  128. package/lib/typescript/src/JetMarkdownEditorNativeComponent.d.ts.map +1 -0
  129. package/lib/typescript/src/JetMarkdownView.d.ts +3 -0
  130. package/lib/typescript/src/JetMarkdownView.d.ts.map +1 -0
  131. package/lib/typescript/src/JetMarkdownView.native.d.ts +3 -0
  132. package/lib/typescript/src/JetMarkdownView.native.d.ts.map +1 -0
  133. package/lib/typescript/src/JetMarkdownViewNativeComponent.d.ts +28 -0
  134. package/lib/typescript/src/JetMarkdownViewNativeComponent.d.ts.map +1 -0
  135. package/lib/typescript/src/defaultStyles.d.ts +20 -0
  136. package/lib/typescript/src/defaultStyles.d.ts.map +1 -0
  137. package/lib/typescript/src/index.d.ts +7 -0
  138. package/lib/typescript/src/index.d.ts.map +1 -0
  139. package/lib/typescript/src/serializeStyles.d.ts +34 -0
  140. package/lib/typescript/src/serializeStyles.d.ts.map +1 -0
  141. package/lib/typescript/src/types.d.ts +352 -0
  142. package/lib/typescript/src/types.d.ts.map +1 -0
  143. package/lib/typescript/src/useJetMarkdownEditor.d.ts +36 -0
  144. package/lib/typescript/src/useJetMarkdownEditor.d.ts.map +1 -0
  145. package/package.json +150 -0
  146. package/react-native.config.js +11 -0
  147. package/src/JetMarkdownEditor.native.tsx +301 -0
  148. package/src/JetMarkdownEditor.tsx +90 -0
  149. package/src/JetMarkdownEditorNativeComponent.ts +173 -0
  150. package/src/JetMarkdownView.native.tsx +67 -0
  151. package/src/JetMarkdownView.tsx +16 -0
  152. package/src/JetMarkdownViewNativeComponent.ts +35 -0
  153. package/src/defaultStyles.ts +102 -0
  154. package/src/index.tsx +34 -0
  155. package/src/serializeStyles.ts +369 -0
  156. package/src/types.ts +438 -0
  157. package/src/useJetMarkdownEditor.ts +50 -0
@@ -0,0 +1,224 @@
1
+ package com.jetmarkdown.editor
2
+
3
+ import com.facebook.react.bridge.ReadableArray
4
+ import com.facebook.react.module.annotations.ReactModule
5
+ import com.facebook.react.uimanager.SimpleViewManager
6
+ import com.facebook.react.uimanager.StateWrapper
7
+ import com.facebook.react.uimanager.ThemedReactContext
8
+ import com.facebook.react.uimanager.ViewManagerDelegate
9
+ import com.facebook.react.uimanager.annotations.ReactProp
10
+ import com.facebook.react.viewmanagers.JetMarkdownEditorManagerDelegate
11
+ import com.facebook.react.viewmanagers.JetMarkdownEditorManagerInterface
12
+ import com.jetmarkdown.JetMarkdownNative
13
+ import com.jetmarkdown.style.PlatformColorResolver
14
+
15
+ @ReactModule(name = JetMarkdownEditorManager.NAME)
16
+ class JetMarkdownEditorManager : SimpleViewManager<JetMarkdownEditorView>(),
17
+ JetMarkdownEditorManagerInterface<JetMarkdownEditorView> {
18
+ private val delegate: ViewManagerDelegate<JetMarkdownEditorView> =
19
+ JetMarkdownEditorManagerDelegate(this)
20
+
21
+ init {
22
+ JetMarkdownNative.ensureInstalled()
23
+ }
24
+
25
+ override fun getDelegate(): ViewManagerDelegate<JetMarkdownEditorView> = delegate
26
+
27
+ override fun getName(): String = NAME
28
+
29
+ public override fun createViewInstance(context: ThemedReactContext): JetMarkdownEditorView {
30
+ JetMarkdownNative.ensureInstalled()
31
+ PlatformColorResolver.install(context)
32
+ return JetMarkdownEditorView(context)
33
+ }
34
+
35
+ @ReactProp(name = "allowFontScaling")
36
+ override fun setAllowFontScaling(view: JetMarkdownEditorView?, value: Boolean) {
37
+ view?.allowFontScaling = value
38
+ }
39
+
40
+ @ReactProp(name = "autoCapitalize")
41
+ override fun setAutoCapitalize(view: JetMarkdownEditorView?, value: String?) {
42
+ view?.setCapitalizeMode(value)
43
+ }
44
+
45
+ @ReactProp(name = "autoCorrect")
46
+ override fun setAutoCorrect(view: JetMarkdownEditorView?, value: Boolean) {
47
+ view?.setAutoCorrectEnabled(value)
48
+ }
49
+
50
+ @ReactProp(name = "autoFocus")
51
+ override fun setAutoFocus(view: JetMarkdownEditorView?, value: Boolean) {
52
+ view?.setAutoFocus(value)
53
+ }
54
+
55
+ @ReactProp(name = "cursorColor", customType = "Color")
56
+ override fun setCursorColor(view: JetMarkdownEditorView?, value: Int?) {
57
+ view?.setCursorColorInt(value ?: 0)
58
+ }
59
+
60
+ @ReactProp(name = "defaultValue")
61
+ override fun setDefaultValue(view: JetMarkdownEditorView?, value: String?) {
62
+ view?.setDefaultValue(value)
63
+ }
64
+
65
+ @ReactProp(name = "editable")
66
+ override fun setEditable(view: JetMarkdownEditorView?, value: Boolean) {
67
+ view?.isEnabled = value
68
+ }
69
+
70
+ @ReactProp(name = "maxHeight")
71
+ override fun setMaxHeight(view: JetMarkdownEditorView?, value: Double) {
72
+ view?.setMaxContentHeight(value)
73
+ }
74
+
75
+ @ReactProp(name = "mentionTriggers")
76
+ override fun setMentionTriggers(view: JetMarkdownEditorView?, value: ReadableArray?) {
77
+ val triggers = ArrayList<String>()
78
+ if (value != null) {
79
+ for (index in 0 until value.size()) {
80
+ val trigger = value.getString(index)
81
+ if (!trigger.isNullOrEmpty()) {
82
+ triggers.add(trigger.substring(0, 1))
83
+ }
84
+ }
85
+ }
86
+ view?.mentionTriggers = triggers
87
+ }
88
+
89
+ @ReactProp(name = "multiline")
90
+ override fun setMultiline(view: JetMarkdownEditorView?, value: Boolean) {
91
+ view?.setMultiline(value)
92
+ }
93
+
94
+ @ReactProp(name = "placeholder")
95
+ override fun setPlaceholder(view: JetMarkdownEditorView?, value: String?) {
96
+ view?.setPlaceholderText(value)
97
+ }
98
+
99
+ @ReactProp(name = "placeholderTextColor", customType = "Color")
100
+ override fun setPlaceholderTextColor(view: JetMarkdownEditorView?, value: Int?) {
101
+ view?.setPlaceholderColor(value ?: 0)
102
+ }
103
+
104
+ @ReactProp(name = "scrollEnabled")
105
+ override fun setScrollEnabled(view: JetMarkdownEditorView?, value: Boolean) {
106
+ view?.setScrollAllowed(value)
107
+ }
108
+
109
+ @ReactProp(name = "selectionColor", customType = "Color")
110
+ override fun setSelectionColor(view: JetMarkdownEditorView?, value: Int?) {
111
+ view?.setSelectionColorInt(value ?: 0)
112
+ }
113
+
114
+ @ReactProp(name = "stylesJson")
115
+ override fun setStylesJson(view: JetMarkdownEditorView?, value: String?) {
116
+ view?.setStylesJson(value)
117
+ }
118
+
119
+ override fun blur(view: JetMarkdownEditorView?) {
120
+ view?.blurAndHideKeyboard()
121
+ }
122
+
123
+ override fun focus(view: JetMarkdownEditorView?) {
124
+ view?.focusAndShowKeyboard()
125
+ }
126
+
127
+ override fun setSelection(view: JetMarkdownEditorView?, start: Int, end: Int) {
128
+ view?.setEditorSelection(start, end)
129
+ }
130
+
131
+ override fun setValue(view: JetMarkdownEditorView?, value: String?) {
132
+ view?.setMarkdownValue(value ?: "")
133
+ }
134
+
135
+ override fun insertLink(view: JetMarkdownEditorView?, url: String?, label: String?) {
136
+ view?.insertLink(url ?: "", label ?: "")
137
+ }
138
+
139
+ override fun insertMarkdown(view: JetMarkdownEditorView?, value: String?) {
140
+ view?.insertMarkdownAt(value ?: "")
141
+ }
142
+
143
+ override fun insertMention(
144
+ view: JetMarkdownEditorView?,
145
+ trigger: String?,
146
+ label: String?,
147
+ url: String?,
148
+ ) {
149
+ view?.insertMention(trigger ?: "", label ?: "", url ?: "")
150
+ }
151
+
152
+ override fun removeLink(view: JetMarkdownEditorView?) {
153
+ view?.removeLink()
154
+ }
155
+
156
+ override fun toggleBlockQuote(view: JetMarkdownEditorView?) {
157
+ view?.toggleBlock(EditorBlocks.QUOTE, 0)
158
+ }
159
+
160
+ override fun toggleBold(view: JetMarkdownEditorView?) {
161
+ view?.toggleMark(EditorMarks.BOLD)
162
+ }
163
+
164
+ override fun toggleCodeBlock(view: JetMarkdownEditorView?) {
165
+ view?.toggleBlock(EditorBlocks.CODE, 0)
166
+ }
167
+
168
+ override fun toggleHeading(view: JetMarkdownEditorView?, level: Int) {
169
+ view?.toggleBlock(EditorBlocks.HEADING, level.coerceIn(1, 6))
170
+ }
171
+
172
+ override fun toggleOrderedList(view: JetMarkdownEditorView?) {
173
+ view?.toggleBlock(EditorBlocks.ORDERED, 0)
174
+ }
175
+
176
+ override fun toggleUnorderedList(view: JetMarkdownEditorView?) {
177
+ view?.toggleBlock(EditorBlocks.BULLET, 0)
178
+ }
179
+
180
+ override fun toggleCode(view: JetMarkdownEditorView?) {
181
+ view?.toggleMark(EditorMarks.INLINE_CODE)
182
+ }
183
+
184
+ override fun toggleItalic(view: JetMarkdownEditorView?) {
185
+ view?.toggleMark(EditorMarks.ITALIC)
186
+ }
187
+
188
+ override fun toggleSpoiler(view: JetMarkdownEditorView?) {
189
+ view?.toggleMark(EditorMarks.SPOILER)
190
+ }
191
+
192
+ override fun toggleStrikethrough(view: JetMarkdownEditorView?) {
193
+ view?.toggleMark(EditorMarks.STRIKETHROUGH)
194
+ }
195
+
196
+ override fun toggleSubscript(view: JetMarkdownEditorView?) {
197
+ view?.toggleMark(EditorMarks.SUBSCRIPT)
198
+ }
199
+
200
+ override fun toggleSuperscript(view: JetMarkdownEditorView?) {
201
+ view?.toggleMark(EditorMarks.SUPERSCRIPT)
202
+ }
203
+
204
+ override fun prepareToRecycleView(
205
+ reactContext: ThemedReactContext,
206
+ view: JetMarkdownEditorView,
207
+ ): JetMarkdownEditorView {
208
+ view.resetForRecycle()
209
+ return view
210
+ }
211
+
212
+ override fun updateState(
213
+ view: JetMarkdownEditorView,
214
+ props: com.facebook.react.uimanager.ReactStylesDiffMap,
215
+ stateWrapper: StateWrapper?,
216
+ ): Any? {
217
+ view.stateWrapper = stateWrapper
218
+ return null
219
+ }
220
+
221
+ companion object {
222
+ const val NAME = "JetMarkdownEditor"
223
+ }
224
+ }