@mathers101/react-native-render-rich-text 0.0.0-stage → 0.1.10

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 (358) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +140 -3
  3. package/ReactNativeRenderRichText.podspec +23 -0
  4. package/android/build.gradle +86 -0
  5. package/android/consumer-rules.pro +3 -0
  6. package/android/src/main/AndroidManifest.xml +2 -0
  7. package/android/src/main/cpp/jni-adapter.cpp +191 -0
  8. package/android/src/main/java/com/renderrichtext/EnrichedTiptapText.kt +673 -0
  9. package/android/src/main/java/com/renderrichtext/EnrichedTiptapTextLayoutManager.kt +24 -0
  10. package/android/src/main/java/com/renderrichtext/EnrichedTiptapTextManager.kt +405 -0
  11. package/android/src/main/java/com/renderrichtext/EnrichedTiptapTextPackage.kt +13 -0
  12. package/android/src/main/java/com/renderrichtext/MeasurementStore.kt +644 -0
  13. package/android/src/main/java/com/renderrichtext/accessibility/AccessibilityLabels.kt +17 -0
  14. package/android/src/main/java/com/renderrichtext/accessibility/AccessibleTiptapTextView.kt +112 -0
  15. package/android/src/main/java/com/renderrichtext/accessibility/TiptapAccessibilityHelper.kt +576 -0
  16. package/android/src/main/java/com/renderrichtext/events/CodeBlockPressEvent.kt +24 -0
  17. package/android/src/main/java/com/renderrichtext/events/ContextMenuItemPressEvent.kt +28 -0
  18. package/android/src/main/java/com/renderrichtext/events/CopyPressEvent.kt +24 -0
  19. package/android/src/main/java/com/renderrichtext/events/FactoidPressEvent.kt +23 -0
  20. package/android/src/main/java/com/renderrichtext/events/ImagePressEvent.kt +25 -0
  21. package/android/src/main/java/com/renderrichtext/events/LatexErrorEvent.kt +29 -0
  22. package/android/src/main/java/com/renderrichtext/events/LinkLongPressEvent.kt +23 -0
  23. package/android/src/main/java/com/renderrichtext/events/LinkPressEvent.kt +23 -0
  24. package/android/src/main/java/com/renderrichtext/events/MentionLongPressEvent.kt +25 -0
  25. package/android/src/main/java/com/renderrichtext/events/MentionPressEvent.kt +25 -0
  26. package/android/src/main/java/com/renderrichtext/events/TaskListItemPressEvent.kt +26 -0
  27. package/android/src/main/java/com/renderrichtext/math/LatexErrorReporter.kt +9 -0
  28. package/android/src/main/java/com/renderrichtext/parser/Parser.kt +59 -0
  29. package/android/src/main/java/com/renderrichtext/parser/TextLinkMatching.kt +35 -0
  30. package/android/src/main/java/com/renderrichtext/parser/TiptapASTNode.kt +69 -0
  31. package/android/src/main/java/com/renderrichtext/renderer/BaselineShiftRenderer.kt +45 -0
  32. package/android/src/main/java/com/renderrichtext/renderer/BlankLineRenderer.kt +39 -0
  33. package/android/src/main/java/com/renderrichtext/renderer/BlockStyleContext.kt +181 -0
  34. package/android/src/main/java/com/renderrichtext/renderer/BlockquoteRenderer.kt +243 -0
  35. package/android/src/main/java/com/renderrichtext/renderer/BlockquoteTextRenderer.kt +56 -0
  36. package/android/src/main/java/com/renderrichtext/renderer/CodeBlockRenderer.kt +135 -0
  37. package/android/src/main/java/com/renderrichtext/renderer/CodeRenderer.kt +37 -0
  38. package/android/src/main/java/com/renderrichtext/renderer/EmphasisRenderer.kt +28 -0
  39. package/android/src/main/java/com/renderrichtext/renderer/FactoidRenderer.kt +97 -0
  40. package/android/src/main/java/com/renderrichtext/renderer/HeadingRenderer.kt +81 -0
  41. package/android/src/main/java/com/renderrichtext/renderer/HighlightRenderer.kt +26 -0
  42. package/android/src/main/java/com/renderrichtext/renderer/LineBreakRenderer.kt +17 -0
  43. package/android/src/main/java/com/renderrichtext/renderer/LinkRenderer.kt +90 -0
  44. package/android/src/main/java/com/renderrichtext/renderer/ListContextManager.kt +109 -0
  45. package/android/src/main/java/com/renderrichtext/renderer/ListItemRenderer.kt +211 -0
  46. package/android/src/main/java/com/renderrichtext/renderer/ListRenderer.kt +133 -0
  47. package/android/src/main/java/com/renderrichtext/renderer/MentionRenderer.kt +85 -0
  48. package/android/src/main/java/com/renderrichtext/renderer/NodeRenderer.kt +207 -0
  49. package/android/src/main/java/com/renderrichtext/renderer/ParagraphRenderer.kt +91 -0
  50. package/android/src/main/java/com/renderrichtext/renderer/Renderer.kt +148 -0
  51. package/android/src/main/java/com/renderrichtext/renderer/SoftBreakRenderer.kt +17 -0
  52. package/android/src/main/java/com/renderrichtext/renderer/SpanStyleCache.kt +143 -0
  53. package/android/src/main/java/com/renderrichtext/renderer/StrikethroughRenderer.kt +28 -0
  54. package/android/src/main/java/com/renderrichtext/renderer/StrongRenderer.kt +28 -0
  55. package/android/src/main/java/com/renderrichtext/renderer/TextRenderer.kt +31 -0
  56. package/android/src/main/java/com/renderrichtext/renderer/ThematicBreakRenderer.kt +46 -0
  57. package/android/src/main/java/com/renderrichtext/renderer/UnderlineRenderer.kt +28 -0
  58. package/android/src/main/java/com/renderrichtext/spans/BaseListSpan.kt +164 -0
  59. package/android/src/main/java/com/renderrichtext/spans/BaselineShiftSpan.kt +27 -0
  60. package/android/src/main/java/com/renderrichtext/spans/BlockquoteSpan.kt +302 -0
  61. package/android/src/main/java/com/renderrichtext/spans/CodeBackgroundSpan.kt +205 -0
  62. package/android/src/main/java/com/renderrichtext/spans/CodeBlockSpan.kt +216 -0
  63. package/android/src/main/java/com/renderrichtext/spans/CodeSpan.kt +32 -0
  64. package/android/src/main/java/com/renderrichtext/spans/EmphasisSpan.kt +42 -0
  65. package/android/src/main/java/com/renderrichtext/spans/FactoidBackgroundSpan.kt +265 -0
  66. package/android/src/main/java/com/renderrichtext/spans/FactoidPaddingSpan.kt +258 -0
  67. package/android/src/main/java/com/renderrichtext/spans/FactoidSpan.kt +32 -0
  68. package/android/src/main/java/com/renderrichtext/spans/FadeInSpan.kt +29 -0
  69. package/android/src/main/java/com/renderrichtext/spans/HeadingSpan.kt +38 -0
  70. package/android/src/main/java/com/renderrichtext/spans/HighlightSpan.kt +80 -0
  71. package/android/src/main/java/com/renderrichtext/spans/ImageSpan.kt +481 -0
  72. package/android/src/main/java/com/renderrichtext/spans/InlineBackgroundGeometry.kt +42 -0
  73. package/android/src/main/java/com/renderrichtext/spans/LineHeightSpan.kt +39 -0
  74. package/android/src/main/java/com/renderrichtext/spans/LinkPillIconCache.kt +154 -0
  75. package/android/src/main/java/com/renderrichtext/spans/LinkPillSpan.kt +381 -0
  76. package/android/src/main/java/com/renderrichtext/spans/LinkSpan.kt +68 -0
  77. package/android/src/main/java/com/renderrichtext/spans/ListItemSpacingSpan.kt +33 -0
  78. package/android/src/main/java/com/renderrichtext/spans/ListMarkerAnchorSpan.kt +38 -0
  79. package/android/src/main/java/com/renderrichtext/spans/MarginBottomSpan.kt +76 -0
  80. package/android/src/main/java/com/renderrichtext/spans/MentionChipSpan.kt +132 -0
  81. package/android/src/main/java/com/renderrichtext/spans/MentionSpan.kt +46 -0
  82. package/android/src/main/java/com/renderrichtext/spans/OrderedListSpan.kt +127 -0
  83. package/android/src/main/java/com/renderrichtext/spans/SpoilerSpan.kt +33 -0
  84. package/android/src/main/java/com/renderrichtext/spans/StrikethroughSpan.kt +12 -0
  85. package/android/src/main/java/com/renderrichtext/spans/StrongSpan.kt +39 -0
  86. package/android/src/main/java/com/renderrichtext/spans/TaskListSpan.kt +143 -0
  87. package/android/src/main/java/com/renderrichtext/spans/TextSpan.kt +26 -0
  88. package/android/src/main/java/com/renderrichtext/spans/ThematicBreakSpan.kt +69 -0
  89. package/android/src/main/java/com/renderrichtext/spans/UnorderedListSpan.kt +96 -0
  90. package/android/src/main/java/com/renderrichtext/spoiler/SpoilerStubs.kt +46 -0
  91. package/android/src/main/java/com/renderrichtext/styles/BaseBlockStyle.kt +11 -0
  92. package/android/src/main/java/com/renderrichtext/styles/BlockquoteStyle.kt +83 -0
  93. package/android/src/main/java/com/renderrichtext/styles/CodeBlockStyle.kt +80 -0
  94. package/android/src/main/java/com/renderrichtext/styles/CodeStyle.kt +26 -0
  95. package/android/src/main/java/com/renderrichtext/styles/EmphasisStyle.kt +21 -0
  96. package/android/src/main/java/com/renderrichtext/styles/FactoidStyle.kt +21 -0
  97. package/android/src/main/java/com/renderrichtext/styles/HeadingStyle.kt +33 -0
  98. package/android/src/main/java/com/renderrichtext/styles/HighlightStyle.kt +19 -0
  99. package/android/src/main/java/com/renderrichtext/styles/ImageStyle.kt +29 -0
  100. package/android/src/main/java/com/renderrichtext/styles/InlineImageStyle.kt +17 -0
  101. package/android/src/main/java/com/renderrichtext/styles/InlineMathStyle.kt +17 -0
  102. package/android/src/main/java/com/renderrichtext/styles/LinkPillContent.kt +36 -0
  103. package/android/src/main/java/com/renderrichtext/styles/LinkPillStyle.kt +44 -0
  104. package/android/src/main/java/com/renderrichtext/styles/LinkStyle.kt +23 -0
  105. package/android/src/main/java/com/renderrichtext/styles/LinkVariantEntry.kt +34 -0
  106. package/android/src/main/java/com/renderrichtext/styles/ListStyle.kt +65 -0
  107. package/android/src/main/java/com/renderrichtext/styles/MathStyle.kt +29 -0
  108. package/android/src/main/java/com/renderrichtext/styles/MentionStyle.kt +19 -0
  109. package/android/src/main/java/com/renderrichtext/styles/ParagraphStyle.kt +33 -0
  110. package/android/src/main/java/com/renderrichtext/styles/SpoilerStyle.kt +27 -0
  111. package/android/src/main/java/com/renderrichtext/styles/StrikethroughStyle.kt +17 -0
  112. package/android/src/main/java/com/renderrichtext/styles/StrongStyle.kt +21 -0
  113. package/android/src/main/java/com/renderrichtext/styles/StyleConfig.kt +411 -0
  114. package/android/src/main/java/com/renderrichtext/styles/StyleParser.kt +92 -0
  115. package/android/src/main/java/com/renderrichtext/styles/SubscriptStyle.kt +16 -0
  116. package/android/src/main/java/com/renderrichtext/styles/SuperscriptStyle.kt +16 -0
  117. package/android/src/main/java/com/renderrichtext/styles/TableStyle.kt +75 -0
  118. package/android/src/main/java/com/renderrichtext/styles/TaskListStyle.kt +29 -0
  119. package/android/src/main/java/com/renderrichtext/styles/TextAlignment.kt +32 -0
  120. package/android/src/main/java/com/renderrichtext/styles/ThematicBreakStyle.kt +23 -0
  121. package/android/src/main/java/com/renderrichtext/styles/UnderlineStyle.kt +17 -0
  122. package/android/src/main/java/com/renderrichtext/styles/VideoStyle.kt +31 -0
  123. package/android/src/main/java/com/renderrichtext/utils/common/BorderStyleUtils.kt +86 -0
  124. package/android/src/main/java/com/renderrichtext/utils/common/BreakStrategyUtils.kt +32 -0
  125. package/android/src/main/java/com/renderrichtext/utils/common/CodeBlockHighlighter.kt +36 -0
  126. package/android/src/main/java/com/renderrichtext/utils/common/CodeBlockNode.kt +42 -0
  127. package/android/src/main/java/com/renderrichtext/utils/common/EllipsizeUtils.kt +27 -0
  128. package/android/src/main/java/com/renderrichtext/utils/common/EnrichedTiptapAncestorUtils.kt +10 -0
  129. package/android/src/main/java/com/renderrichtext/utils/common/FeatureFlags.kt +9 -0
  130. package/android/src/main/java/com/renderrichtext/utils/common/LinkRecognitionProps.kt +31 -0
  131. package/android/src/main/java/com/renderrichtext/utils/common/LinkRegexConfig.kt +56 -0
  132. package/android/src/main/java/com/renderrichtext/utils/common/MotionPreferences.kt +18 -0
  133. package/android/src/main/java/com/renderrichtext/utils/common/ReadableMapExtensions.kt +28 -0
  134. package/android/src/main/java/com/renderrichtext/utils/common/TiptapViewManagerUtils.kt +242 -0
  135. package/android/src/main/java/com/renderrichtext/utils/common/layout/RTLUtils.kt +6 -0
  136. package/android/src/main/java/com/renderrichtext/utils/common/serialization/TiptapASTSerializer.kt +368 -0
  137. package/android/src/main/java/com/renderrichtext/utils/text/ImageCache.kt +88 -0
  138. package/android/src/main/java/com/renderrichtext/utils/text/ImageDownloader.kt +203 -0
  139. package/android/src/main/java/com/renderrichtext/utils/text/LocalImageLoader.kt +167 -0
  140. package/android/src/main/java/com/renderrichtext/utils/text/TailFadeInAnimator.kt +84 -0
  141. package/android/src/main/java/com/renderrichtext/utils/text/conversion/HTMLGenerator.kt +1105 -0
  142. package/android/src/main/java/com/renderrichtext/utils/text/conversion/TiptapExtractor.kt +423 -0
  143. package/android/src/main/java/com/renderrichtext/utils/text/extensions/ParagraphUtils.kt +9 -0
  144. package/android/src/main/java/com/renderrichtext/utils/text/extensions/SpannableExtensions.kt +9 -0
  145. package/android/src/main/java/com/renderrichtext/utils/text/extensions/TextPaintExtensions.kt +76 -0
  146. package/android/src/main/java/com/renderrichtext/utils/text/interaction/CheckboxTouchHelper.kt +61 -0
  147. package/android/src/main/java/com/renderrichtext/utils/text/interaction/TaskListTapUtils.kt +286 -0
  148. package/android/src/main/java/com/renderrichtext/utils/text/span/ApplyLineHeight.kt +39 -0
  149. package/android/src/main/java/com/renderrichtext/utils/text/span/BlockSpacing.kt +142 -0
  150. package/android/src/main/java/com/renderrichtext/utils/text/span/SpanFlags.kt +43 -0
  151. package/android/src/main/java/com/renderrichtext/utils/text/span/WidthAwareSpans.kt +30 -0
  152. package/android/src/main/java/com/renderrichtext/utils/text/view/CodeBlockPressHost.kt +15 -0
  153. package/android/src/main/java/com/renderrichtext/utils/text/view/ImagePressHost.kt +19 -0
  154. package/android/src/main/java/com/renderrichtext/utils/text/view/LinkEvents.kt +88 -0
  155. package/android/src/main/java/com/renderrichtext/utils/text/view/LinkLongPressMovementMethod.kt +449 -0
  156. package/android/src/main/java/com/renderrichtext/utils/text/view/SelectionActionMode.kt +235 -0
  157. package/android/src/main/java/com/renderrichtext/utils/text/view/TextSelectionColors.kt +48 -0
  158. package/android/src/main/java/com/renderrichtext/utils/text/view/TextViewSetup.kt +119 -0
  159. package/android/src/main/java/com/renderrichtext/views/ContextMenuPopup.kt +217 -0
  160. package/android/src/main/java/com/renderrichtext/views/CopyGlyph.kt +101 -0
  161. package/android/src/main/java/com/renderrichtext/views/WrapGlyph.kt +40 -0
  162. package/android/src/main/jni/CMakeLists.txt +52 -0
  163. package/android/src/main/jni/react/renderer/components/RichTextSpec/ComponentDescriptors.h +30 -0
  164. package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextComponentDescriptor.h +29 -0
  165. package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextMeasurementManager.cpp +45 -0
  166. package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextMeasurementManager.h +21 -0
  167. package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextShadowNode.cpp +38 -0
  168. package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextShadowNode.h +53 -0
  169. package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextState.cpp +9 -0
  170. package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextState.h +24 -0
  171. package/android/src/main/jni/react/renderer/components/RichTextSpec/conversions.h +40 -0
  172. package/cpp/parser/TiptapASTNode.hpp +68 -0
  173. package/cpp/parser/TiptapParser.cpp +233 -0
  174. package/cpp/parser/TiptapParser.hpp +13 -0
  175. package/cpp/vendor/nlohmann/json.hpp +24765 -0
  176. package/ios/EnrichedTiptapText.h +27 -0
  177. package/ios/EnrichedTiptapText.mm +1222 -0
  178. package/ios/attachments/ENRMImageAttachment.h +51 -0
  179. package/ios/attachments/ENRMImageAttachment.m +398 -0
  180. package/ios/attachments/ENRMLinkPillAttachment.h +47 -0
  181. package/ios/attachments/ENRMLinkPillAttachment.m +324 -0
  182. package/ios/attachments/ENRMLinkPillIconCache.h +28 -0
  183. package/ios/attachments/ENRMLinkPillIconCache.m +181 -0
  184. package/ios/attachments/ENRMLinkPillText.h +27 -0
  185. package/ios/attachments/ENRMLinkPillText.m +118 -0
  186. package/ios/attachments/ENRMMathInlineAttachment.h +7 -0
  187. package/ios/attachments/ENRMMathInlineAttachment.m +4 -0
  188. package/ios/attachments/ThematicBreakAttachment.h +15 -0
  189. package/ios/attachments/ThematicBreakAttachment.m +33 -0
  190. package/ios/internals/ENRMViewFreeMeasurement.h +208 -0
  191. package/ios/internals/EnrichedTiptapTextComponentDescriptor.h +19 -0
  192. package/ios/internals/EnrichedTiptapTextShadowNode.h +43 -0
  193. package/ios/internals/EnrichedTiptapTextShadowNode.mm +69 -0
  194. package/ios/internals/EnrichedTiptapTextState.h +24 -0
  195. package/ios/internals/MeasurementCache.h +308 -0
  196. package/ios/internals/ShadowMeasurementUtils.h +145 -0
  197. package/ios/parser/ENRMTextLinkAttributes.h +7 -0
  198. package/ios/parser/ENRMTiptapParser.h +33 -0
  199. package/ios/parser/ENRMTiptapParser.mm +73 -0
  200. package/ios/parser/TiptapASTNode.h +57 -0
  201. package/ios/parser/TiptapASTNode.m +52 -0
  202. package/ios/parser/TiptapParserBridge.mm +179 -0
  203. package/ios/renderer/AttributedRenderer.h +23 -0
  204. package/ios/renderer/AttributedRenderer.m +229 -0
  205. package/ios/renderer/BaseRenderer.h +33 -0
  206. package/ios/renderer/BaseRenderer.m +46 -0
  207. package/ios/renderer/BaselineShiftTextAttributes.h +10 -0
  208. package/ios/renderer/BaselineShiftTextAttributes.m +26 -0
  209. package/ios/renderer/BlankLineRenderer.h +4 -0
  210. package/ios/renderer/BlankLineRenderer.m +51 -0
  211. package/ios/renderer/BlockquoteRenderer.h +6 -0
  212. package/ios/renderer/BlockquoteRenderer.m +258 -0
  213. package/ios/renderer/CodeBlockRenderer.h +9 -0
  214. package/ios/renderer/CodeBlockRenderer.m +99 -0
  215. package/ios/renderer/CodeRenderer.h +9 -0
  216. package/ios/renderer/CodeRenderer.m +69 -0
  217. package/ios/renderer/ENRMBlockquoteTextRenderer.h +25 -0
  218. package/ios/renderer/ENRMBlockquoteTextRenderer.m +48 -0
  219. package/ios/renderer/EmphasisRenderer.h +5 -0
  220. package/ios/renderer/EmphasisRenderer.m +100 -0
  221. package/ios/renderer/FactoidRenderer.h +9 -0
  222. package/ios/renderer/FactoidRenderer.m +130 -0
  223. package/ios/renderer/HeadingRenderer.h +6 -0
  224. package/ios/renderer/HeadingRenderer.m +103 -0
  225. package/ios/renderer/HighlightRenderer.h +7 -0
  226. package/ios/renderer/HighlightRenderer.m +33 -0
  227. package/ios/renderer/LinkRenderer.h +6 -0
  228. package/ios/renderer/LinkRenderer.m +158 -0
  229. package/ios/renderer/ListItemRenderer.h +24 -0
  230. package/ios/renderer/ListItemRenderer.m +283 -0
  231. package/ios/renderer/ListRenderer.h +13 -0
  232. package/ios/renderer/ListRenderer.m +126 -0
  233. package/ios/renderer/MentionRenderer.h +9 -0
  234. package/ios/renderer/MentionRenderer.m +96 -0
  235. package/ios/renderer/NodeRenderer.h +8 -0
  236. package/ios/renderer/ParagraphRenderer.h +6 -0
  237. package/ios/renderer/ParagraphRenderer.m +85 -0
  238. package/ios/renderer/RenderContext.h +145 -0
  239. package/ios/renderer/RenderContext.m +403 -0
  240. package/ios/renderer/RendererFactory.h +12 -0
  241. package/ios/renderer/RendererFactory.m +158 -0
  242. package/ios/renderer/StrikethroughRenderer.h +5 -0
  243. package/ios/renderer/StrikethroughRenderer.m +30 -0
  244. package/ios/renderer/StrongRenderer.h +5 -0
  245. package/ios/renderer/StrongRenderer.m +88 -0
  246. package/ios/renderer/TextRenderer.h +6 -0
  247. package/ios/renderer/TextRenderer.m +18 -0
  248. package/ios/renderer/ThematicBreakRenderer.h +4 -0
  249. package/ios/renderer/ThematicBreakRenderer.m +42 -0
  250. package/ios/renderer/UnderlineRenderer.h +4 -0
  251. package/ios/renderer/UnderlineRenderer.m +41 -0
  252. package/ios/styles/ENRMFontSlot.h +12 -0
  253. package/ios/styles/ENRMFontSlot.m +24 -0
  254. package/ios/styles/StyleConfig.h +488 -0
  255. package/ios/styles/StyleConfig.mm +2820 -0
  256. package/ios/utils/AccessibilityInfo.h +35 -0
  257. package/ios/utils/AccessibilityInfo.m +24 -0
  258. package/ios/utils/BlockquoteBorder.h +26 -0
  259. package/ios/utils/BlockquoteBorder.m +294 -0
  260. package/ios/utils/CodeBackground.h +19 -0
  261. package/ios/utils/CodeBackground.m +197 -0
  262. package/ios/utils/CodeBlockBackground.h +17 -0
  263. package/ios/utils/CodeBlockBackground.m +103 -0
  264. package/ios/utils/ContextMenuUtils.h +76 -0
  265. package/ios/utils/ContextMenuUtils.mm +75 -0
  266. package/ios/utils/ENRMAccessibilityLabels.h +40 -0
  267. package/ios/utils/ENRMAccessibilityLabels.m +5 -0
  268. package/ios/utils/ENRMAsyncRenderCoordinator.h +24 -0
  269. package/ios/utils/ENRMAsyncRenderCoordinator.m +37 -0
  270. package/ios/utils/ENRMAtomicSize.h +65 -0
  271. package/ios/utils/ENRMCodeBlockContent.h +37 -0
  272. package/ios/utils/ENRMCodeBlockContent.mm +89 -0
  273. package/ios/utils/ENRMFeatureFlags.h +25 -0
  274. package/ios/utils/ENRMImageDownloader.h +30 -0
  275. package/ios/utils/ENRMImageDownloader.m +168 -0
  276. package/ios/utils/ENRMLatexErrorCoordinator.h +27 -0
  277. package/ios/utils/ENRMLatexErrorCoordinator.mm +75 -0
  278. package/ios/utils/ENRMLatexErrorReporting.h +13 -0
  279. package/ios/utils/ENRMLinkContextMenus.h +93 -0
  280. package/ios/utils/ENRMLinkContextMenus.m +178 -0
  281. package/ios/utils/ENRMLinkRegexConfig.h +30 -0
  282. package/ios/utils/ENRMLinkRegexConfig.mm +104 -0
  283. package/ios/utils/ENRMLinkRegexProps.h +23 -0
  284. package/ios/utils/ENRMLocalImageLoader.h +35 -0
  285. package/ios/utils/ENRMLocalImageLoader.m +111 -0
  286. package/ios/utils/ENRMMenuAction.h +27 -0
  287. package/ios/utils/ENRMMenuAction.m +33 -0
  288. package/ios/utils/ENRMSpoilerOverlayManager.h +15 -0
  289. package/ios/utils/ENRMSpoilerOverlayManager.m +19 -0
  290. package/ios/utils/ENRMSpoilerTapUtils.h +6 -0
  291. package/ios/utils/ENRMSpoilerTapUtils.m +11 -0
  292. package/ios/utils/ENRMTailFadeInAnimator.h +16 -0
  293. package/ios/utils/ENRMTailFadeInAnimator.m +161 -0
  294. package/ios/utils/ENRMTextHitTest.h +23 -0
  295. package/ios/utils/ENRMTextHitTest.m +20 -0
  296. package/ios/utils/ENRMTextInteractionUtils.h +20 -0
  297. package/ios/utils/ENRMTextInteractionUtils.m +15 -0
  298. package/ios/utils/ENRMTextRenderer.h +38 -0
  299. package/ios/utils/ENRMTextRenderer.m +54 -0
  300. package/ios/utils/ENRMTextViewSetup.h +132 -0
  301. package/ios/utils/ENRMUIKit.h +429 -0
  302. package/ios/utils/EditMenuUtils.h +105 -0
  303. package/ios/utils/EditMenuUtils.m +143 -0
  304. package/ios/utils/FactoidBackground.h +20 -0
  305. package/ios/utils/FactoidBackground.m +161 -0
  306. package/ios/utils/FontScaleObserver.h +10 -0
  307. package/ios/utils/FontScaleObserver.m +55 -0
  308. package/ios/utils/FontUtils.h +31 -0
  309. package/ios/utils/FontUtils.m +63 -0
  310. package/ios/utils/HTMLGenerator.h +25 -0
  311. package/ios/utils/HTMLGenerator.m +1041 -0
  312. package/ios/utils/HeightUpdateUtils.h +25 -0
  313. package/ios/utils/ImageRequestHeaderUtils.h +35 -0
  314. package/ios/utils/LastElementUtils.h +97 -0
  315. package/ios/utils/LinkContextMenuUtils.h +55 -0
  316. package/ios/utils/LinkPillContentUtils.h +46 -0
  317. package/ios/utils/LinkTapUtils.h +56 -0
  318. package/ios/utils/LinkTapUtils.m +139 -0
  319. package/ios/utils/ListMarkerDrawer.h +15 -0
  320. package/ios/utils/ListMarkerDrawer.m +239 -0
  321. package/ios/utils/MentionBackground.h +26 -0
  322. package/ios/utils/MentionBackground.m +86 -0
  323. package/ios/utils/ParagraphStyleUtils.h +87 -0
  324. package/ios/utils/ParagraphStyleUtils.m +484 -0
  325. package/ios/utils/PasteboardUtils.h +48 -0
  326. package/ios/utils/PasteboardUtils.m +166 -0
  327. package/ios/utils/RTFExportUtils.h +24 -0
  328. package/ios/utils/RTFExportUtils.m +299 -0
  329. package/ios/utils/RuntimeKeys.h +44 -0
  330. package/ios/utils/RuntimeKeys.m +13 -0
  331. package/ios/utils/SelectionColorUtils.h +14 -0
  332. package/ios/utils/StylePropsUtils.h +1340 -0
  333. package/ios/utils/TaskListTapUtils.h +6 -0
  334. package/ios/utils/TaskListTapUtils.m +14 -0
  335. package/ios/utils/TextViewLayoutManager.h +14 -0
  336. package/ios/utils/TextViewLayoutManager.mm +198 -0
  337. package/ios/utils/TiptapAccessibilityElementBuilder.h +43 -0
  338. package/ios/utils/TiptapAccessibilityElementBuilder.m +432 -0
  339. package/ios/utils/TiptapExtractor.h +17 -0
  340. package/ios/utils/TiptapExtractor.m +367 -0
  341. package/ios/views/ENRMTiptapTextView.h +25 -0
  342. package/ios/views/ENRMTiptapTextView.m +247 -0
  343. package/package.json +70 -6
  344. package/react-native.config.js +10 -0
  345. package/src/EnrichedTiptapTextNativeComponent.ts +739 -0
  346. package/src/RichText.tsx +164 -0
  347. package/src/admonitionDefaults.ts +58 -0
  348. package/src/darkModeTextStyle.ts +99 -0
  349. package/src/headingDefaults.ts +21 -0
  350. package/src/index.tsx +4 -0
  351. package/src/linkVariantUtils.ts +120 -0
  352. package/src/normalizeTiptapStyle.ts +397 -0
  353. package/src/rn-globals.d.ts +1 -0
  354. package/src/styleUtils.ts +107 -0
  355. package/src/types/TiptapStyle.ts +532 -0
  356. package/src/types/TiptapStyleInternal.ts +299 -0
  357. package/src/types/linkPill.ts +9 -0
  358. package/src/utils/isDev.ts +4 -0
