react-native-marcus 0.1.0 → 0.2.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 (294) hide show
  1. package/README.md +220 -63
  2. package/RNMarcus.podspec +6 -0
  3. package/android/src/main/java/app/getbullet/marcus/MarcusPackage.kt +2 -1
  4. package/android/src/main/java/app/getbullet/marcus/MarcusTextDecoratorView.kt +168 -0
  5. package/android/src/main/java/app/getbullet/marcus/MarcusTextDecoratorViewManager.kt +38 -0
  6. package/android/src/main/java/app/getbullet/marcus/MarcusTextDecoratorViewManagerSpec.kt +19 -0
  7. package/android/src/main/java/app/getbullet/marcus/MarcusTextInputDecoratorView.kt +23 -1
  8. package/android/src/main/java/app/getbullet/marcus/MarkdownBackgroundPainter.kt +147 -0
  9. package/android/src/main/java/app/getbullet/marcus/MarkdownBackgroundPass.kt +19 -0
  10. package/android/src/main/java/app/getbullet/marcus/MarkdownCopy.kt +87 -0
  11. package/android/src/main/java/app/getbullet/marcus/MarkdownFormatter.kt +652 -113
  12. package/android/src/main/java/app/getbullet/marcus/MarkdownRanges.kt +47 -0
  13. package/android/src/main/java/app/getbullet/marcus/MarkdownStyle.kt +140 -61
  14. package/android/src/main/java/app/getbullet/marcus/MarkdownUtils.kt +37 -7
  15. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownAbsoluteLineHeightSpan.kt +48 -0
  16. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBackgroundSpan.kt +102 -48
  17. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBlockIndentSpan.kt +22 -4
  18. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBulletSpan.kt +78 -0
  19. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownCodeBlockSpan.kt +177 -0
  20. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownFontStyleSpan.kt +32 -0
  21. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownFontWeightSpan.kt +34 -0
  22. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownGapSpan.kt +24 -11
  23. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownLetterSpacingSpan.kt +32 -0
  24. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownTextShadowSpan.kt +32 -0
  25. package/android/src/main/new_arch/CMakeLists.txt +17 -0
  26. package/android/src/main/new_arch/RNMarcusSpec.h +1 -0
  27. package/android/src/main/new_arch/react/renderer/components/RNMarcusSpec/MarcusTextDecoratorShadowNode.cpp +235 -0
  28. package/android/src/main/new_arch/react/renderer/components/RNMarcusSpec/MarcusTextDecoratorShadowNode.h +62 -0
  29. package/android/src/reactNativeVersionPatch/CustomMountingManager/81/app/getbullet/marcus/CustomFabricUIManager.java +22 -3
  30. package/android/src/reactNativeVersionPatch/CustomMountingManager/latest/app/getbullet/marcus/CustomFabricUIManager.java +22 -3
  31. package/android/src/test/java/app/getbullet/marcus/MarkdownCopyTest.kt +69 -0
  32. package/android/src/test/java/app/getbullet/marcus/MarkdownFormatterTest.kt +170 -25
  33. package/android/src/test/java/app/getbullet/marcus/RenderModel.kt +22 -5
  34. package/android/src/test/java/app/getbullet/marcus/spans/MarkdownCodeBlockSpanTest.kt +91 -0
  35. package/android/src/test/resources/render-model.txt +221 -16
  36. package/apple/MarcusSwizzle.h +25 -0
  37. package/apple/MarcusTextDecoratorComponentView.h +22 -0
  38. package/apple/MarcusTextDecoratorComponentView.mm +72 -0
  39. package/apple/MarcusTextDecoratorShadowNode.h +62 -0
  40. package/apple/MarcusTextDecoratorShadowNode.mm +192 -0
  41. package/apple/MarcusTextDecoratorViewManager.h +4 -0
  42. package/apple/MarcusTextDecoratorViewManager.mm +11 -0
  43. package/apple/MarcusTextInputDecoratorComponentView.mm +1 -1
  44. package/apple/MarcusTextInputDecoratorShadowNode.mm +1 -1
  45. package/apple/MarcusTextLayoutManager.h +40 -0
  46. package/apple/MarcusTextLayoutManager.mm +173 -0
  47. package/apple/MarkdownAttributes.h +23 -2
  48. package/apple/MarkdownAttributes.m +6 -0
  49. package/apple/MarkdownCopy.swift +63 -0
  50. package/apple/MarkdownDecorator.swift +2 -2
  51. package/apple/MarkdownFormatter+React.swift +23 -0
  52. package/apple/MarkdownFormatter.swift +869 -148
  53. package/apple/MarkdownParagraphLayoutManager.swift +455 -0
  54. package/apple/MarkdownSwiftInterop.h +0 -1
  55. package/apple/MarkdownTextBackground.swift +59 -1
  56. package/apple/MarkdownTextFieldObserver.swift +2 -2
  57. package/apple/MarkdownTextLayoutFragment.swift +159 -33
  58. package/apple/MarkdownTextLayoutManagerDelegate.swift +67 -3
  59. package/apple/MarkdownTextStorageDelegate.swift +2 -2
  60. package/apple/MarkdownTextViewObserver.swift +2 -2
  61. package/apple/MarkdownUtils.swift +38 -0
  62. package/apple/MarkdownWritingDirection.swift +132 -0
  63. package/apple/RCTMarcusStyle+Codegen.h +115 -9
  64. package/apple/RCTMarcusStyle.h +128 -31
  65. package/apple/RCTMarcusStyle.m +48 -0
  66. package/apple/RCTParagraphComponentView+Marcus.h +17 -0
  67. package/apple/RCTParagraphComponentView+Marcus.mm +38 -0
  68. package/apple/RCTTextInputComponentView+Marcus.mm +1 -25
  69. package/cpp/react/renderer/components/RNMarcusSpec/MarcusTextDecoratorState.h +37 -0
  70. package/cpp/react/renderer/components/RNMarcusSpec/MarcusTextDecoratorViewComponentDescriptor.h +17 -0
  71. package/lib/commonjs/MarcusTextDecoratorViewNativeComponent.ts +199 -0
  72. package/lib/commonjs/MarcusTextInputDecoratorViewNativeComponent.ts +145 -58
  73. package/lib/commonjs/MarkdownText.js +330 -0
  74. package/lib/commonjs/MarkdownText.js.map +1 -0
  75. package/lib/commonjs/MarkdownText.web.js +529 -0
  76. package/lib/commonjs/MarkdownText.web.js.map +1 -0
  77. package/lib/commonjs/MarkdownTextInput.js +22 -27
  78. package/lib/commonjs/MarkdownTextInput.js.map +1 -1
  79. package/lib/commonjs/MarkdownTextInput.web.js +12 -7
  80. package/lib/commonjs/MarkdownTextInput.web.js.map +1 -1
  81. package/lib/commonjs/atomUtils.js +112 -0
  82. package/lib/commonjs/atomUtils.js.map +1 -0
  83. package/lib/commonjs/childrenUtils.js +36 -0
  84. package/lib/commonjs/childrenUtils.js.map +1 -0
  85. package/lib/commonjs/index.js +8 -7
  86. package/lib/commonjs/index.js.map +1 -1
  87. package/lib/commonjs/math/environment.js +69 -0
  88. package/lib/commonjs/math/environment.js.map +1 -0
  89. package/lib/commonjs/math/index.js +61 -0
  90. package/lib/commonjs/math/index.js.map +1 -0
  91. package/lib/commonjs/math/mathjax.js +548 -0
  92. package/lib/commonjs/math/mathjax.js.map +1 -0
  93. package/lib/commonjs/metro.js +172 -0
  94. package/lib/commonjs/metro.js.map +1 -0
  95. package/lib/commonjs/parser/index.d.ts +3 -0
  96. package/lib/commonjs/parser/index.js +450 -42
  97. package/lib/commonjs/parser/index.js.map +4 -4
  98. package/lib/commonjs/stripUtils.js +743 -0
  99. package/lib/commonjs/stripUtils.js.map +1 -0
  100. package/lib/commonjs/styleUtils.js +194 -23
  101. package/lib/commonjs/styleUtils.js.map +1 -1
  102. package/lib/commonjs/web/MarkdownElements.css +67 -0
  103. package/lib/commonjs/web/MarkdownTextInput.css +9 -7
  104. package/lib/commonjs/web/utils/blockLayout.js +95 -7
  105. package/lib/commonjs/web/utils/blockLayout.js.map +1 -1
  106. package/lib/commonjs/web/utils/blockUtils.js +327 -54
  107. package/lib/commonjs/web/utils/blockUtils.js.map +1 -1
  108. package/lib/commonjs/web/utils/elementUtils.js +80 -0
  109. package/lib/commonjs/web/utils/elementUtils.js.map +1 -0
  110. package/lib/commonjs/web/utils/parserUtils.js +84 -28
  111. package/lib/commonjs/web/utils/parserUtils.js.map +1 -1
  112. package/lib/commonjs/web/utils/treeUtils.js +6 -0
  113. package/lib/commonjs/web/utils/treeUtils.js.map +1 -1
  114. package/lib/commonjs/web/utils/webStyleUtils.js +25 -5
  115. package/lib/commonjs/web/utils/webStyleUtils.js.map +1 -1
  116. package/lib/module/MarcusTextDecoratorViewNativeComponent.ts +199 -0
  117. package/lib/module/MarcusTextInputDecoratorViewNativeComponent.ts +145 -58
  118. package/lib/module/MarkdownText.js +325 -0
  119. package/lib/module/MarkdownText.js.map +1 -0
  120. package/lib/module/MarkdownText.web.js +524 -0
  121. package/lib/module/MarkdownText.web.js.map +1 -0
  122. package/lib/module/MarkdownTextInput.js +24 -29
  123. package/lib/module/MarkdownTextInput.js.map +1 -1
  124. package/lib/module/MarkdownTextInput.web.js +12 -7
  125. package/lib/module/MarkdownTextInput.web.js.map +1 -1
  126. package/lib/module/atomUtils.js +106 -0
  127. package/lib/module/atomUtils.js.map +1 -0
  128. package/lib/module/childrenUtils.js +33 -0
  129. package/lib/module/childrenUtils.js.map +1 -0
  130. package/lib/module/index.js +1 -1
  131. package/lib/module/index.js.map +1 -1
  132. package/lib/module/math/environment.js +67 -0
  133. package/lib/module/math/environment.js.map +1 -0
  134. package/lib/module/math/index.js +56 -0
  135. package/lib/module/math/index.js.map +1 -0
  136. package/lib/module/math/mathjax.js +541 -0
  137. package/lib/module/math/mathjax.js.map +1 -0
  138. package/lib/module/metro.js +169 -0
  139. package/lib/module/metro.js.map +1 -0
  140. package/lib/module/parser/index.d.ts +3 -0
  141. package/lib/module/parser/index.js +450 -42
  142. package/lib/module/parser/index.js.map +4 -4
  143. package/lib/module/stripUtils.js +739 -0
  144. package/lib/module/stripUtils.js.map +1 -0
  145. package/lib/module/styleUtils.js +196 -25
  146. package/lib/module/styleUtils.js.map +1 -1
  147. package/lib/module/web/MarkdownElements.css +67 -0
  148. package/lib/module/web/MarkdownTextInput.css +9 -7
  149. package/lib/module/web/utils/blockLayout.js +94 -8
  150. package/lib/module/web/utils/blockLayout.js.map +1 -1
  151. package/lib/module/web/utils/blockUtils.js +328 -56
  152. package/lib/module/web/utils/blockUtils.js.map +1 -1
  153. package/lib/module/web/utils/elementUtils.js +75 -0
  154. package/lib/module/web/utils/elementUtils.js.map +1 -0
  155. package/lib/module/web/utils/parserUtils.js +86 -30
  156. package/lib/module/web/utils/parserUtils.js.map +1 -1
  157. package/lib/module/web/utils/treeUtils.js +6 -0
  158. package/lib/module/web/utils/treeUtils.js.map +1 -1
  159. package/lib/module/web/utils/webStyleUtils.js +25 -5
  160. package/lib/module/web/utils/webStyleUtils.js.map +1 -1
  161. package/lib/typescript/commonjs/e2e/links.test.d.ts +2 -0
  162. package/lib/typescript/commonjs/e2e/links.test.d.ts.map +1 -0
  163. package/lib/typescript/commonjs/src/MarcusTextDecoratorViewNativeComponent.d.ts +93 -0
  164. package/lib/typescript/commonjs/src/MarcusTextDecoratorViewNativeComponent.d.ts.map +1 -0
  165. package/lib/typescript/commonjs/src/MarcusTextInputDecoratorViewNativeComponent.d.ts +64 -51
  166. package/lib/typescript/commonjs/src/MarcusTextInputDecoratorViewNativeComponent.d.ts.map +1 -1
  167. package/lib/typescript/commonjs/src/MarkdownText.d.ts +127 -0
  168. package/lib/typescript/commonjs/src/MarkdownText.d.ts.map +1 -0
  169. package/lib/typescript/commonjs/src/MarkdownText.web.d.ts +126 -0
  170. package/lib/typescript/commonjs/src/MarkdownText.web.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/src/MarkdownTextInput.d.ts +23 -1
  172. package/lib/typescript/commonjs/src/MarkdownTextInput.d.ts.map +1 -1
  173. package/lib/typescript/commonjs/src/MarkdownTextInput.web.d.ts +26 -4
  174. package/lib/typescript/commonjs/src/MarkdownTextInput.web.d.ts.map +1 -1
  175. package/lib/typescript/commonjs/src/atomUtils.d.ts +58 -0
  176. package/lib/typescript/commonjs/src/atomUtils.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/src/childrenUtils.d.ts +12 -0
  178. package/lib/typescript/commonjs/src/childrenUtils.d.ts.map +1 -0
  179. package/lib/typescript/commonjs/src/commonTypes.d.ts +39 -3
  180. package/lib/typescript/commonjs/src/commonTypes.d.ts.map +1 -1
  181. package/lib/typescript/commonjs/src/index.d.ts +2 -1
  182. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  183. package/lib/typescript/commonjs/src/math/environment.d.ts +7 -0
  184. package/lib/typescript/commonjs/src/math/environment.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/src/math/index.d.ts +64 -0
  186. package/lib/typescript/commonjs/src/math/index.d.ts.map +1 -0
  187. package/lib/typescript/commonjs/src/math/mathjax.d.ts +63 -0
  188. package/lib/typescript/commonjs/src/math/mathjax.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/src/metro.d.ts +59 -0
  190. package/lib/typescript/commonjs/src/metro.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/src/parser/index.d.ts +3 -3
  192. package/lib/typescript/commonjs/src/parser/index.d.ts.map +1 -1
  193. package/lib/typescript/commonjs/src/parser/micromark-extension-mentions.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/src/rangeUtils.d.ts +1 -1
  195. package/lib/typescript/commonjs/src/stripUtils.d.ts +108 -0
  196. package/lib/typescript/commonjs/src/stripUtils.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/src/styleUtils.d.ts +62 -4
  198. package/lib/typescript/commonjs/src/styleUtils.d.ts.map +1 -1
  199. package/lib/typescript/commonjs/src/web/utils/blockLayout.d.ts +32 -4
  200. package/lib/typescript/commonjs/src/web/utils/blockLayout.d.ts.map +1 -1
  201. package/lib/typescript/commonjs/src/web/utils/blockUtils.d.ts +20 -8
  202. package/lib/typescript/commonjs/src/web/utils/blockUtils.d.ts.map +1 -1
  203. package/lib/typescript/commonjs/src/web/utils/elementUtils.d.ts +37 -0
  204. package/lib/typescript/commonjs/src/web/utils/elementUtils.d.ts.map +1 -0
  205. package/lib/typescript/commonjs/src/web/utils/parserUtils.d.ts +5 -5
  206. package/lib/typescript/commonjs/src/web/utils/parserUtils.d.ts.map +1 -1
  207. package/lib/typescript/commonjs/src/web/utils/treeUtils.d.ts +6 -1
  208. package/lib/typescript/commonjs/src/web/utils/treeUtils.d.ts.map +1 -1
  209. package/lib/typescript/commonjs/src/web/utils/webStyleUtils.d.ts +2 -2
  210. package/lib/typescript/commonjs/src/web/utils/webStyleUtils.d.ts.map +1 -1
  211. package/lib/typescript/module/e2e/links.test.d.ts +2 -0
  212. package/lib/typescript/module/e2e/links.test.d.ts.map +1 -0
  213. package/lib/typescript/module/src/MarcusTextDecoratorViewNativeComponent.d.ts +93 -0
  214. package/lib/typescript/module/src/MarcusTextDecoratorViewNativeComponent.d.ts.map +1 -0
  215. package/lib/typescript/module/src/MarcusTextInputDecoratorViewNativeComponent.d.ts +64 -51
  216. package/lib/typescript/module/src/MarcusTextInputDecoratorViewNativeComponent.d.ts.map +1 -1
  217. package/lib/typescript/module/src/MarkdownText.d.ts +127 -0
  218. package/lib/typescript/module/src/MarkdownText.d.ts.map +1 -0
  219. package/lib/typescript/module/src/MarkdownText.web.d.ts +126 -0
  220. package/lib/typescript/module/src/MarkdownText.web.d.ts.map +1 -0
  221. package/lib/typescript/module/src/MarkdownTextInput.d.ts +23 -1
  222. package/lib/typescript/module/src/MarkdownTextInput.d.ts.map +1 -1
  223. package/lib/typescript/module/src/MarkdownTextInput.web.d.ts +26 -4
  224. package/lib/typescript/module/src/MarkdownTextInput.web.d.ts.map +1 -1
  225. package/lib/typescript/module/src/atomUtils.d.ts +58 -0
  226. package/lib/typescript/module/src/atomUtils.d.ts.map +1 -0
  227. package/lib/typescript/module/src/childrenUtils.d.ts +12 -0
  228. package/lib/typescript/module/src/childrenUtils.d.ts.map +1 -0
  229. package/lib/typescript/module/src/commonTypes.d.ts +39 -3
  230. package/lib/typescript/module/src/commonTypes.d.ts.map +1 -1
  231. package/lib/typescript/module/src/index.d.ts +2 -1
  232. package/lib/typescript/module/src/index.d.ts.map +1 -1
  233. package/lib/typescript/module/src/math/environment.d.ts +7 -0
  234. package/lib/typescript/module/src/math/environment.d.ts.map +1 -0
  235. package/lib/typescript/module/src/math/index.d.ts +64 -0
  236. package/lib/typescript/module/src/math/index.d.ts.map +1 -0
  237. package/lib/typescript/module/src/math/mathjax.d.ts +63 -0
  238. package/lib/typescript/module/src/math/mathjax.d.ts.map +1 -0
  239. package/lib/typescript/module/src/metro.d.ts +59 -0
  240. package/lib/typescript/module/src/metro.d.ts.map +1 -0
  241. package/lib/typescript/module/src/parser/index.d.ts +3 -3
  242. package/lib/typescript/module/src/parser/index.d.ts.map +1 -1
  243. package/lib/typescript/module/src/parser/micromark-extension-mentions.d.ts.map +1 -1
  244. package/lib/typescript/module/src/rangeUtils.d.ts +1 -1
  245. package/lib/typescript/module/src/stripUtils.d.ts +108 -0
  246. package/lib/typescript/module/src/stripUtils.d.ts.map +1 -0
  247. package/lib/typescript/module/src/styleUtils.d.ts +62 -4
  248. package/lib/typescript/module/src/styleUtils.d.ts.map +1 -1
  249. package/lib/typescript/module/src/web/utils/blockLayout.d.ts +32 -4
  250. package/lib/typescript/module/src/web/utils/blockLayout.d.ts.map +1 -1
  251. package/lib/typescript/module/src/web/utils/blockUtils.d.ts +20 -8
  252. package/lib/typescript/module/src/web/utils/blockUtils.d.ts.map +1 -1
  253. package/lib/typescript/module/src/web/utils/elementUtils.d.ts +37 -0
  254. package/lib/typescript/module/src/web/utils/elementUtils.d.ts.map +1 -0
  255. package/lib/typescript/module/src/web/utils/parserUtils.d.ts +5 -5
  256. package/lib/typescript/module/src/web/utils/parserUtils.d.ts.map +1 -1
  257. package/lib/typescript/module/src/web/utils/treeUtils.d.ts +6 -1
  258. package/lib/typescript/module/src/web/utils/treeUtils.d.ts.map +1 -1
  259. package/lib/typescript/module/src/web/utils/webStyleUtils.d.ts +2 -2
  260. package/lib/typescript/module/src/web/utils/webStyleUtils.d.ts.map +1 -1
  261. package/package.json +29 -2
  262. package/react-native.config.js +8 -1
  263. package/src/MarcusTextDecoratorViewNativeComponent.ts +199 -0
  264. package/src/MarcusTextInputDecoratorViewNativeComponent.ts +145 -58
  265. package/src/MarkdownText.tsx +472 -0
  266. package/src/MarkdownText.web.tsx +668 -0
  267. package/src/MarkdownTextInput.tsx +42 -38
  268. package/src/MarkdownTextInput.web.tsx +36 -13
  269. package/src/atomUtils.ts +112 -0
  270. package/src/childrenUtils.ts +39 -0
  271. package/src/commonTypes.ts +69 -9
  272. package/src/index.tsx +2 -1
  273. package/src/math/environment.ts +68 -0
  274. package/src/math/index.ts +78 -0
  275. package/src/math/mathjax.ts +604 -0
  276. package/src/metro.ts +238 -0
  277. package/src/parser/index.ts +175 -10
  278. package/src/parser/micromark-extension-mentions.ts +104 -11
  279. package/src/stripUtils.ts +919 -0
  280. package/src/styleUtils.ts +290 -26
  281. package/src/web/MarkdownElements.css +67 -0
  282. package/src/web/MarkdownTextInput.css +9 -7
  283. package/src/web/utils/blockLayout.ts +124 -14
  284. package/src/web/utils/blockUtils.ts +365 -59
  285. package/src/web/utils/elementUtils.ts +87 -0
  286. package/src/web/utils/parserUtils.ts +119 -31
  287. package/src/web/utils/treeUtils.ts +6 -1
  288. package/src/web/utils/webStyleUtils.ts +32 -8
  289. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBackgroundColorSpan.kt +0 -6
  290. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBoldSpan.kt +0 -6
  291. package/android/src/main/java/app/getbullet/marcus/spans/MarkdownItalicSpan.kt +0 -6
  292. package/apple/RCTMarcusStyle+Codegen.mm +0 -64
  293. package/apple/RCTMarcusUtils.h +0 -26
  294. package/apple/RCTMarcusUtils.mm +0 -26
