react-native-marcus 0.1.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 (304) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +227 -0
  3. package/RNMarcus.podspec +78 -0
  4. package/android/build.gradle +220 -0
  5. package/android/proguard-rules.pro +1 -0
  6. package/android/src/main/AndroidManifest.xml +3 -0
  7. package/android/src/main/AndroidManifestNew.xml +2 -0
  8. package/android/src/main/cpp/CMakeLists.txt +41 -0
  9. package/android/src/main/cpp/MarkdownParser.cpp +49 -0
  10. package/android/src/main/cpp/MarkdownParser.h +56 -0
  11. package/android/src/main/cpp/OnLoad.cpp +17 -0
  12. package/android/src/main/java/app/getbullet/marcus/MarcusModule.kt +28 -0
  13. package/android/src/main/java/app/getbullet/marcus/MarcusPackage.kt +31 -0
  14. package/android/src/main/java/app/getbullet/marcus/MarcusTextInputDecoratorView.kt +63 -0
  15. package/android/src/main/java/app/getbullet/marcus/MarcusTextInputDecoratorViewManager.kt +32 -0
  16. package/android/src/main/java/app/getbullet/marcus/MarcusTextInputDecoratorViewManagerSpec.kt +21 -0
  17. package/android/src/main/java/app/getbullet/marcus/MarkdownFormatter.kt +333 -0
  18. package/android/src/main/java/app/getbullet/marcus/MarkdownParseResult.kt +12 -0
  19. package/android/src/main/java/app/getbullet/marcus/MarkdownParser.kt +89 -0
  20. package/android/src/main/java/app/getbullet/marcus/MarkdownRange.kt +11 -0
  21. package/android/src/main/java/app/getbullet/marcus/MarkdownStyle.kt +81 -0
  22. package/android/src/main/java/app/getbullet/marcus/MarkdownTextWatcher.kt +17 -0
  23. package/android/src/main/java/app/getbullet/marcus/MarkdownUtils.kt +84 -0
  24. package/android/src/main/java/app/getbullet/marcus/ReactLineHeight.java +29 -0
  25. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBackgroundColorSpan.kt +6 -0
  26. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBackgroundSpan.kt +105 -0
  27. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBlockIndentSpan.kt +67 -0
  28. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBoldSpan.kt +6 -0
  29. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownFontFamilySpan.kt +28 -0
  30. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownFontSizeSpan.kt +7 -0
  31. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownForegroundColorSpan.kt +6 -0
  32. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownGapSpan.kt +57 -0
  33. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownItalicSpan.kt +6 -0
  34. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownLineHeightSpan.kt +21 -0
  35. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownSpan.kt +7 -0
  36. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownStrikethroughSpan.kt +5 -0
  37. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownUnderlineSpan.kt +5 -0
  38. package/android/src/main/new_arch/CMakeLists.txt +70 -0
  39. package/android/src/main/new_arch/RNMarcusSpec.cpp +43 -0
  40. package/android/src/main/new_arch/RNMarcusSpec.h +36 -0
  41. package/android/src/main/new_arch/react/renderer/components/RNMarcusSpec/MarcusTextInputDecoratorShadowNode.cpp +218 -0
  42. package/android/src/main/new_arch/react/renderer/components/RNMarcusSpec/MarcusTextInputDecoratorShadowNode.h +54 -0
  43. package/android/src/reactNativeVersionPatch/CustomMountingManager/81/app/getbullet/marcus/CustomFabricUIManager.java +156 -0
  44. package/android/src/reactNativeVersionPatch/CustomMountingManager/latest/app/getbullet/marcus/CustomFabricUIManager.java +130 -0
  45. package/android/src/test/java/app/getbullet/marcus/MarkdownFormatterTest.kt +205 -0
  46. package/android/src/test/java/app/getbullet/marcus/RenderModel.kt +78 -0
  47. package/android/src/test/resources/render-model.txt +583 -0
  48. package/apple/MarcusModule.h +8 -0
  49. package/apple/MarcusModule.mm +26 -0
  50. package/apple/MarcusRange.h +15 -0
  51. package/apple/MarcusRange.mm +15 -0
  52. package/apple/MarcusTextInputDecoratorComponentView.h +12 -0
  53. package/apple/MarcusTextInputDecoratorComponentView.mm +121 -0
  54. package/apple/MarcusTextInputDecoratorShadowNode.cpp +251 -0
  55. package/apple/MarcusTextInputDecoratorShadowNode.h +65 -0
  56. package/apple/MarcusTextInputDecoratorShadowNode.mm +204 -0
  57. package/apple/MarcusTextInputDecoratorViewManager.h +8 -0
  58. package/apple/MarcusTextInputDecoratorViewManager.mm +11 -0
  59. package/apple/MarkdownAdaptiveImageGlyph.swift +44 -0
  60. package/apple/MarkdownAttributes.h +31 -0
  61. package/apple/MarkdownAttributes.m +9 -0
  62. package/apple/MarkdownBackedTextInputDelegate.swift +117 -0
  63. package/apple/MarkdownDecorator.swift +316 -0
  64. package/apple/MarkdownFonts.swift +21 -0
  65. package/apple/MarkdownFormatter+React.swift +51 -0
  66. package/apple/MarkdownFormatter.swift +509 -0
  67. package/apple/MarkdownLog.h +10 -0
  68. package/apple/MarkdownLog.mm +6 -0
  69. package/apple/MarkdownParser.swift +200 -0
  70. package/apple/MarkdownSwiftInterop.h +23 -0
  71. package/apple/MarkdownTextBackground.swift +17 -0
  72. package/apple/MarkdownTextFieldObserver.swift +90 -0
  73. package/apple/MarkdownTextLayoutFragment.swift +205 -0
  74. package/apple/MarkdownTextLayoutManagerDelegate.swift +84 -0
  75. package/apple/MarkdownTextStorageDelegate.swift +32 -0
  76. package/apple/MarkdownTextViewObserver.swift +30 -0
  77. package/apple/RCTMarcusStyle+Codegen.h +18 -0
  78. package/apple/RCTMarcusStyle+Codegen.mm +64 -0
  79. package/apple/RCTMarcusStyle.h +41 -0
  80. package/apple/RCTMarcusStyle.m +5 -0
  81. package/apple/RCTMarcusUtils.h +26 -0
  82. package/apple/RCTMarcusUtils.mm +26 -0
  83. package/apple/RCTTextInput+AdaptiveImageGlyph.h +16 -0
  84. package/apple/RCTTextInput+AdaptiveImageGlyph.mm +79 -0
  85. package/apple/RCTTextInputComponentView+Marcus.h +11 -0
  86. package/apple/RCTTextInputComponentView+Marcus.mm +79 -0
  87. package/cpp/MarkdownCxx.modulemap +8 -0
  88. package/cpp/MarkdownGlobal.cpp +48 -0
  89. package/cpp/MarkdownGlobal.h +33 -0
  90. package/cpp/MarkdownWorkletParser.cpp +93 -0
  91. package/cpp/MarkdownWorkletParser.h +45 -0
  92. package/cpp/RuntimeDecorator.cpp +39 -0
  93. package/cpp/RuntimeDecorator.h +14 -0
  94. package/cpp/react/renderer/components/RNMarcusSpec/MarcusTextInputDecoratorState.h +33 -0
  95. package/cpp/react/renderer/components/RNMarcusSpec/MarcusTextInputDecoratorViewComponentDescriptor.h +17 -0
  96. package/lib/commonjs/MarcusTextInputDecoratorViewNativeComponent.ts +77 -0
  97. package/lib/commonjs/MarkdownTextInput.js +99 -0
  98. package/lib/commonjs/MarkdownTextInput.js.map +1 -0
  99. package/lib/commonjs/MarkdownTextInput.web.js +618 -0
  100. package/lib/commonjs/MarkdownTextInput.web.js.map +1 -0
  101. package/lib/commonjs/NativeMarcusModule.js +9 -0
  102. package/lib/commonjs/NativeMarcusModule.js.map +1 -0
  103. package/lib/commonjs/commonTypes.js +2 -0
  104. package/lib/commonjs/commonTypes.js.map +1 -0
  105. package/lib/commonjs/global.d.js +2 -0
  106. package/lib/commonjs/global.d.js.map +1 -0
  107. package/lib/commonjs/index.js +27 -0
  108. package/lib/commonjs/index.js.map +1 -0
  109. package/lib/commonjs/package.json +1 -0
  110. package/lib/commonjs/parser/index.js +7030 -0
  111. package/lib/commonjs/parser/index.js.map +7 -0
  112. package/lib/commonjs/rangeUtils.js +71 -0
  113. package/lib/commonjs/rangeUtils.js.map +1 -0
  114. package/lib/commonjs/react-native-web.d.js +2 -0
  115. package/lib/commonjs/react-native-web.d.js.map +1 -0
  116. package/lib/commonjs/styleUtils.js +91 -0
  117. package/lib/commonjs/styleUtils.js.map +1 -0
  118. package/lib/commonjs/web/InputHistory.js +111 -0
  119. package/lib/commonjs/web/InputHistory.js.map +1 -0
  120. package/lib/commonjs/web/MarkdownTextInput.css +72 -0
  121. package/lib/commonjs/web/utils/blockLayout.js +132 -0
  122. package/lib/commonjs/web/utils/blockLayout.js.map +1 -0
  123. package/lib/commonjs/web/utils/blockUtils.js +219 -0
  124. package/lib/commonjs/web/utils/blockUtils.js.map +1 -0
  125. package/lib/commonjs/web/utils/browserUtils.js +40 -0
  126. package/lib/commonjs/web/utils/browserUtils.js.map +1 -0
  127. package/lib/commonjs/web/utils/cursorUtils.js +157 -0
  128. package/lib/commonjs/web/utils/cursorUtils.js.map +1 -0
  129. package/lib/commonjs/web/utils/inputUtils.js +152 -0
  130. package/lib/commonjs/web/utils/inputUtils.js.map +1 -0
  131. package/lib/commonjs/web/utils/measureUtils.js +0 -0
  132. package/lib/commonjs/web/utils/measureUtils.js.map +1 -0
  133. package/lib/commonjs/web/utils/parserUtils.js +552 -0
  134. package/lib/commonjs/web/utils/parserUtils.js.map +1 -0
  135. package/lib/commonjs/web/utils/treeUtils.js +109 -0
  136. package/lib/commonjs/web/utils/treeUtils.js.map +1 -0
  137. package/lib/commonjs/web/utils/webStyleUtils.js +59 -0
  138. package/lib/commonjs/web/utils/webStyleUtils.js.map +1 -0
  139. package/lib/module/MarcusTextInputDecoratorViewNativeComponent.ts +77 -0
  140. package/lib/module/MarkdownTextInput.js +94 -0
  141. package/lib/module/MarkdownTextInput.js.map +1 -0
  142. package/lib/module/MarkdownTextInput.web.js +612 -0
  143. package/lib/module/MarkdownTextInput.web.js.map +1 -0
  144. package/lib/module/NativeMarcusModule.js +5 -0
  145. package/lib/module/NativeMarcusModule.js.map +1 -0
  146. package/lib/module/commonTypes.js +2 -0
  147. package/lib/module/commonTypes.js.map +1 -0
  148. package/lib/module/global.d.js +2 -0
  149. package/lib/module/global.d.js.map +1 -0
  150. package/lib/module/index.js +5 -0
  151. package/lib/module/index.js.map +1 -0
  152. package/lib/module/package.json +1 -0
  153. package/lib/module/parser/index.js +7029 -0
  154. package/lib/module/parser/index.js.map +7 -0
  155. package/lib/module/rangeUtils.js +66 -0
  156. package/lib/module/rangeUtils.js.map +1 -0
  157. package/lib/module/react-native-web.d.js +2 -0
  158. package/lib/module/react-native-web.d.js.map +1 -0
  159. package/lib/module/styleUtils.js +88 -0
  160. package/lib/module/styleUtils.js.map +1 -0
  161. package/lib/module/web/InputHistory.js +106 -0
  162. package/lib/module/web/InputHistory.js.map +1 -0
  163. package/lib/module/web/MarkdownTextInput.css +72 -0
  164. package/lib/module/web/utils/blockLayout.js +128 -0
  165. package/lib/module/web/utils/blockLayout.js.map +1 -0
  166. package/lib/module/web/utils/blockUtils.js +210 -0
  167. package/lib/module/web/utils/blockUtils.js.map +1 -0
  168. package/lib/module/web/utils/browserUtils.js +36 -0
  169. package/lib/module/web/utils/browserUtils.js.map +1 -0
  170. package/lib/module/web/utils/cursorUtils.js +150 -0
  171. package/lib/module/web/utils/cursorUtils.js.map +1 -0
  172. package/lib/module/web/utils/inputUtils.js +144 -0
  173. package/lib/module/web/utils/inputUtils.js.map +1 -0
  174. package/lib/module/web/utils/measureUtils.js +0 -0
  175. package/lib/module/web/utils/measureUtils.js.map +1 -0
  176. package/lib/module/web/utils/parserUtils.js +547 -0
  177. package/lib/module/web/utils/parserUtils.js.map +1 -0
  178. package/lib/module/web/utils/treeUtils.js +103 -0
  179. package/lib/module/web/utils/treeUtils.js.map +1 -0
  180. package/lib/module/web/utils/webStyleUtils.js +54 -0
  181. package/lib/module/web/utils/webStyleUtils.js.map +1 -0
  182. package/lib/typescript/commonjs/e2e/checks.test.d.ts +2 -0
  183. package/lib/typescript/commonjs/e2e/checks.test.d.ts.map +1 -0
  184. package/lib/typescript/commonjs/e2e/editing.test.d.ts +2 -0
  185. package/lib/typescript/commonjs/e2e/editing.test.d.ts.map +1 -0
  186. package/lib/typescript/commonjs/e2e/helpers.d.ts +23 -0
  187. package/lib/typescript/commonjs/e2e/helpers.d.ts.map +1 -0
  188. package/lib/typescript/commonjs/e2e/smoke.test.d.ts +2 -0
  189. package/lib/typescript/commonjs/e2e/smoke.test.d.ts.map +1 -0
  190. package/lib/typescript/commonjs/package.json +1 -0
  191. package/lib/typescript/commonjs/src/MarcusTextInputDecoratorViewNativeComponent.d.ts +63 -0
  192. package/lib/typescript/commonjs/src/MarcusTextInputDecoratorViewNativeComponent.d.ts.map +1 -0
  193. package/lib/typescript/commonjs/src/MarkdownTextInput.d.ts +22 -0
  194. package/lib/typescript/commonjs/src/MarkdownTextInput.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/src/MarkdownTextInput.web.d.ts +41 -0
  196. package/lib/typescript/commonjs/src/MarkdownTextInput.web.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/src/NativeMarcusModule.d.ts +7 -0
  198. package/lib/typescript/commonjs/src/NativeMarcusModule.d.ts.map +1 -0
  199. package/lib/typescript/commonjs/src/commonTypes.d.ts +10 -0
  200. package/lib/typescript/commonjs/src/commonTypes.d.ts.map +1 -0
  201. package/lib/typescript/commonjs/src/index.d.ts +5 -0
  202. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  203. package/lib/typescript/commonjs/src/parser/index.d.ts +8 -0
  204. package/lib/typescript/commonjs/src/parser/index.d.ts.map +1 -0
  205. package/lib/typescript/commonjs/src/parser/micromark-extension-mentions.d.ts +8 -0
  206. package/lib/typescript/commonjs/src/parser/micromark-extension-mentions.d.ts.map +1 -0
  207. package/lib/typescript/commonjs/src/rangeUtils.d.ts +6 -0
  208. package/lib/typescript/commonjs/src/rangeUtils.d.ts.map +1 -0
  209. package/lib/typescript/commonjs/src/styleUtils.d.ts +8 -0
  210. package/lib/typescript/commonjs/src/styleUtils.d.ts.map +1 -0
  211. package/lib/typescript/commonjs/src/web/InputHistory.d.ts +24 -0
  212. package/lib/typescript/commonjs/src/web/InputHistory.d.ts.map +1 -0
  213. package/lib/typescript/commonjs/src/web/utils/blockLayout.d.ts +41 -0
  214. package/lib/typescript/commonjs/src/web/utils/blockLayout.d.ts.map +1 -0
  215. package/lib/typescript/commonjs/src/web/utils/blockUtils.d.ts +33 -0
  216. package/lib/typescript/commonjs/src/web/utils/blockUtils.d.ts.map +1 -0
  217. package/lib/typescript/commonjs/src/web/utils/browserUtils.d.ts +7 -0
  218. package/lib/typescript/commonjs/src/web/utils/browserUtils.d.ts.map +1 -0
  219. package/lib/typescript/commonjs/src/web/utils/cursorUtils.d.ts +12 -0
  220. package/lib/typescript/commonjs/src/web/utils/cursorUtils.d.ts.map +1 -0
  221. package/lib/typescript/commonjs/src/web/utils/inputUtils.d.ts +12 -0
  222. package/lib/typescript/commonjs/src/web/utils/inputUtils.d.ts.map +1 -0
  223. package/lib/typescript/commonjs/src/web/utils/measureUtils.d.ts +22 -0
  224. package/lib/typescript/commonjs/src/web/utils/measureUtils.d.ts.map +1 -0
  225. package/lib/typescript/commonjs/src/web/utils/parserUtils.d.ts +44 -0
  226. package/lib/typescript/commonjs/src/web/utils/parserUtils.d.ts.map +1 -0
  227. package/lib/typescript/commonjs/src/web/utils/treeUtils.d.ts +25 -0
  228. package/lib/typescript/commonjs/src/web/utils/treeUtils.d.ts.map +1 -0
  229. package/lib/typescript/commonjs/src/web/utils/webStyleUtils.d.ts +7 -0
  230. package/lib/typescript/commonjs/src/web/utils/webStyleUtils.d.ts.map +1 -0
  231. package/lib/typescript/module/e2e/checks.test.d.ts +2 -0
  232. package/lib/typescript/module/e2e/checks.test.d.ts.map +1 -0
  233. package/lib/typescript/module/e2e/editing.test.d.ts +2 -0
  234. package/lib/typescript/module/e2e/editing.test.d.ts.map +1 -0
  235. package/lib/typescript/module/e2e/helpers.d.ts +23 -0
  236. package/lib/typescript/module/e2e/helpers.d.ts.map +1 -0
  237. package/lib/typescript/module/e2e/smoke.test.d.ts +2 -0
  238. package/lib/typescript/module/e2e/smoke.test.d.ts.map +1 -0
  239. package/lib/typescript/module/package.json +1 -0
  240. package/lib/typescript/module/src/MarcusTextInputDecoratorViewNativeComponent.d.ts +63 -0
  241. package/lib/typescript/module/src/MarcusTextInputDecoratorViewNativeComponent.d.ts.map +1 -0
  242. package/lib/typescript/module/src/MarkdownTextInput.d.ts +22 -0
  243. package/lib/typescript/module/src/MarkdownTextInput.d.ts.map +1 -0
  244. package/lib/typescript/module/src/MarkdownTextInput.web.d.ts +41 -0
  245. package/lib/typescript/module/src/MarkdownTextInput.web.d.ts.map +1 -0
  246. package/lib/typescript/module/src/NativeMarcusModule.d.ts +7 -0
  247. package/lib/typescript/module/src/NativeMarcusModule.d.ts.map +1 -0
  248. package/lib/typescript/module/src/commonTypes.d.ts +10 -0
  249. package/lib/typescript/module/src/commonTypes.d.ts.map +1 -0
  250. package/lib/typescript/module/src/index.d.ts +5 -0
  251. package/lib/typescript/module/src/index.d.ts.map +1 -0
  252. package/lib/typescript/module/src/parser/index.d.ts +8 -0
  253. package/lib/typescript/module/src/parser/index.d.ts.map +1 -0
  254. package/lib/typescript/module/src/parser/micromark-extension-mentions.d.ts +8 -0
  255. package/lib/typescript/module/src/parser/micromark-extension-mentions.d.ts.map +1 -0
  256. package/lib/typescript/module/src/rangeUtils.d.ts +6 -0
  257. package/lib/typescript/module/src/rangeUtils.d.ts.map +1 -0
  258. package/lib/typescript/module/src/styleUtils.d.ts +8 -0
  259. package/lib/typescript/module/src/styleUtils.d.ts.map +1 -0
  260. package/lib/typescript/module/src/web/InputHistory.d.ts +24 -0
  261. package/lib/typescript/module/src/web/InputHistory.d.ts.map +1 -0
  262. package/lib/typescript/module/src/web/utils/blockLayout.d.ts +41 -0
  263. package/lib/typescript/module/src/web/utils/blockLayout.d.ts.map +1 -0
  264. package/lib/typescript/module/src/web/utils/blockUtils.d.ts +33 -0
  265. package/lib/typescript/module/src/web/utils/blockUtils.d.ts.map +1 -0
  266. package/lib/typescript/module/src/web/utils/browserUtils.d.ts +7 -0
  267. package/lib/typescript/module/src/web/utils/browserUtils.d.ts.map +1 -0
  268. package/lib/typescript/module/src/web/utils/cursorUtils.d.ts +12 -0
  269. package/lib/typescript/module/src/web/utils/cursorUtils.d.ts.map +1 -0
  270. package/lib/typescript/module/src/web/utils/inputUtils.d.ts +12 -0
  271. package/lib/typescript/module/src/web/utils/inputUtils.d.ts.map +1 -0
  272. package/lib/typescript/module/src/web/utils/measureUtils.d.ts +22 -0
  273. package/lib/typescript/module/src/web/utils/measureUtils.d.ts.map +1 -0
  274. package/lib/typescript/module/src/web/utils/parserUtils.d.ts +44 -0
  275. package/lib/typescript/module/src/web/utils/parserUtils.d.ts.map +1 -0
  276. package/lib/typescript/module/src/web/utils/treeUtils.d.ts +25 -0
  277. package/lib/typescript/module/src/web/utils/treeUtils.d.ts.map +1 -0
  278. package/lib/typescript/module/src/web/utils/webStyleUtils.d.ts +7 -0
  279. package/lib/typescript/module/src/web/utils/webStyleUtils.d.ts.map +1 -0
  280. package/package.json +167 -0
  281. package/react-native.config.js +10 -0
  282. package/src/MarcusTextInputDecoratorViewNativeComponent.ts +77 -0
  283. package/src/MarkdownTextInput.tsx +139 -0
  284. package/src/MarkdownTextInput.web.tsx +958 -0
  285. package/src/NativeMarcusModule.ts +8 -0
  286. package/src/commonTypes.ts +30 -0
  287. package/src/global.d.ts +1 -0
  288. package/src/index.tsx +4 -0
  289. package/src/parser/index.ts +556 -0
  290. package/src/parser/micromark-extension-mentions.ts +82 -0
  291. package/src/rangeUtils.ts +68 -0
  292. package/src/react-native-web.d.ts +1 -0
  293. package/src/styleUtils.ts +100 -0
  294. package/src/web/InputHistory.ts +137 -0
  295. package/src/web/MarkdownTextInput.css +72 -0
  296. package/src/web/utils/blockLayout.ts +163 -0
  297. package/src/web/utils/blockUtils.ts +245 -0
  298. package/src/web/utils/browserUtils.ts +41 -0
  299. package/src/web/utils/cursorUtils.ts +204 -0
  300. package/src/web/utils/inputUtils.ts +206 -0
  301. package/src/web/utils/measureUtils.ts +0 -0
  302. package/src/web/utils/parserUtils.ts +813 -0
  303. package/src/web/utils/treeUtils.ts +149 -0
  304. package/src/web/utils/webStyleUtils.ts +69 -0