@@ -0,0 +1,532 @@
1
+ type TextAlign = 'auto' | 'left' | 'right' | 'center' | 'justify';
2
+
3
+ type ImageResizeMode = 'contain' | 'cover' | 'stretch' | 'center' | 'none';
4
+
5
+ interface BaseBlockStyle {
6
+ fontSize?: number;
7
+ fontFamily?: string;
8
+ fontWeight?: string;
9
+ color?: string;
10
+ marginTop?: number;
11
+ marginBottom?: number;
12
+ lineHeight?: number;
13
+ }
14
+
15
+ interface ParagraphStyle extends BaseBlockStyle {
16
+ textAlign?: TextAlign;
17
+ }
18
+
19
+ interface HeadingStyle extends BaseBlockStyle {
20
+ textAlign?: TextAlign;
21
+ }
22
+
23
+ /**
24
+ * Per-type color overrides for a GitHub admonition/alert.
25
+ */
26
+ export interface AdmonitionColors {
27
+ /**
28
+ * Tints the left accent bar, the title label and the icon for this type.
29
+ * Defaults to the GitHub palette (note=blue, tip=green, important=purple,
30
+ * warning=amber, caution=red).
31
+ */
32
+ color?: string;
33
+ /**
34
+ * Fills the callout background. Omitted or empty means transparent (no fill).
35
+ */
36
+ backgroundColor?: string;
37
+ }
38
+
39
+ /**
40
+ * Color theming for GitHub admonitions/alerts, keyed by type. Nested under
41
+ * `blockquote` because admonitions inherit the blockquote geometry (borderWidth,
42
+ * gapWidth, padding, borderRadius, font, spacing) and only override colors.
43
+ * Requires `flavor="github"` and `md4cFlags.admonitions` enabled (both default on).
44
+ */
45
+ export interface AdmonitionsStyle {
46
+ note?: AdmonitionColors;
47
+ tip?: AdmonitionColors;
48
+ important?: AdmonitionColors;
49
+ warning?: AdmonitionColors;
50
+ caution?: AdmonitionColors;
51
+ }
52
+
53
+ interface BlockquoteStyle extends BaseBlockStyle {
54
+ borderColor?: string;
55
+ borderWidth?: number;
56
+ gapWidth?: number;
57
+ backgroundColor?: string;
58
+ borderRadius?: number;
59
+ /**
60
+ * Padding inside the quote, on every side.
61
+ * @default 10
62
+ */
63
+ padding?: number;
64
+ admonitions?: AdmonitionsStyle;
65
+ }
66
+
67
+ interface ListStyle extends BaseBlockStyle {
68
+ bulletColor?: string;
69
+ bulletSize?: number;
70
+ /**
71
+ * Minimum reserved marker column width applied uniformly to bullet, numbered,
72
+ * and task lists. `0` (the default) means no minimum: bullet and numbered
73
+ * lists share the width of a two-digit marker (`99.`), and task lists use
74
+ * the checkbox width.
75
+ */
76
+ markerMinWidth?: number;
77
+ markerColor?: string;
78
+ markerFontWeight?: string;
79
+ gapWidth?: number;
80
+ marginLeft?: number;
81
+ /**
82
+ * Vertical spacing between consecutive list items, including nested ones.
83
+ * Adds no space above the first item or below the last one — the outer
84
+ * edges are still controlled by `marginTop`/`marginBottom`.
85
+ * @default 0
86
+ */
87
+ itemSpacing?: number;
88
+ }
89
+
90
+ /**
91
+ * Per-token syntax highlight colors for fenced code blocks, keyed on the
92
+ * tree-sitter highlight token types. Any key omitted falls back to the default
93
+ * palette (Operator/Punctuation/Variable/Embedded inherit the code block's
94
+ * base `color`). Colors only take visible effect when the optional syntax
95
+ * highlighting module is compiled in; otherwise code blocks render uncolored.
96
+ */
97
+ interface CodeBlockSyntaxColors {
98
+ keyword?: string;
99
+ /** Color for operator tokens (e.g. `+`, `=>`). */
100
+ operator?: string;
101
+ punctuation?: string;
102
+ string?: string;
103
+ number?: string;
104
+ constant?: string;
105
+ comment?: string;
106
+ function?: string;
107
+ type?: string;
108
+ variable?: string;
109
+ property?: string;
110
+ tag?: string;
111
+ attribute?: string;
112
+ embedded?: string;
113
+ }
114
+
115
+ interface CodeBlockStyle extends BaseBlockStyle {
116
+ backgroundColor?: string;
117
+ borderColor?: string;
118
+ borderRadius?: number;
119
+ borderWidth?: number;
120
+ padding?: number;
121
+ syntaxColors?: CodeBlockSyntaxColors;
122
+ }
123
+
124
+ export interface LinkStyle {
125
+ fontFamily?: string;
126
+ color?: string;
127
+ underline?: boolean;
128
+ backgroundColor?: string;
129
+ }
130
+
131
+ export type LinkVariantStyle = LinkStyle & {
132
+ /** Native atomic presentation. True uses defaults; an object enables overrides. */
133
+ pill?: boolean | LinkPillStyle;
134
+ };
135
+
136
+ export interface LinkPillStyle {
137
+ /** Visible text, also included in the accessible name alongside original link text. */
138
+ label?: string;
139
+ /** Local file, bundled asset or `http(s)` URL. A source that fails shows no icon. */
140
+ iconUri?: string;
141
+ /**
142
+ * Tints this variant's icon, keeping its alpha. Omit to keep the image's own colors.
143
+ * Icons set per link through `linkPillContent` are not tinted by it.
144
+ */
145
+ iconTintColor?: string;
146
+ borderRadius?: number;
147
+ paddingHorizontal?: number;
148
+ paddingVertical?: number;
149
+ /**
150
+ * Minimum line height of a block (paragraph, list item, heading, quote) that holds
151
+ * this pill. It applies to every line of that block and only ever raises the block's
152
+ * own `lineHeight`; it does not size the pill. Use it to keep pills on consecutive
153
+ * lines apart without loosening text that has no pills. Unset by default.
154
+ *
155
+ * For streamed text prefer the block's own `lineHeight`: this one takes effect when a
156
+ * link completes and becomes a pill, which moves the text around it.
157
+ */
158
+ lineHeight?: number;
159
+ borderWidth?: number;
160
+ borderColor?: string;
161
+ /** Maximum width in points/DIP. 0 uses the available text width. */
162
+ maxWidth?: number;
163
+ }
164
+
165
+ interface StrongStyle {
166
+ fontFamily?: string;
167
+ /**
168
+ * Controls whether bold is applied on top of the custom fontFamily.
169
+ * Only relevant when fontFamily is set. Defaults to 'bold'.
170
+ * Set to 'normal' to use the font face as-is without adding bold.
171
+ */
172
+ fontWeight?: 'bold' | 'normal';
173
+ color?: string;
174
+ }
175
+
176
+ interface EmphasisStyle {
177
+ fontFamily?: string;
178
+ /**
179
+ * Controls whether italic is applied on top of the custom fontFamily.
180
+ * Only relevant when fontFamily is set. Defaults to 'italic'.
181
+ * Set to 'normal' to use the font face as-is without adding italic.
182
+ */
183
+ fontStyle?: 'italic' | 'normal';
184
+ color?: string;
185
+ }
186
+
187
+ interface StrikethroughStyle {
188
+ /**
189
+ * Color of the strikethrough line.
190
+ * @platform iOS, web
191
+ */
192
+ color?: string;
193
+ }
194
+
195
+ interface UnderlineStyle {
196
+ /**
197
+ * Color of the underline.
198
+ * @platform iOS, web
199
+ */
200
+ color?: string;
201
+ }
202
+
203
+ interface CodeStyle {
204
+ fontFamily?: string;
205
+ fontSize?: number;
206
+ color?: string;
207
+ backgroundColor?: string;
208
+ borderColor?: string;
209
+ }
210
+
211
+ interface MentionStyle {
212
+ /**
213
+ * Text color of the `@label` chip.
214
+ * @default '#1D4ED8'
215
+ */
216
+ color?: string;
217
+ /**
218
+ * Capsule fill behind the label.
219
+ * @default '#DBEAFE'
220
+ */
221
+ backgroundColor?: string;
222
+ }
223
+
224
+ interface FactoidStyle {
225
+ /**
226
+ * Text color. A `color` attribute on the factoid node replaces this.
227
+ * @default '#205710'
228
+ */
229
+ color?: string;
230
+ /**
231
+ * Background color. A `backgroundColor` attribute on the node replaces this.
232
+ * @default '#9bfc6e'
233
+ */
234
+ backgroundColor?: string;
235
+ /**
236
+ * Border color. A `borderColor` attribute on the node replaces this.
237
+ * @default '#23670d'
238
+ */
239
+ borderColor?: string;
240
+ }
241
+
242
+ interface ImageStyle {
243
+ height?: number;
244
+ /**
245
+ * Maximum height the image is fitted into, preserving aspect ratio. When set,
246
+ * this replaces `height` as the primary sizing knob. Ignored when `aspectRatio`
247
+ * is set. Sizing precedence: `aspectRatio` > `maxHeight` > `height`.
248
+ */
249
+ maxHeight?: number;
250
+ /**
251
+ * Width / height ratio (e.g. `16 / 9`). The image fills the available width and
252
+ * its height is derived from this ratio, ignoring `height`/`maxHeight`.
253
+ * Sizing precedence: `aspectRatio` > `maxHeight` > `height`.
254
+ */
255
+ aspectRatio?: number;
256
+ /**
257
+ * How the image fills its box, analogous to React Native `resizeMode` / CSS
258
+ * `object-fit`. Applies whenever set explicitly, including with a fixed
259
+ * `height` box. When omitted, block images keep the legacy fill-width
260
+ * behavior, unless `maxHeight` or `aspectRatio` is set — then it defaults
261
+ * to `'cover'`.
262
+ */
263
+ resizeMode?: ImageResizeMode;
264
+ borderRadius?: number;
265
+ marginTop?: number;
266
+ marginBottom?: number;
267
+ }
268
+
269
+ interface VideoStyle {
270
+ marginTop?: number;
271
+ marginBottom?: number;
272
+ borderRadius?: number;
273
+ aspectRatio?: number;
274
+ backgroundColor?: string;
275
+ }
276
+
277
+ interface InlineImageStyle {
278
+ size?: number;
279
+ }
280
+
281
+ interface ThematicBreakStyle {
282
+ color?: string;
283
+ height?: number;
284
+ marginTop?: number;
285
+ marginBottom?: number;
286
+ }
287
+
288
+ interface TableStyle extends BaseBlockStyle {
289
+ headerFontFamily?: string;
290
+ headerBackgroundColor?: string;
291
+ headerTextColor?: string;
292
+ rowEvenBackgroundColor?: string;
293
+ rowOddBackgroundColor?: string;
294
+ borderColor?: string;
295
+ borderWidth?: number;
296
+ borderRadius?: number;
297
+ cellPaddingHorizontal?: number;
298
+ cellPaddingVertical?: number;
299
+ horizontalOverflow?: number;
300
+ /**
301
+ * Horizontal alignment of the whole table within the container. Only applies
302
+ * when the table is narrower than the container; tables that overflow and
303
+ * scroll always start at the table's beginning. When unset, tables keep the
304
+ * legacy start-aligned placement. On web, setting any value (including
305
+ * 'left') also makes the table shrink to fit its content instead of filling
306
+ * the container width.
307
+ */
308
+ align?: 'left' | 'center' | 'right';
309
+ }
310
+
311
+ interface TaskListStyle {
312
+ checkedColor?: string;
313
+ borderColor?: string;
314
+ checkboxSize?: number;
315
+ checkboxBorderRadius?: number;
316
+ checkmarkColor?: string;
317
+ checkedTextColor?: string;
318
+ checkedStrikethrough?: boolean;
319
+ }
320
+
321
+ interface MathStyle {
322
+ fontSize?: number;
323
+ color?: string;
324
+ backgroundColor?: string;
325
+ padding?: number;
326
+ marginTop?: number;
327
+ marginBottom?: number;
328
+ textAlign?: 'left' | 'center' | 'right';
329
+ }
330
+
331
+ interface InlineMathStyle {
332
+ color?: string;
333
+ }
334
+
335
+ interface SpoilerParticlesStyle {
336
+ /**
337
+ * Number of particles per 100x100pt area.
338
+ * Higher values = denser, more opaque concealment.
339
+ * @default 8
340
+ */
341
+ density?: number;
342
+ /**
343
+ * Base speed of particle drift in points per second.
344
+ * @default 20
345
+ */
346
+ speed?: number;
347
+ }
348
+
349
+ interface SpoilerSolidStyle {
350
+ /**
351
+ * Corner radius of the solid spoiler overlay rectangles.
352
+ * @default 4
353
+ */
354
+ borderRadius?: number;
355
+ }
356
+
357
+ interface SpoilerStyle {
358
+ /** Color used by all presets for the spoiler overlay. */
359
+ color?: string;
360
+ /** Particle-preset tuning (only applies when spoilerOverlay='particles'). */
361
+ particles?: SpoilerParticlesStyle;
362
+ /** Solid-preset tuning (only applies when spoilerOverlay='solid'). */
363
+ solid?: SpoilerSolidStyle;
364
+ }
365
+
366
+ interface SuperscriptStyle {
367
+ /**
368
+ * Font size as a fraction of the surrounding text size.
369
+ * @default 0.75
370
+ */
371
+ fontScale?: number;
372
+ /**
373
+ * Vertical shift as a fraction of the surrounding text size.
374
+ * Positive values shift the text upward.
375
+ * @default 0.35
376
+ */
377
+ baselineOffsetScale?: number;
378
+ }
379
+
380
+ interface SubscriptStyle {
381
+ /**
382
+ * Font size as a fraction of the surrounding text size.
383
+ * @default 0.75
384
+ */
385
+ fontScale?: number;
386
+ /**
387
+ * Vertical shift as a fraction of the surrounding text size.
388
+ * Positive values shift the text downward.
389
+ * @default 0.20
390
+ */
391
+ baselineOffsetScale?: number;
392
+ }
393
+
394
+ interface HighlightStyle {
395
+ /**
396
+ * Text color inside the highlight span.
397
+ * Inherits the surrounding block color when omitted.
398
+ */
399
+ color?: string;
400
+ /**
401
+ * Background color of the highlight span.
402
+ * @default '#FEF08A'
403
+ */
404
+ backgroundColor?: string;
405
+ }
406
+
407
+ export interface TiptapStyle {
408
+ paragraph?: ParagraphStyle;
409
+ h1?: HeadingStyle;
410
+ h2?: HeadingStyle;
411
+ h3?: HeadingStyle;
412
+ h4?: HeadingStyle;
413
+ h5?: HeadingStyle;
414
+ h6?: HeadingStyle;
415
+ blockquote?: BlockquoteStyle;
416
+ list?: ListStyle;
417
+ codeBlock?: CodeBlockStyle;
418
+ link?: LinkStyle;
419
+ /**
420
+ * Per-URL-pattern link style overrides. Each key is a regex string tested
421
+ * against the full URL. Patterns are normalized longest-first so more
422
+ * specific patterns take precedence.
423
+ *
424
+ * `color` and `underline` inherit from the base `link` style when omitted.
425
+ * `backgroundColor` defaults to `transparent`.
426
+ * `fontFamily` inherits the base `link` family and can be overridden per variant.
427
+ * `pill: true` enables atomic native presentation with optional label, icon, and geometry.
428
+ *
429
+ * @example
430
+ * linkVariants: {
431
+ * '^user:': { color: '#1A73E8', backgroundColor: '#E8F0FE' },
432
+ * '^channel:': { color: '#137333', backgroundColor: '#E6F4EA' },
433
+ * '^cite:': { color: '#B06000', backgroundColor: '#FEF3C7' },
434
+ * // path-based: matches any https URL with /user/ in the path
435
+ * '\\/user\\/': { color: '#4F46E5', backgroundColor: '#EEF2FF' },
436
+ * }
437
+ */
438
+ linkVariants?: Record<string, LinkVariantStyle>;
439
+ strong?: StrongStyle;
440
+ em?: EmphasisStyle;
441
+ strikethrough?: StrikethroughStyle;
442
+ underline?: UnderlineStyle;
443
+ code?: CodeStyle;
444
+ /**
445
+ * Inline `@mention` chip. `color` is the label, `backgroundColor` is the capsule.
446
+ * A mention is an atom: it has no children, and the text is `@` plus `label`
447
+ * (or `id` when `label` is blank).
448
+ */
449
+ mention?: MentionStyle;
450
+ factoid?: FactoidStyle;
451
+ image?: ImageStyle;
452
+ video?: VideoStyle;
453
+ inlineImage?: InlineImageStyle;
454
+ thematicBreak?: ThematicBreakStyle;
455
+ table?: TableStyle;
456
+ taskList?: TaskListStyle;
457
+ math?: MathStyle;
458
+ inlineMath?: InlineMathStyle;
459
+ spoiler?: SpoilerStyle;
460
+ superscript?: SuperscriptStyle;
461
+ subscript?: SubscriptStyle;
462
+ highlight?: HighlightStyle;
463
+ }
464
+
465
+ /**
466
+ * MD4C parser flags configuration.
467
+ * Controls how the Tiptap parser interprets certain syntax.
468
+ */
469
+ export interface Md4cFlags {
470
+ /**
471
+ * Enable underline syntax support (_text_).
472
+ * When enabled, underscores are treated as underline markers.
473
+ * When disabled, underscores are treated as emphasis markers (same as asterisks).
474
+ * @default false
475
+ */
476
+ underline?: boolean;
477
+ /**
478
+ * Enable superscript span parsing (^text^).
479
+ * When enabled, the parser recognizes caret superscript delimiters.
480
+ * When disabled, carets are treated as plain text.
481
+ * @default false
482
+ */
483
+ superscript?: boolean;
484
+ /**
485
+ * Enable subscript span parsing (~text~).
486
+ * When enabled, single tildes are treated as subscript markers.
487
+ * When disabled, single and double tildes are treated as strikethrough markers.
488
+ * @default false
489
+ */
490
+ subscript?: boolean;
491
+ /**
492
+ * Enable LaTeX math span parsing ($..$ and $$..$$).
493
+ * When enabled, the parser recognizes LaTeX math delimiters.
494
+ * When disabled, dollar signs are treated as plain text.
495
+ * Requires the optional RaTeX native dependency (iOS and Android).
496
+ * @default true
497
+ */
498
+ latexMath?: boolean;
499
+ /**
500
+ * Enable highlight span parsing (==text==).
501
+ * When enabled, double equals are treated as highlight markers.
502
+ * When disabled, equals signs are treated as plain text.
503
+ * @default false
504
+ */
505
+ highlight?: boolean;
506
+ /**
507
+ * Treat soft breaks (single newlines) as hard breaks (visible line breaks).
508
+ * When enabled, a single newline in the source renders as a line break
509
+ * instead of being collapsed to a space (CommonMark default).
510
+ * @default false
511
+ */
512
+ hardSoftBreaks?: boolean;
513
+ /**
514
+ * Preserve runs of consecutive blank lines from the source instead of
515
+ * collapsing them into a single paragraph break. Each blank line renders as
516
+ * one empty line, so the output keeps the exact line count that was typed.
517
+ * Extra block spacing still comes from the paragraph style - set the paragraph
518
+ * margins to 0 in tiptapStyle for spacing driven purely by blank lines.
519
+ * @default false
520
+ */
521
+ preserveBlankLines?: boolean;
522
+ /**
523
+ * Enable GitHub-style admonitions/alerts (`> [!NOTE]`, `> [!TIP]`,
524
+ * `> [!IMPORTANT]`, `> [!WARNING]`, `> [!CAUTION]`).
525
+ * When enabled, such blockquotes render as themed callouts with an icon +
526
+ * title header (see `tiptapStyle.blockquote.admonitions`).
527
+ * Only takes effect with `flavor="github"`; forced off for `flavor="commonmark"`,
528
+ * where the syntax renders as a plain blockquote.
529
+ * @default true
530
+ */
531
+ admonitions?: boolean;
532
+ }