@@ -2,8 +2,9 @@
2
2
 
3
3
  import { addNodeToTree, createRootTreeNode } from "./treeUtils.js";
4
4
  import { getCurrentCursorPosition, moveCursorToEnd, setCursorPosition } from "./cursorUtils.js";
5
- import { addBlockPrefixGap, addLineLayout, addStyleToBlock, isMultilineMarkdownType } from "./blockUtils.js";
6
- import { layoutBlocks } from "./blockLayout.js";
5
+ import { addBlockPrefixGap, addLineLayout, addStyleToBlock, isMultilineMarkdownType, setRibbonEdge } from "./blockUtils.js";
6
+ import { createMarkdownElement, isBlockLevelType } from "./elementUtils.js";
7
+ import { layoutBlocks, SHOWN_MARKERS } from "./blockLayout.js";
7
8
  import { createTextMeasurer } from "./measureUtils.js";
8
9
  import { sortRanges, ungroupRanges } from "../../rangeUtils.js";
9
10
  function splitTextIntoLines(text) {
@@ -45,7 +46,7 @@ function mergeLinesWithMultilineTags(lines, currentLine, range, correspondingLin
45
46
  function splitRangeIntoSeparateLines(lines, currentLine, range, correspondingLineIndexes) {
46
47
  const mainLineRangeLength = currentLine.start + currentLine.length - range.start;
47
48
  // A range starting exactly at the newline has nothing on this line. Pushing the empty portion
48
- // anyway made the builder render an empty span, and an empty span is given a `<br>` to keep the
49
+ // anyway made the builder render an empty element, and an empty one is given a `<br>` to keep the
49
50
  // line height -- a line break in the text that the user never typed.
50
51
  if (mainLineRangeLength > 0) {
51
52
  currentLine.markdownRanges.push({
@@ -111,8 +112,7 @@ function appendNode(element, parentTreeNode, type, length, start = null) {
111
112
  return node;
112
113
  }
113
114
  function addBrElement(node) {
114
- const span = document.createElement("span");
115
- span.setAttribute("data-type", "br");
115
+ const span = createMarkdownElement("br");
116
116
  appendValueToElement(span, node, "\n");
117
117
  const spanNode = appendNode(span, node, "br", 1);
118
118
  appendNode(document.createElement("br"), spanNode, "br", 1);
@@ -122,13 +122,12 @@ function addTextToElement(node, text, isMultiline = true) {
122
122
  const lines = text.split("\n");
123
123
  lines.forEach((line, index) => {
124
124
  if (line !== "") {
125
- const span = document.createElement("span");
125
+ const span = createMarkdownElement("text");
126
126
  appendValueToElement(span, node, line);
127
- span.setAttribute("data-type", "text");
128
127
  span.appendChild(document.createTextNode(line));
129
128
  appendNode(span, node, "text", line.length);
130
129
  const parentType = span.parentElement?.dataset.type;
131
- if (!isMultiline && parentType && ["pre", "code", "mention-here", "mention-user", "mention-report"].includes(parentType)) {
130
+ if (!isMultiline && parentType && ["pre", "code", "mention"].includes(parentType)) {
132
131
  // this is a fix to background colors being shifted downwards in a singleline input
133
132
  addStyleToBlock(span, "text", {}, false);
134
133
  }
@@ -140,9 +139,27 @@ function addTextToElement(node, text, isMultiline = true) {
140
139
  }
141
140
  });
142
141
  }
143
- function addParagraph(node, text, length, layout, markdownStyle, disableInlineStyles = false) {
144
- const p = document.createElement("p");
142
+
143
+ /**
144
+ * Builds the element one line of the document is rendered into.
145
+ *
146
+ * A line of prose is a paragraph and is built as one. A line carrying a block -- a quote, a list
147
+ * item, a heading, a fenced block -- is not: `<p>` holds phrasing content only, and the elements
148
+ * those types are built as are flow content, so a `<p>` around them would be markup no browser
149
+ * would have parsed and no serializer will round-trip. Such a line gets a `<div>`, which says
150
+ * nothing and is allowed to hold anything -- the elements inside it are where the meaning is.
151
+ *
152
+ * `dir="auto"` makes the line its own bidi paragraph, taking its direction from the first strong
153
+ * character in it. That is what the two native platforms already do -- `NSWritingDirectionNatural`
154
+ * is UIKit's default and `firstStrong` is Android's -- so a quote in Arabic inside an otherwise
155
+ * English document opens its gutter on the right on all three rather than on two of them. It is
156
+ * also what `setRibbonEdge` asks the browser about, since the direction a line resolved to is
157
+ * readable through `:dir()` and not through anything the `direction` property leaves behind.
158
+ */
159
+ function addParagraph(node, text, length, layout, markdownStyle, disableInlineStyles = false, tag = "p") {
160
+ const p = document.createElement(tag);
145
161
  p.setAttribute("data-type", "line");
162
+ p.setAttribute("dir", "auto");
146
163
  if (!disableInlineStyles) {
147
164
  addLineLayout(p, layout, markdownStyle);
148
165
  }
@@ -187,16 +204,42 @@ function reportAmbiguousNesting(ranges) {
187
204
  }
188
205
 
189
206
  /**
190
- * Builds one `<p data-type="line">` under `rootNode`.
207
+ * The heading level this range is, or 0 if it is one of the nested copies inside one.
208
+ *
209
+ * A heading arrives as one range per level -- `ungroupRanges` expands `depth` into the nesting the
210
+ * `em` sizing compounds down -- so the level is how many of them there are, and only the outermost
211
+ * can be the `<hN>`. The copies are identical objects, and a stable sort leaves them adjacent, so
212
+ * counting the ones still to come is counting the levels.
213
+ */
214
+ function headingLevel(parent, range, remaining) {
215
+ for (let node = parent; node !== null; node = node.parentNode) {
216
+ if (node.type === "heading") {
217
+ return 0;
218
+ }
219
+ }
220
+ let level = 1;
221
+ while (remaining[level - 1]?.type === "heading" && remaining[level - 1]?.start === range.start && remaining[level - 1]?.length === range.length) {
222
+ level += 1;
223
+ }
224
+ return level;
225
+ }
226
+
227
+ /**
228
+ * Builds one `data-type="line"` element under `rootNode`.
191
229
  *
192
230
  * Lines are independent: nothing carries across from the previous one, which is what lets an update
193
231
  * rebuild a single line and leave the rest of the document alone.
194
232
  */
195
- function addLine(rootNode, line, textLength, hasRanges, isMultiline, markdownStyle, disableInlineStyles) {
233
+ function addLine(rootNode, line, textLength, hasRanges, isMultiline, markdownStyle, disableInlineStyles, rendering) {
196
234
  if (!hasRanges) {
197
- return addParagraph(rootNode, line.text, line.length, line.layout, markdownStyle, disableInlineStyles);
235
+ const plainNode = addParagraph(rootNode, line.text, line.length, line.layout, markdownStyle, disableInlineStyles);
236
+ if (!disableInlineStyles) {
237
+ setRibbonEdge(plainNode.element, line.layout);
238
+ }
239
+ return plainNode;
198
240
  }
199
- const lineNode = addParagraph(rootNode, null, line.length, line.layout, markdownStyle, disableInlineStyles);
241
+ const tag = line.markdownRanges.some(range => isBlockLevelType(range.type)) ? "div" : "p";
242
+ const lineNode = addParagraph(rootNode, null, line.length, line.layout, markdownStyle, disableInlineStyles, tag);
200
243
  let currentParentNode = lineNode;
201
244
  if (line.markdownRanges.length === 0) {
202
245
  addTextToElement(currentParentNode, line.text, isMultiline);
@@ -219,27 +262,34 @@ function addLine(rootNode, line, textLength, hasRanges, isMultiline, markdownSty
219
262
  addTextToElement(currentParentNode, textBeforeRange, isMultiline);
220
263
  }
221
264
 
222
- // create markdown span element
223
- const span = document.createElement("span");
224
- span.setAttribute("data-type", range.type);
225
- const spanNode = appendNode(span, currentParentNode, range.type, range.length, range.start);
265
+ // create the markdown element
266
+ const element = createMarkdownElement(range.type, range.type === "heading" ? headingLevel(currentParentNode, range, lineMarkdownRanges) : 0);
267
+ const rangeNode = appendNode(element, currentParentNode, range.type, range.length, range.start);
226
268
 
227
269
  // Styled once it is in the tree, not before: a heading's size depends on how many heading
228
270
  // levels enclose it, and an element with no parent looks like the outermost one.
229
271
  if (!disableInlineStyles) {
230
- addStyleToBlock(span, range.type, markdownStyle, isMultiline);
272
+ addStyleToBlock(element, range.type, markdownStyle, isMultiline, rendering);
231
273
  if (range.type === "block-prefix") {
232
- addBlockPrefixGap(span, line.layout?.gaps.get(range.start));
274
+ addBlockPrefixGap(element, line.layout?.gaps.get(range.start));
233
275
  }
234
276
  }
277
+
278
+ // A list container may hold nothing but items, so everything it contains goes into one. The
279
+ // item covers exactly what the container does -- a line of a list is an item of it -- and from
280
+ // here on it is what the walk fills and unwinds through.
281
+ const contentNode = range.type === "list-ordered" || range.type === "list-unordered" ? appendNode(createMarkdownElement("list-item"), rangeNode, "list-item", range.length, range.start) : rangeNode;
235
282
  if (lineMarkdownRanges.length > 0 && nextRangeStartIndex < endOfCurrentRange && range.type !== "syntax") {
236
283
  // tag nesting
237
- currentParentNode = spanNode;
284
+ currentParentNode = contentNode;
238
285
  lastRangeEndIndex = range.start;
239
286
  } else {
240
287
  // adding markdown tag
241
- addTextToElement(spanNode, line.text.substring(range.start - line.start, endOfCurrentRange - line.start), isMultiline);
242
- currentParentNode.element.value = (currentParentNode.element.value || "") + (spanNode.element.value || "");
288
+ addTextToElement(contentNode, line.text.substring(range.start - line.start, endOfCurrentRange - line.start), isMultiline);
289
+ if (contentNode !== rangeNode) {
290
+ rangeNode.element.value = contentNode.element.value;
291
+ }
292
+ currentParentNode.element.value = (currentParentNode.element.value || "") + (rangeNode.element.value || "");
243
293
  lastRangeEndIndex = endOfCurrentRange;
244
294
  // tag unnesting and adding text after the tag
245
295
  while (currentParentNode.parentNode !== null && nextRangeStartIndex >= currentParentNode.start + currentParentNode.length) {
@@ -267,11 +317,17 @@ function addLine(rootNode, line, textLength, hasRanges, isMultiline, markdownSty
267
317
  }
268
318
  }
269
319
  }
320
+
321
+ // Last, once the line holds all its text: a line's own direction is read from what is in it, and
322
+ // it is what says which edge a quote's ribbons hang from.
323
+ if (!disableInlineStyles) {
324
+ setRibbonEdge(lineNode.element, line.layout);
325
+ }
270
326
  return lineNode;
271
327
  }
272
328
 
273
329
  /** Splits the text into lines and hands each the markdown ranges that fall inside it. */
274
- function prepareLines(text, ranges, markdownStyle, measure) {
330
+ function prepareLines(text, ranges, markdownStyle, measure, rendering = SHOWN_MARKERS) {
275
331
  const lines = splitTextIntoLines(text);
276
332
  if (ranges.length === 0) {
277
333
  return lines;
@@ -280,7 +336,7 @@ function prepareLines(text, ranges, markdownStyle, measure) {
280
336
  // Before anything reorders them: the block walk reads the ranges in the order the parser emits
281
337
  // them -- each marker immediately before the container it belongs to -- and `sortRanges` sorts
282
338
  // that order away in place.
283
- const layouts = layoutBlocks(text, ranges, markdownStyle, measure);
339
+ const layouts = layoutBlocks(text, ranges, markdownStyle, measure, rendering);
284
340
 
285
341
  // Sort all ranges by start position, length, and by tag hierarchy so the styles and text are applied in correct order
286
342
  const sortedRanges = sortRanges(ranges);
@@ -304,7 +360,7 @@ function prepareLines(text, ranges, markdownStyle, measure) {
304
360
  }
305
361
 
306
362
  /** Builds HTML DOM structure based on passed text and markdown ranges */
307
- function parseRangesToHTMLNodes(text, ranges, isMultiline = true, markdownStyle = {}, disableInlineStyles = false, measure = createTextMeasurer(null)) {
363
+ function parseRangesToHTMLNodes(text, ranges, isMultiline = true, markdownStyle = {}, disableInlineStyles = false, measure = createTextMeasurer(null), rendering = SHOWN_MARKERS) {
308
364
  const rootElement = document.createElement("span");
309
365
  const textLength = text.length;
310
366
  const rootNode = createRootTreeNode(rootElement, textLength);
@@ -312,8 +368,8 @@ function parseRangesToHTMLNodes(text, ranges, isMultiline = true, markdownStyle
312
368
  // Built line by line, exactly as an update builds the lines it has to replace, so the two agree
313
369
  // by construction and each line sits at the offset the text gives it rather than at wherever the
314
370
  // line before it happened to end.
315
- prepareLines(text, ranges, markdownStyle, measure).forEach((line, index) => {
316
- const node = buildLine(line, index, textLength, ranges.length > 0, isMultiline, markdownStyle, disableInlineStyles);
371
+ prepareLines(text, ranges, markdownStyle, measure, rendering).forEach((line, index) => {
372
+ const node = buildLine(line, index, textLength, ranges.length > 0, isMultiline, markdownStyle, disableInlineStyles, rendering);
317
373
  node.parentNode = rootNode;
318
374
  rootNode.childNodes.push(node);
319
375
  rootElement.appendChild(node.element);
@@ -396,12 +452,12 @@ function coverChildren(node) {
396
452
  }
397
453
 
398
454
  /** Builds one line on its own, then places it at the offset and index it occupies in the document. */
399
- function buildLine(line, index, textLength, hasRanges, isMultiline, markdownStyle, disableInlineStyles = false) {
455
+ function buildLine(line, index, textLength, hasRanges, isMultiline, markdownStyle, disableInlineStyles = false, rendering = SHOWN_MARKERS) {
400
456
  // The scratch root carries the line's offset, so the subtree comes out with the absolute `start`
401
457
  // values the builder compares against range offsets -- the same ones it would get if the whole
402
458
  // document had been built in one pass.
403
459
  const scratch = createRootTreeNode(document.createElement("span"), line.length, line.start);
404
- const node = addLine(scratch, line, textLength, hasRanges, isMultiline, markdownStyle, disableInlineStyles);
460
+ const node = addLine(scratch, line, textLength, hasRanges, isMultiline, markdownStyle, disableInlineStyles, rendering);
405
461
  coverChildren(node);
406
462
  restampSubtree(node, `${index}`);
407
463
  return node;
@@ -1 +1 @@
1
- {"version":3,"names":["addNodeToTree","createRootTreeNode","getCurrentCursorPosition","moveCursorToEnd","setCursorPosition","addBlockPrefixGap","addLineLayout","addStyleToBlock","isMultilineMarkdownType","layoutBlocks","createTextMeasurer","sortRanges","ungroupRanges","splitTextIntoLines","text","lineStartIndex","lines","split","map","line","lineObject","start","length","markdownRanges","mergeLinesWithMultilineTags","currentLine","range","correspondingLineIndexes","mainLine","push","forEach","lineIndex","otherLine","undefined","splice","splitRangeIntoSeparateLines","mainLineRangeLength","rangeLength","currentLength","normalizeLines","ranges","mergedLines","lineIndexes","_line","index","beginLineIndex","findLastIndex","endLineIndex","findIndex","slice","mainLineIndex","otherLineIndexes","type","appendValueToElement","element","parentTreeNode","value","targetElement","parentNode","appendNode","node","appendChild","addBrElement","span","document","createElement","setAttribute","spanNode","addTextToElement","isMultiline","createTextNode","parentType","parentElement","dataset","includes","addParagraph","layout","markdownStyle","disableInlineStyles","p","pNode","INNERMOST_TYPES","Set","reportAmbiguousNesting","i","previous","current","has","console","error","addLine","rootNode","textLength","hasRanges","lineNode","currentParentNode","lastRangeEndIndex","lineMarkdownRanges","shift","endOfCurrentRange","nextRangeStartIndex","textBeforeRange","substring","gaps","get","parentEndIndex","textAfterRange","prepareLines","measure","layouts","sortedRanges","__DEV__","normalized","paragraph","parseRangesToHTMLNodes","rootElement","buildLine","childNodes","dom","tree","signatureOf","signature","depth","firstLineIndent","indent","ribbons","join","gap","shiftSubtree","delta","target","child","restampSubtree","orderIndex","coverChildren","end","childEnd","scratch","canReuseLine","cached","liveNode","outerHTML","html","reconcileLines","shouldForceDOMUpdate","signatures","cache","lineCache","live","Array","from","head","tail","previousTail","liveTail","fresh","anchor","remove","fragment","createDocumentFragment","insertBefore","nextCache","moveCursor","isFocused","alwaysMoveCursorToTheEnd","cursorPosition","shouldScrollIntoView","updateInputStructure","parserFunction","cursorPositionIndex","activeElement","selection","innerHTML","innerText"],"sourceRoot":"../../../../src","sources":["web/utils/parserUtils.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["addNodeToTree","createRootTreeNode","getCurrentCursorPosition","moveCursorToEnd","setCursorPosition","addBlockPrefixGap","addLineLayout","addStyleToBlock","isMultilineMarkdownType","setRibbonEdge","createMarkdownElement","isBlockLevelType","layoutBlocks","SHOWN_MARKERS","createTextMeasurer","sortRanges","ungroupRanges","splitTextIntoLines","text","lineStartIndex","lines","split","map","line","lineObject","start","length","markdownRanges","mergeLinesWithMultilineTags","currentLine","range","correspondingLineIndexes","mainLine","push","forEach","lineIndex","otherLine","undefined","splice","splitRangeIntoSeparateLines","mainLineRangeLength","rangeLength","currentLength","normalizeLines","ranges","mergedLines","lineIndexes","_line","index","beginLineIndex","findLastIndex","endLineIndex","findIndex","slice","mainLineIndex","otherLineIndexes","type","appendValueToElement","element","parentTreeNode","value","targetElement","parentNode","appendNode","node","appendChild","addBrElement","span","spanNode","document","createElement","addTextToElement","isMultiline","createTextNode","parentType","parentElement","dataset","includes","addParagraph","layout","markdownStyle","disableInlineStyles","tag","p","setAttribute","pNode","INNERMOST_TYPES","Set","reportAmbiguousNesting","i","previous","current","has","console","error","headingLevel","parent","remaining","level","addLine","rootNode","textLength","hasRanges","rendering","plainNode","some","lineNode","currentParentNode","lastRangeEndIndex","lineMarkdownRanges","shift","endOfCurrentRange","nextRangeStartIndex","textBeforeRange","substring","rangeNode","gaps","get","contentNode","parentEndIndex","textAfterRange","prepareLines","measure","layouts","sortedRanges","__DEV__","normalized","paragraph","parseRangesToHTMLNodes","rootElement","buildLine","childNodes","dom","tree","signatureOf","signature","depth","firstLineIndent","indent","ribbons","join","gap","shiftSubtree","delta","target","child","restampSubtree","orderIndex","coverChildren","end","childEnd","scratch","canReuseLine","cached","liveNode","outerHTML","html","reconcileLines","shouldForceDOMUpdate","signatures","cache","lineCache","live","Array","from","head","tail","previousTail","liveTail","fresh","anchor","remove","fragment","createDocumentFragment","insertBefore","nextCache","moveCursor","isFocused","alwaysMoveCursorToTheEnd","cursorPosition","shouldScrollIntoView","updateInputStructure","parserFunction","cursorPositionIndex","activeElement","selection","innerHTML","innerText"],"sourceRoot":"../../../../src","sources":["web/utils/parserUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ /**
4
+ * `list-item` is the one node with no range behind it: `<ul>` and `<ol>` may hold nothing but
5
+ * `<li>`, so the builder puts one inside each list container and everything the container holds
6
+ * goes in there. It covers exactly what its container does.
7
+ */
8
+
3
9
  function createRootTreeNode(target, length = 0, start = 0) {
4
10
  return {
5
11
  element: target,
@@ -1 +1 @@
1
- {"version":3,"names":["createRootTreeNode","target","length","start","element","parentNode","childNodes","type","orderIndex","isGeneratingNewline","addNodeToTree","parentTreeNode","contentLength","nodeName","value","getAttribute","parentChildrenCount","startIndex","lastParentChild","style","display","item","setAttribute","push","findHTMLElementInTree","treeRoot","hasAttribute","indexes","split","el","index","Number","shift","getTreeNodeByIndex","i","newLineGenerated","child"],"sourceRoot":"../../../../src","sources":["web/utils/treeUtils.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createRootTreeNode","target","length","start","element","parentNode","childNodes","type","orderIndex","isGeneratingNewline","addNodeToTree","parentTreeNode","contentLength","nodeName","value","getAttribute","parentChildrenCount","startIndex","lastParentChild","style","display","item","setAttribute","push","findHTMLElementInTree","treeRoot","hasAttribute","indexes","split","el","index","Number","shift","getTreeNodeByIndex","i","newLineGenerated","child"],"sourceRoot":"../../../../src","sources":["web/utils/treeUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -27,14 +27,34 @@ try {
27
27
  } catch {
28
28
  throw new Error("[react-native-marcus] Function `dangerousStyleValue` from react-native-web not found.");
29
29
  }
30
+
31
+ // The three shadow properties are left as they were written. An offset is an object rather than a
32
+ // length, and a radius that carried its unit here could not be composed with an offset that did
33
+ // not: `blockUtils` builds the one `text-shadow` declaration out of all three instead.
34
+ const RAW_PROPS = new Set(["textShadowOffset", "textShadowRadius"]);
35
+
36
+ /**
37
+ * Gives every length in the style its CSS unit.
38
+ *
39
+ * Walks the whole tree rather than its top two levels, because a list's `marker` puts style values
40
+ * one level further down than the entries around it.
41
+ */
30
42
  function processUnitsInMarkdownStyle(input) {
31
43
  const output = JSON.parse(JSON.stringify(input));
32
- Object.keys(output).forEach(key => {
33
- const obj = output[key];
34
- Object.keys(obj).forEach(prop => {
35
- obj[prop] = dangerousStyleValue(prop, obj[prop], false);
44
+ const walk = node => {
45
+ Object.keys(node).forEach(prop => {
46
+ const value = node[prop];
47
+ if (RAW_PROPS.has(prop)) {
48
+ return;
49
+ }
50
+ if (typeof value === "object" && value !== null && !Array.isArray(value)) {
51
+ walk(value);
52
+ return;
53
+ }
54
+ node[prop] = dangerousStyleValue(prop, value, false);
36
55
  });
37
- });
56
+ };
57
+ walk(output);
38
58
  return output;
39
59
  }
40
60
  function processMarkdownStyle(input) {
@@ -1 +1 @@
1
- {"version":3,"names":["mergeMarkdownStyleWithDefault","createReactDOMStyle","require","default","Error","preprocessStyle","dangerousStyleValue","processUnitsInMarkdownStyle","input","output","JSON","parse","stringify","Object","keys","forEach","key","obj","prop","processMarkdownStyle","parseToReactDOMStyle","style","generateUniqueId","idCounter","idGenerator"],"sourceRoot":"../../../../src","sources":["web/utils/webStyleUtils.ts"],"mappings":";;AAAA;;AAGA,SAASA,6BAA6B,QAAQ,qBAAkB;AAEhE,IAAIC,mBAAwC;AAC5C,IAAI;EACFA,mBAAmB;EACjB;EACAC,OAAO,CAAC,uEAAuE,CAAC,CAACC,OAAO;AAC5F,CAAC,CAAC,MAAM;EACN,MAAM,IAAIC,KAAK,CACb,2JACF,CAAC;AACH;AAEA,IAAIC,eAAoC;AACxC,IAAI;EACFA,eAAe;EACb;EACAH,OAAO,CAAC,qDAAqD,CAAC,CAACC,OAAO;AAC1E,CAAC,CAAC,MAAM;EACN,MAAM,IAAIC,KAAK,CACb,mFACF,CAAC;AACH;AAEA,IAAIE,mBAAiF;AACrF,IAAI;EACFA,mBAAmB;EACjB;EACAJ,OAAO,CAAC,qEAAqE,CAAC,CAACC,OAAO;AAC1F,CAAC,CAAC,MAAM;EACN,MAAM,IAAIC,KAAK,CACb,uFACF,CAAC;AACH;AAEA,SAASG,2BAA2BA,CAACC,KAAoB,EAAiB;EACxE,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACJ,KAAK,CAAC,CAAC;EAEhDK,MAAM,CAACC,IAAI,CAACL,MAAM,CAAC,CAACM,OAAO,CAAEC,GAAG,IAAK;IACnC,MAAMC,GAAG,GAAGR,MAAM,CAACO,GAAG,CAAC;IACvBH,MAAM,CAACC,IAAI,CAACG,GAAG,CAAC,CAACF,OAAO,CAAEG,IAAI,IAAK;MACjCD,GAAG,CAACC,IAAI,CAAC,GAAGZ,mBAAmB,CAACY,IAAI,EAAED,GAAG,CAACC,IAAI,CAAC,EAAE,KAAK,CAAC;IACzD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAOT,MAAM;AACf;AAEA,SAASU,oBAAoBA,CAACX,KAAgC,EAAiB;EAC7E,OAAOD,2BAA2B,CAACP,6BAA6B,CAACQ,KAAK,CAAC,CAAC;AAC1E;AAEA,SAASY,oBAAoBA,CAACC,KAAgB,EAAO;EACnD,OAAOpB,mBAAmB,CAACI,eAAe,CAACgB,KAAK,CAAC,CAAC;AACpD;AAEA,UAAUC,gBAAgBA,CAAA,EAAG;EAC3B,IAAIC,SAAS,GAAG,CAAC;EACjB,OAAO,IAAI,EAAE;IACX,MAAM,gBAAgBA,SAAS,EAAE,EAAE;EACrC;AACF;AAEA,MAAMC,WAAW,GAAGF,gBAAgB,CAAC,CAAC;AAEtC,SAASF,oBAAoB,EAAED,oBAAoB,EAAEK,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["mergeMarkdownStyleWithDefault","createReactDOMStyle","require","default","Error","preprocessStyle","dangerousStyleValue","RAW_PROPS","Set","processUnitsInMarkdownStyle","input","output","JSON","parse","stringify","walk","node","Object","keys","forEach","prop","value","has","Array","isArray","processMarkdownStyle","parseToReactDOMStyle","style","generateUniqueId","idCounter","idGenerator"],"sourceRoot":"../../../../src","sources":["web/utils/webStyleUtils.ts"],"mappings":";;AAAA;;AAIA,SAASA,6BAA6B,QAAQ,qBAAkB;AAEhE,IAAIC,mBAAwC;AAC5C,IAAI;EACFA,mBAAmB;EACjB;EACAC,OAAO,CAAC,uEAAuE,CAAC,CAACC,OAAO;AAC5F,CAAC,CAAC,MAAM;EACN,MAAM,IAAIC,KAAK,CACb,2JACF,CAAC;AACH;AAEA,IAAIC,eAAoC;AACxC,IAAI;EACFA,eAAe;EACb;EACAH,OAAO,CAAC,qDAAqD,CAAC,CAACC,OAAO;AAC1E,CAAC,CAAC,MAAM;EACN,MAAM,IAAIC,KAAK,CACb,mFACF,CAAC;AACH;AAEA,IAAIE,mBAAiF;AACrF,IAAI;EACFA,mBAAmB;EACjB;EACAJ,OAAO,CAAC,qEAAqE,CAAC,CAACC,OAAO;AAC1F,CAAC,CAAC,MAAM;EACN,MAAM,IAAIC,KAAK,CACb,uFACF,CAAC;AACH;;AAEA;AACA;AACA;AACA,MAAMG,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,2BAA2BA,CAACC,KAAoB,EAAyB;EAChF,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACJ,KAAK,CAAC,CAAC;EAEhD,MAAMK,IAAI,GAAIC,IAAS,IAAK;IAC1BC,MAAM,CAACC,IAAI,CAACF,IAAI,CAAC,CAACG,OAAO,CAAEC,IAAI,IAAK;MAClC,MAAMC,KAAK,GAAGL,IAAI,CAACI,IAAI,CAAC;MAExB,IAAIb,SAAS,CAACe,GAAG,CAACF,IAAI,CAAC,EAAE;QACvB;MACF;MAEA,IAAI,OAAOC,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,CAACE,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,EAAE;QACxEN,IAAI,CAACM,KAAK,CAAC;QACX;MACF;MAEAL,IAAI,CAACI,IAAI,CAAC,GAAGd,mBAAmB,CAACc,IAAI,EAAEC,KAAK,EAAE,KAAK,CAAC;IACtD,CAAC,CAAC;EACJ,CAAC;EAEDN,IAAI,CAACJ,MAAM,CAAC;EAEZ,OAAOA,MAAM;AACf;AAEA,SAASc,oBAAoBA,CAACf,KAAuC,EAAyB;EAC5F,OAAOD,2BAA2B,CAACT,6BAA6B,CAACU,KAAK,CAAC,CAAC;AAC1E;AAEA,SAASgB,oBAAoBA,CAACC,KAAgB,EAAO;EACnD,OAAO1B,mBAAmB,CAACI,eAAe,CAACsB,KAAK,CAAC,CAAC;AACpD;AAEA,UAAUC,gBAAgBA,CAAA,EAAG;EAC3B,IAAIC,SAAS,GAAG,CAAC;EACjB,OAAO,IAAI,EAAE;IACX,MAAM,gBAAgBA,SAAS,EAAE,EAAE;EACrC;AACF;AAEA,MAAMC,WAAW,GAAGF,gBAAgB,CAAC,CAAC;AAEtC,SAASF,oBAAoB,EAAED,oBAAoB,EAAEK,WAAW","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=links.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.test.d.ts","sourceRoot":"","sources":["../../../../e2e/links.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,93 @@
1
+ import type { ColorValue, ViewProps } from "react-native";
2
+ import type { Float, Int32 } from "react-native/Libraries/Types/CodegenTypes";
3
+ import type { MarkdownStyle as TextInputMarkdownStyle } from "./MarcusTextInputDecoratorViewNativeComponent";
4
+ interface MarkdownTextStyle {
5
+ color?: ColorValue;
6
+ fontFamily?: string;
7
+ fontSize?: Float;
8
+ fontStyle?: string;
9
+ fontWeight?: string;
10
+ letterSpacing?: Float;
11
+ lineHeight?: Float;
12
+ textDecorationLine?: string;
13
+ textDecorationColor?: ColorValue;
14
+ textDecorationStyle?: string;
15
+ textShadowColor?: ColorValue;
16
+ textShadowOffset?: {
17
+ width: Float;
18
+ height: Float;
19
+ };
20
+ textShadowRadius?: Float;
21
+ }
22
+ interface MarkdownBoxStyle extends MarkdownTextStyle {
23
+ backgroundColor?: ColorValue;
24
+ borderColor?: ColorValue;
25
+ borderWidth?: Float;
26
+ borderRadius?: Float;
27
+ padding?: Float;
28
+ paddingHorizontal?: Float;
29
+ paddingVertical?: Float;
30
+ margin?: Float;
31
+ marginHorizontal?: Float;
32
+ marginVertical?: Float;
33
+ }
34
+ interface MarkdownHeadingStyle extends MarkdownTextStyle {
35
+ scale?: Float;
36
+ }
37
+ interface MarkdownBlockquoteStyle extends MarkdownTextStyle {
38
+ borderColor?: ColorValue;
39
+ borderWidth?: Float;
40
+ borderRadius?: Float;
41
+ marginStart?: Float;
42
+ paddingStart?: Float;
43
+ }
44
+ interface MarkdownListStyle {
45
+ marginStart?: Float;
46
+ paddingStart?: Float;
47
+ markerScale?: Float;
48
+ markerPadding?: Float;
49
+ marker?: MarkdownTextStyle;
50
+ }
51
+ interface MarkdownEmojiStyle {
52
+ fontSize?: Float;
53
+ fontFamily?: string;
54
+ }
55
+ interface MarkdownStyle {
56
+ syntax: MarkdownTextStyle;
57
+ emoji: MarkdownEmojiStyle;
58
+ link: MarkdownTextStyle;
59
+ strong: MarkdownTextStyle;
60
+ emphasis: MarkdownTextStyle;
61
+ strikethrough: MarkdownTextStyle;
62
+ heading: MarkdownHeadingStyle;
63
+ blockquote: MarkdownBlockquoteStyle;
64
+ orderedList: MarkdownListStyle;
65
+ unorderedList: MarkdownListStyle;
66
+ code: MarkdownBoxStyle;
67
+ pre: MarkdownBoxStyle;
68
+ mention: MarkdownBoxStyle;
69
+ }
70
+ interface MarkdownRangeStruct {
71
+ type: string;
72
+ start: Int32;
73
+ length: Int32;
74
+ depth: Int32;
75
+ }
76
+ interface MarkdownSubstitutionStruct {
77
+ index: Int32;
78
+ text: string;
79
+ }
80
+ interface NativeProps extends ViewProps {
81
+ markdownStyle: MarkdownStyle;
82
+ ranges: ReadonlyArray<MarkdownRangeStruct>;
83
+ substitutions: ReadonlyArray<MarkdownSubstitutionStruct>;
84
+ }
85
+ type Assignable<A extends B, B> = A;
86
+ type StyleMatchesTextInput = [
87
+ Assignable<MarkdownStyle, TextInputMarkdownStyle>,
88
+ Assignable<TextInputMarkdownStyle, MarkdownStyle>
89
+ ];
90
+ declare const _default: import("react-native").HostComponent<NativeProps>;
91
+ export default _default;
92
+ export type { MarkdownRangeStruct, MarkdownSubstitutionStruct, StyleMatchesTextInput };
93
+ //# sourceMappingURL=MarcusTextDecoratorViewNativeComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarcusTextDecoratorViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/MarcusTextDecoratorViewNativeComponent.ts"],"names":[],"mappings":"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"}