@@ -0,0 +1,583 @@
1
+ bold
2
+ 0..8 bold
3
+ 0..2 color(#808080)
4
+ 6..8 color(#808080)
5
+ italic-star
6
+ 0..8 italic
7
+ 0..1 color(#808080)
8
+ 7..8 color(#808080)
9
+ italic-underscore
10
+ 0..8 italic
11
+ 0..1 color(#808080)
12
+ 7..8 color(#808080)
13
+ bold-underscore
14
+ 0..8 bold
15
+ 0..2 color(#808080)
16
+ 6..8 color(#808080)
17
+ bold-italic-underscore
18
+ 0..10 italic
19
+ 0..1 color(#808080)
20
+ 1..9 bold
21
+ 1..3 color(#808080)
22
+ 7..9 color(#808080)
23
+ 9..10 color(#808080)
24
+ bold-underscore-mixed
25
+ 0..8 bold
26
+ 0..2 color(#808080)
27
+ 6..8 color(#808080)
28
+ 13..21 bold
29
+ 13..15 color(#808080)
30
+ 19..21 color(#808080)
31
+ bold-underscore-intraword
32
+ (no spans)
33
+ strikethrough
34
+ 0..10 strikethrough
35
+ 0..2 color(#808080)
36
+ 8..10 color(#808080)
37
+ emphasis-nested
38
+ 0..26 bold
39
+ 0..2 color(#808080)
40
+ 7..19 italic
41
+ 7..8 color(#808080)
42
+ 18..19 color(#808080)
43
+ 24..26 color(#808080)
44
+ emphasis-adjacent-syntax
45
+ 0..3 strikethrough
46
+ 0..1 color(#808080)
47
+ 2..3 color(#808080)
48
+ 3..4 color(#808080)
49
+ 4..8 background(#D3D3D3)
50
+ 4..8 color(#000000)
51
+ 4..8 font-family
52
+ 4..8 font-size(16)
53
+ 8..9 color(#808080)
54
+ emphasis-unterminated
55
+ (no spans)
56
+ emphasis-intraword
57
+ (no spans)
58
+ heading-h1
59
+ 0..5 bold
60
+ 0..5 font-size(38)
61
+ 0..1 color(#808080)
62
+ heading-h3
63
+ 0..9 bold
64
+ 0..9 font-size(27)
65
+ 0..3 color(#808080)
66
+ heading-h6
67
+ 0..10 bold
68
+ 0..10 font-size(16)
69
+ 0..6 color(#808080)
70
+ heading-closed
71
+ 0..9 bold
72
+ 0..9 font-size(32)
73
+ 0..2 color(#808080)
74
+ 7..9 color(#808080)
75
+ heading-setext
76
+ 0..11 bold
77
+ 0..11 font-size(38)
78
+ 6..11 color(#808080)
79
+ heading-with-emphasis
80
+ 0..18 bold
81
+ 0..18 font-size(38)
82
+ 0..1 color(#808080)
83
+ 4..12 bold
84
+ 4..6 color(#808080)
85
+ 10..12 color(#808080)
86
+ blockquote
87
+ 0..8 indent(18,20)
88
+ 0..1 color(#808080)
89
+ blockquote-multiline
90
+ 0..5 indent(18,20)
91
+ 0..1 color(#808080)
92
+ 6..11 indent(18,20)
93
+ 6..7 color(#808080)
94
+ blockquote-lazy
95
+ 0..5 indent(18,20)
96
+ 0..1 color(#808080)
97
+ 6..9 indent(20,20)
98
+ blockquote-nested
99
+ 0..7 indent(36,39)
100
+ 0..1 color(#808080)
101
+ 1..2 color(#808080)
102
+ blockquote-triple
103
+ 0..10 indent(54,58)
104
+ 0..1 color(#808080)
105
+ 1..2 color(#808080)
106
+ 2..3 color(#808080)
107
+ list-dash
108
+ 0..5 indent(24,26)
109
+ 0..1 color(#808080)
110
+ 6..11 indent(24,26)
111
+ 6..7 color(#808080)
112
+ list-star
113
+ 0..5 indent(24,26)
114
+ 0..1 color(#808080)
115
+ 6..11 indent(24,26)
116
+ 6..7 color(#808080)
117
+ list-plus
118
+ 0..5 indent(24,26)
119
+ 0..1 color(#808080)
120
+ 6..11 indent(24,26)
121
+ 6..7 color(#808080)
122
+ list-ordered
123
+ 0..6 indent(24,27)
124
+ 0..1 color(#808080)
125
+ 1..2 color(#808080)
126
+ 7..13 indent(24,27)
127
+ 7..8 color(#808080)
128
+ 8..9 color(#808080)
129
+ list-ordered-paren
130
+ 0..6 indent(24,27)
131
+ 0..1 color(#808080)
132
+ 1..2 color(#808080)
133
+ 7..13 indent(24,27)
134
+ 7..8 color(#808080)
135
+ 8..9 color(#808080)
136
+ list-ordered-offset
137
+ 0..8 indent(24,27)
138
+ 0..1 color(#808080)
139
+ 1..2 color(#808080)
140
+ 9..16 indent(24,27)
141
+ 9..10 color(#808080)
142
+ 10..11 color(#808080)
143
+ list-item-multiline
144
+ 0..12 indent(24,26)
145
+ 0..1 color(#808080)
146
+ 13..26 indent(26,26)
147
+ list-nested
148
+ 0..5 indent(24,26)
149
+ 0..1 color(#808080)
150
+ 6..13 indent(48,52)
151
+ 8..9 color(#808080)
152
+ 14..25 indent(72,78)
153
+ 18..19 color(#808080)
154
+ list-nested-mixed
155
+ 0..6 indent(24,27)
156
+ 0..1 color(#808080)
157
+ 1..2 color(#808080)
158
+ 7..15 indent(51,56)
159
+ 10..11 color(#808080)
160
+ 16..26 indent(51,56)
161
+ 19..20 color(#808080)
162
+ blockquote-in-list
163
+ 0..20 indent(24,46)
164
+ 0..1 color(#808080)
165
+ 1..2 gap
166
+ 2..3 color(#808080)
167
+ list-in-blockquote
168
+ 0..19 indent(18,46)
169
+ 0..1 color(#808080)
170
+ 1..2 gap
171
+ 2..3 color(#808080)
172
+ nesting-deep-mixed
173
+ 0..13 indent(36,93)
174
+ 0..1 color(#808080)
175
+ 1..2 gap
176
+ 2..3 color(#808080)
177
+ 3..4 gap
178
+ 4..5 color(#808080)
179
+ 6..7 color(#808080)
180
+ 7..8 color(#808080)
181
+ nesting-repeat-split
182
+ 0..7 indent(36,64)
183
+ 0..1 color(#808080)
184
+ 1..2 gap
185
+ 2..3 color(#808080)
186
+ 4..5 color(#808080)
187
+ nesting-repeat-split-mirrored
188
+ 0..7 indent(48,70)
189
+ 0..1 color(#808080)
190
+ 1..2 gap
191
+ 2..3 color(#808080)
192
+ 4..5 color(#808080)
193
+ nesting-repeat-adjacent
194
+ 0..6 indent(36,65)
195
+ 0..1 color(#808080)
196
+ 1..2 color(#808080)
197
+ 2..3 gap
198
+ 3..4 color(#808080)
199
+ code-inline
200
+ 5..6 color(#808080)
201
+ 6..10 background(#D3D3D3)
202
+ 6..10 color(#000000)
203
+ 6..10 font-family
204
+ 6..10 font-size(16)
205
+ 10..11 color(#808080)
206
+ code-inline-double
207
+ 2..4 color(#808080)
208
+ 4..9 background(#D3D3D3)
209
+ 4..9 color(#000000)
210
+ 4..9 font-family
211
+ 4..9 font-size(16)
212
+ 9..11 color(#808080)
213
+ code-fenced
214
+ 0..3 color(#808080)
215
+ 4..11 background(#D3D3D3)
216
+ 4..11 color(#000000)
217
+ 4..11 font-family
218
+ 4..11 font-size(16)
219
+ 11..14 color(#808080)
220
+ code-fenced-lang
221
+ 0..3 color(#808080)
222
+ 6..18 background(#D3D3D3)
223
+ 6..18 color(#000000)
224
+ 6..18 font-family
225
+ 6..18 font-size(16)
226
+ 18..21 color(#808080)
227
+ code-fenced-unterminated
228
+ 0..3 color(#808080)
229
+ 4..10 background(#D3D3D3)
230
+ 4..10 color(#000000)
231
+ 4..10 font-family
232
+ 4..10 font-size(16)
233
+ code-indented
234
+ 4..13 background(#D3D3D3)
235
+ 4..13 color(#000000)
236
+ 4..13 font-family
237
+ 4..13 font-size(16)
238
+ code-in-blockquote
239
+ 0..5 indent(18,20)
240
+ 0..1 color(#808080)
241
+ 2..5 color(#808080)
242
+ 6..14 indent(18,20)
243
+ 6..7 color(#808080)
244
+ 8..15 background(#D3D3D3)
245
+ 8..15 color(#000000)
246
+ 8..15 font-family
247
+ 8..15 font-size(16)
248
+ 15..20 indent(18,20)
249
+ 15..16 color(#808080)
250
+ 17..20 color(#808080)
251
+ link-inline
252
+ 0..1 color(#808080)
253
+ 5..6 color(#808080)
254
+ 6..7 color(#808080)
255
+ 7..26 color(#0000FF)
256
+ 7..26 underline
257
+ 26..27 color(#808080)
258
+ link-title
259
+ 0..1 color(#808080)
260
+ 5..6 color(#808080)
261
+ 6..7 color(#808080)
262
+ 7..26 color(#0000FF)
263
+ 7..26 underline
264
+ 27..28 color(#808080)
265
+ 33..34 color(#808080)
266
+ 34..35 color(#808080)
267
+ link-reference
268
+ 0..1 color(#808080)
269
+ 5..6 color(#808080)
270
+ 6..7 color(#808080)
271
+ 10..11 color(#808080)
272
+ 13..14 color(#808080)
273
+ 17..18 color(#808080)
274
+ 18..19 color(#808080)
275
+ 20..39 color(#0000FF)
276
+ 20..39 underline
277
+ autolink-http
278
+ 0..19 color(#0000FF)
279
+ 0..19 underline
280
+ autolink-www
281
+ 0..15 color(#0000FF)
282
+ 0..15 underline
283
+ autolink-email
284
+ 0..16 color(#0000FF)
285
+ 0..16 underline
286
+ autolink-angle
287
+ 0..1 color(#808080)
288
+ 1..20 color(#0000FF)
289
+ 1..20 underline
290
+ 20..21 color(#808080)
291
+ image-inline
292
+ 0..1 color(#808080)
293
+ 1..2 color(#808080)
294
+ 5..6 color(#808080)
295
+ 6..7 color(#808080)
296
+ 7..32 color(#0000FF)
297
+ 7..32 underline
298
+ 32..33 color(#808080)
299
+ mention
300
+ 4..12 background-shape
301
+ 4..12 color(#0000FF)
302
+ mention-hyphen
303
+ (no spans)
304
+ mention-trailing-hyphen
305
+ (no spans)
306
+ mention-in-bold
307
+ 0..12 bold
308
+ 0..2 color(#808080)
309
+ 2..10 background-shape
310
+ 2..10 color(#0000FF)
311
+ 10..12 color(#808080)
312
+ emoji
313
+ 6..8 font-family
314
+ 6..8 font-size(16)
315
+ emoji-in-bold
316
+ 0..7 bold
317
+ 0..2 color(#808080)
318
+ 7..9 font-family
319
+ 7..9 font-size(16)
320
+ 9..16 bold
321
+ 14..16 color(#808080)
322
+ emoji-zwj-family
323
+ 0..11 font-family
324
+ 0..11 font-size(16)
325
+ emoji-flag
326
+ 5..9 font-family
327
+ 5..9 font-size(16)
328
+ emoji-skin-tone
329
+ 5..9 font-family
330
+ 5..9 font-size(16)
331
+ emoji-only
332
+ 0..2 font-family
333
+ 0..2 font-size(16)
334
+ unicode-astral
335
+ 0..14 bold
336
+ 0..2 color(#808080)
337
+ 12..14 color(#808080)
338
+ unicode-astral-minimal
339
+ 0..6 bold
340
+ 0..2 color(#808080)
341
+ 4..6 color(#808080)
342
+ unicode-astral-in-list
343
+ 0..12 indent(24,26)
344
+ 0..1 color(#808080)
345
+ unicode-combining
346
+ 7..13 italic
347
+ 7..8 color(#808080)
348
+ 12..13 color(#808080)
349
+ unicode-nfd
350
+ (no spans)
351
+ unicode-variation-selector
352
+ 0..2 font-family
353
+ 0..2 font-size(16)
354
+ 3..10 bold
355
+ 3..5 color(#808080)
356
+ 8..10 color(#808080)
357
+ unicode-keycap
358
+ 0..3 font-family
359
+ 0..3 font-size(16)
360
+ unicode-tag-sequence
361
+ 0..14 font-family
362
+ 0..14 font-size(16)
363
+ unicode-zwnj
364
+ 4..10 italic
365
+ 4..5 color(#808080)
366
+ 9..10 color(#808080)
367
+ unicode-nbsp
368
+ 4..12 bold
369
+ 4..6 color(#808080)
370
+ 10..12 color(#808080)
371
+ unicode-bom
372
+ 1..10 bold
373
+ 1..10 font-size(38)
374
+ 1..2 color(#808080)
375
+ unicode-line-separator
376
+ (no spans)
377
+ unicode-soft-hyphen
378
+ 12..20 bold
379
+ 12..14 color(#808080)
380
+ 18..20 color(#808080)
381
+ unicode-cjk
382
+ 0..12 bold
383
+ 0..2 color(#808080)
384
+ 10..12 color(#808080)
385
+ cjk-chinese
386
+ 0..8 bold
387
+ 0..2 color(#808080)
388
+ 6..8 color(#808080)
389
+ cjk-punctuation-after
390
+ 0..6 bold
391
+ 0..2 color(#808080)
392
+ 4..6 color(#808080)
393
+ cjk-punctuation-before
394
+ 1..7 bold
395
+ 1..3 color(#808080)
396
+ 5..7 color(#808080)
397
+ cjk-korean
398
+ 0..10 bold
399
+ 0..2 color(#808080)
400
+ 8..10 color(#808080)
401
+ cjk-kana
402
+ 0..6 italic
403
+ 0..1 color(#808080)
404
+ 5..6 color(#808080)
405
+ 9..17 bold
406
+ 9..11 color(#808080)
407
+ 15..17 color(#808080)
408
+ cjk-fullwidth-asterisk
409
+ (no spans)
410
+ cjk-ideographic-space
411
+ (no spans)
412
+ cjk-heading
413
+ 0..5 bold
414
+ 0..5 font-size(38)
415
+ 0..1 color(#808080)
416
+ cjk-list
417
+ 0..5 indent(24,26)
418
+ 0..1 color(#808080)
419
+ 6..11 indent(24,26)
420
+ 6..7 color(#808080)
421
+ cjk-blockquote
422
+ 0..5 indent(18,20)
423
+ 0..1 color(#808080)
424
+ cjk-code
425
+ 0..1 color(#808080)
426
+ 1..5 background(#D3D3D3)
427
+ 1..5 color(#000000)
428
+ 1..5 font-family
429
+ 1..5 font-size(16)
430
+ 5..6 color(#808080)
431
+ cjk-link
432
+ 0..1 color(#808080)
433
+ 5..6 color(#808080)
434
+ 6..7 color(#808080)
435
+ 7..29 color(#0000FF)
436
+ 7..29 underline
437
+ 29..30 color(#808080)
438
+ cjk-mention
439
+ 4..8 background-shape
440
+ 4..8 color(#0000FF)
441
+ cjk-combining-dakuten
442
+ (no spans)
443
+ unicode-rtl
444
+ 0..9 bold
445
+ 0..2 color(#808080)
446
+ 7..9 color(#808080)
447
+ rtl-arabic
448
+ 0..17 bold
449
+ 0..2 color(#808080)
450
+ 15..17 color(#808080)
451
+ rtl-hebrew
452
+ 0..13 bold
453
+ 0..2 color(#808080)
454
+ 11..13 color(#808080)
455
+ rtl-hebrew-niqqud
456
+ 8..14 italic
457
+ 8..9 color(#808080)
458
+ 13..14 color(#808080)
459
+ rtl-mixed
460
+ 6..15 bold
461
+ 6..8 color(#808080)
462
+ 13..15 color(#808080)
463
+ rtl-list
464
+ 0..10 indent(24,26)
465
+ 0..1 color(#808080)
466
+ 11..22 indent(24,26)
467
+ 11..12 color(#808080)
468
+ rtl-blockquote
469
+ 0..8 indent(18,20)
470
+ 0..1 color(#808080)
471
+ rtl-heading
472
+ 0..7 bold
473
+ 0..7 font-size(38)
474
+ 0..1 color(#808080)
475
+ rtl-link
476
+ 0..1 color(#808080)
477
+ 8..9 color(#808080)
478
+ 9..10 color(#808080)
479
+ 10..29 color(#0000FF)
480
+ 10..29 underline
481
+ 29..30 color(#808080)
482
+ rtl-code
483
+ 0..1 color(#808080)
484
+ 1..5 background(#D3D3D3)
485
+ 1..5 color(#000000)
486
+ 1..5 font-family
487
+ 1..5 font-size(16)
488
+ 5..6 color(#808080)
489
+ rtl-arabic-indic-digits
490
+ (no spans)
491
+ rtl-marks
492
+ 8..16 bold
493
+ 8..10 color(#808080)
494
+ 14..16 color(#808080)
495
+ rtl-isolates
496
+ 11..19 bold
497
+ 11..13 color(#808080)
498
+ 17..19 color(#808080)
499
+ rtl-lam-alef
500
+ 3..11 bold
501
+ 3..5 color(#808080)
502
+ 9..11 color(#808080)
503
+ rtl-punctuation
504
+ 0..8 bold
505
+ 0..2 color(#808080)
506
+ 6..8 color(#808080)
507
+ rtl-mention
508
+ 0..7 background-shape
509
+ 0..7 color(#0000FF)
510
+ empty
511
+ (no spans)
512
+ whitespace-only
513
+ (no spans)
514
+ plain-text
515
+ (no spans)
516
+ crlf
517
+ 0..5 bold
518
+ 0..5 font-size(38)
519
+ 0..1 color(#808080)
520
+ 9..14 indent(18,20)
521
+ 9..10 color(#808080)
522
+ tabs
523
+ 0..5 indent(24,26)
524
+ 0..1 color(#808080)
525
+ 6..11 indent(24,26)
526
+ 6..7 color(#808080)
527
+ escaped-emphasis
528
+ 0..1 color(#808080)
529
+ 10..11 color(#808080)
530
+ hard-break
531
+ 3..5 color(#808080)
532
+ thematic-break
533
+ 5..8 color(#808080)
534
+ character-reference
535
+ 0..1 color(#808080)
536
+ 4..5 color(#808080)
537
+ 10..11 color(#808080)
538
+ 11..12 color(#808080)
539
+ 14..15 color(#808080)
540
+ kitchen-sink
541
+ 0..9 bold
542
+ 0..9 font-size(38)
543
+ 0..1 color(#808080)
544
+ 16..24 bold
545
+ 16..18 color(#808080)
546
+ 22..24 color(#808080)
547
+ 26..34 italic
548
+ 26..27 color(#808080)
549
+ 33..34 color(#808080)
550
+ 39..49 strikethrough
551
+ 39..41 color(#808080)
552
+ 47..49 color(#808080)
553
+ 60..61 color(#808080)
554
+ 61..65 background(#D3D3D3)
555
+ 61..65 color(#000000)
556
+ 61..65 font-family
557
+ 61..65 font-size(16)
558
+ 65..66 color(#808080)
559
+ 69..113 indent(18,20)
560
+ 69..70 color(#808080)
561
+ 86..87 color(#808080)
562
+ 91..92 color(#808080)
563
+ 92..93 color(#808080)
564
+ 93..112 color(#0000FF)
565
+ 93..112 underline
566
+ 112..113 color(#808080)
567
+ 115..125 indent(24,26)
568
+ 115..116 color(#808080)
569
+ 126..136 indent(24,26)
570
+ 126..127 color(#808080)
571
+ 137..148 indent(50,55)
572
+ 139..140 color(#808080)
573
+ 140..141 color(#808080)
574
+ 150..153 color(#808080)
575
+ 156..168 background(#D3D3D3)
576
+ 156..168 color(#000000)
577
+ 156..168 font-family
578
+ 156..168 font-size(16)
579
+ 168..171 color(#808080)
580
+ 177..185 background-shape
581
+ 177..185 color(#0000FF)
582
+ 186..188 font-family
583
+ 186..188 font-size(16)
@@ -0,0 +1,8 @@
1
+ #import <RNMarcusSpec/RNMarcusSpec.h>
2
+
3
+ #import <React/RCTEventEmitter.h>
4
+
5
+ // Without inheriting after RCTEventEmitter we don't get access to bridge
6
+ @interface MarcusModule : RCTEventEmitter <NativeMarcusModuleSpec>
7
+
8
+ @end
@@ -0,0 +1,26 @@
1
+ #import "MarcusModule.h"
2
+
3
+ #import <RNMarcus/RuntimeDecorator.h>
4
+ #import <React/RCTBridge+Private.h>
5
+ #import <jsi/jsi.h>
6
+
7
+ using namespace facebook;
8
+ using namespace bulletpoint::marcus;
9
+
10
+ @implementation MarcusModule
11
+
12
+ RCT_EXPORT_MODULE()
13
+
14
+ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install) {
15
+ RCTCxxBridge *cxxBridge = (RCTCxxBridge *) self.bridge;
16
+ jsi::Runtime &rt = *(jsi::Runtime *) cxxBridge.runtime;
17
+ bulletpoint::marcus::injectJSIBindings(rt);
18
+ return @(1);
19
+ }
20
+
21
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
22
+ (const facebook::react::ObjCTurboModule::InitParams &)params {
23
+ return std::make_shared<facebook::react::NativeMarcusModuleSpecJSI>(params);
24
+ }
25
+
26
+ @end
@@ -0,0 +1,15 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ NS_ASSUME_NONNULL_BEGIN
4
+
5
+ @interface MarcusRange : NSObject
6
+
7
+ @property(nonatomic, strong) NSString *type;
8
+ @property(nonatomic) NSRange range;
9
+ @property(nonatomic) NSUInteger depth;
10
+
11
+ - (instancetype)initWithType:(NSString *)type range:(NSRange)range depth:(NSUInteger)depth;
12
+
13
+ NS_ASSUME_NONNULL_END
14
+
15
+ @end
@@ -0,0 +1,15 @@
1
+ #import "MarcusRange.h"
2
+
3
+ @implementation MarcusRange
4
+
5
+ - (instancetype)initWithType:(NSString *)type range:(NSRange)range depth:(NSUInteger)depth {
6
+ self = [super init];
7
+ if (self) {
8
+ _type = type;
9
+ _range = range;
10
+ _depth = depth;
11
+ }
12
+ return self;
13
+ }
14
+
15
+ @end
@@ -0,0 +1,12 @@
1
+ #import <React/RCTViewComponentView.h>
2
+
3
+ NS_ASSUME_NONNULL_BEGIN
4
+
5
+ @interface MarcusTextInputDecoratorComponentView : RCTViewComponentView
6
+
7
+ // Called when React Native swaps the backed text input view underneath the
8
+ // child TextInput, which happens on a `multiline` prop change.
9
+ - (void)reattachTextInputObservers;
10
+ @end
11
+
12
+ NS_ASSUME_NONNULL_END