react-native-enriched-markdown-scaffold 0.6.0-scaffold.4

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 (678) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +53 -0
  3. package/ReactNativeEnrichedMarkdown.podspec +67 -0
  4. package/android/build.gradle +94 -0
  5. package/android/consumer-rules.pro +19 -0
  6. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerDelegate.java +87 -0
  7. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerInterface.java +37 -0
  8. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerDelegate.java +159 -0
  9. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerInterface.java +59 -0
  10. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerDelegate.java +87 -0
  11. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerInterface.java +37 -0
  12. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/ComponentDescriptors.cpp +22 -0
  13. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/ComponentDescriptors.h +24 -0
  14. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/EventEmitters.cpp +318 -0
  15. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/EventEmitters.h +259 -0
  16. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.cpp +375 -0
  17. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.h +5174 -0
  18. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/ShadowNodes.cpp +17 -0
  19. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/ShadowNodes.h +23 -0
  20. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/States.cpp +16 -0
  21. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/States.h +20 -0
  22. package/android/gradle.properties +5 -0
  23. package/android/src/main/AndroidManifest.xml +2 -0
  24. package/android/src/main/baseline-prof.txt +254 -0
  25. package/android/src/main/cpp/jni-adapter.cpp +264 -0
  26. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdown.kt +554 -0
  27. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownInternalText.kt +122 -0
  28. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownManager.kt +255 -0
  29. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownText.kt +363 -0
  30. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownTextLayoutManager.kt +15 -0
  31. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownTextManager.kt +253 -0
  32. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownTextPackage.kt +20 -0
  33. package/android/src/main/java/com/swmansion/enriched/markdown/MeasurementStore.kt +653 -0
  34. package/android/src/main/java/com/swmansion/enriched/markdown/accessibility/AccessibleMarkdownTextView.kt +33 -0
  35. package/android/src/main/java/com/swmansion/enriched/markdown/accessibility/MarkdownAccessibilityHelper.kt +482 -0
  36. package/android/src/main/java/com/swmansion/enriched/markdown/events/ContextMenuItemPressEvent.kt +28 -0
  37. package/android/src/main/java/com/swmansion/enriched/markdown/events/LinkLongPressEvent.kt +23 -0
  38. package/android/src/main/java/com/swmansion/enriched/markdown/events/LinkPressEvent.kt +23 -0
  39. package/android/src/main/java/com/swmansion/enriched/markdown/events/TaskListItemPressEvent.kt +26 -0
  40. package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputManager.kt +465 -0
  41. package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputView.kt +1066 -0
  42. package/android/src/main/java/com/swmansion/enriched/markdown/input/autolink/AutoDetectedLinkSpan.kt +29 -0
  43. package/android/src/main/java/com/swmansion/enriched/markdown/input/autolink/AutoLinkDetector.kt +188 -0
  44. package/android/src/main/java/com/swmansion/enriched/markdown/input/autolink/LinkRegexConfig.kt +9 -0
  45. package/android/src/main/java/com/swmansion/enriched/markdown/input/detection/DetectorPipeline.kt +40 -0
  46. package/android/src/main/java/com/swmansion/enriched/markdown/input/detection/TextDetector.kt +27 -0
  47. package/android/src/main/java/com/swmansion/enriched/markdown/input/detection/WordResult.kt +7 -0
  48. package/android/src/main/java/com/swmansion/enriched/markdown/input/detection/WordsUtils.kt +65 -0
  49. package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/InputConnectionWrapper.kt +69 -0
  50. package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/MarkdownEditableFactory.kt +15 -0
  51. package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/MarkdownTextWatcher.kt +41 -0
  52. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnCaretRectChangeEvent.kt +20 -0
  53. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnChangeMarkdownEvent.kt +22 -0
  54. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnChangeMentionEvent.kt +24 -0
  55. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnChangeSelectionEvent.kt +24 -0
  56. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnChangeStateEvent.kt +50 -0
  57. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnChangeTextEvent.kt +22 -0
  58. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnContextMenuItemPressEvent.kt +48 -0
  59. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnEndMentionEvent.kt +22 -0
  60. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnInputBlurEvent.kt +18 -0
  61. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnInputFocusEvent.kt +18 -0
  62. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnLinkDetectedEvent.kt +28 -0
  63. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnMathPressEvent.kt +36 -0
  64. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnRequestCaretRectResultEvent.kt +25 -0
  65. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnRequestMarkdownResultEvent.kt +24 -0
  66. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnStartMentionEvent.kt +22 -0
  67. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/FormattingStore.kt +192 -0
  68. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputFormatter.kt +117 -0
  69. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputParser.kt +117 -0
  70. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputRemend.kt +120 -0
  71. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/MarkdownSerializer.kt +176 -0
  72. package/android/src/main/java/com/swmansion/enriched/markdown/input/layout/InputEventEmitter.kt +216 -0
  73. package/android/src/main/java/com/swmansion/enriched/markdown/input/layout/InputLayoutManager.kt +28 -0
  74. package/android/src/main/java/com/swmansion/enriched/markdown/input/layout/InputMeasurementStore.kt +137 -0
  75. package/android/src/main/java/com/swmansion/enriched/markdown/input/math/MathChipController.kt +113 -0
  76. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/CaretRect.kt +17 -0
  77. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/FormattingRange.kt +10 -0
  78. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/InputFormatterStyle.kt +28 -0
  79. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/MathAtom.kt +7 -0
  80. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/MathChipStyle.kt +47 -0
  81. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/StyleType.kt +10 -0
  82. package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/BoldStyleHandler.kt +35 -0
  83. package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/ItalicStyleHandler.kt +35 -0
  84. package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/LinkStyleHandler.kt +75 -0
  85. package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/SpoilerStyleHandler.kt +36 -0
  86. package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/StrikethroughStyleHandler.kt +24 -0
  87. package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/StyleHandler.kt +18 -0
  88. package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/StyleMergingConfig.kt +10 -0
  89. package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/UnderlineStyleHandler.kt +24 -0
  90. package/android/src/main/java/com/swmansion/enriched/markdown/input/toolbar/InputContextMenu.kt +181 -0
  91. package/android/src/main/java/com/swmansion/enriched/markdown/parser/MarkdownASTNode.kt +43 -0
  92. package/android/src/main/java/com/swmansion/enriched/markdown/parser/Parser.kt +68 -0
  93. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/BaselineShiftRenderer.kt +44 -0
  94. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/BlockStyleContext.kt +152 -0
  95. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/BlockquoteRenderer.kt +87 -0
  96. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/CodeBlockRenderer.kt +104 -0
  97. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/CodeRenderer.kt +36 -0
  98. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/DocumentRenderer.kt +16 -0
  99. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/EmphasisRenderer.kt +27 -0
  100. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/HeadingRenderer.kt +71 -0
  101. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/HighlightRenderer.kt +25 -0
  102. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ImageRenderer.kt +61 -0
  103. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/LineBreakRenderer.kt +16 -0
  104. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/LinkRenderer.kt +29 -0
  105. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ListContextManager.kt +89 -0
  106. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ListItemRenderer.kt +127 -0
  107. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ListRenderer.kt +74 -0
  108. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/NodeRenderer.kt +161 -0
  109. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ParagraphRenderer.kt +75 -0
  110. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/Renderer.kt +113 -0
  111. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/SpanStyleCache.kt +134 -0
  112. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/SpoilerRenderer.kt +25 -0
  113. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/StrikethroughRenderer.kt +27 -0
  114. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/StrongRenderer.kt +27 -0
  115. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/SubscriptRenderer.kt +11 -0
  116. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/SuperscriptRenderer.kt +11 -0
  117. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/TextRenderer.kt +30 -0
  118. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ThematicBreakRenderer.kt +45 -0
  119. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/UnderlineRenderer.kt +27 -0
  120. package/android/src/main/java/com/swmansion/enriched/markdown/spans/BaseListSpan.kt +127 -0
  121. package/android/src/main/java/com/swmansion/enriched/markdown/spans/BaselineShiftSpan.kt +27 -0
  122. package/android/src/main/java/com/swmansion/enriched/markdown/spans/BlockquoteSpan.kt +152 -0
  123. package/android/src/main/java/com/swmansion/enriched/markdown/spans/CodeBackgroundSpan.kt +180 -0
  124. package/android/src/main/java/com/swmansion/enriched/markdown/spans/CodeBlockSpan.kt +196 -0
  125. package/android/src/main/java/com/swmansion/enriched/markdown/spans/CodeSpan.kt +32 -0
  126. package/android/src/main/java/com/swmansion/enriched/markdown/spans/EmphasisSpan.kt +42 -0
  127. package/android/src/main/java/com/swmansion/enriched/markdown/spans/FadeInSpan.kt +25 -0
  128. package/android/src/main/java/com/swmansion/enriched/markdown/spans/HeadingSpan.kt +38 -0
  129. package/android/src/main/java/com/swmansion/enriched/markdown/spans/HighlightSpan.kt +26 -0
  130. package/android/src/main/java/com/swmansion/enriched/markdown/spans/ImageSpan.kt +335 -0
  131. package/android/src/main/java/com/swmansion/enriched/markdown/spans/LineHeightSpan.kt +27 -0
  132. package/android/src/main/java/com/swmansion/enriched/markdown/spans/LinkSpan.kt +66 -0
  133. package/android/src/main/java/com/swmansion/enriched/markdown/spans/MarginBottomSpan.kt +76 -0
  134. package/android/src/main/java/com/swmansion/enriched/markdown/spans/MathModels.kt +18 -0
  135. package/android/src/main/java/com/swmansion/enriched/markdown/spans/OrderedListSpan.kt +85 -0
  136. package/android/src/main/java/com/swmansion/enriched/markdown/spans/SpoilerSpan.kt +33 -0
  137. package/android/src/main/java/com/swmansion/enriched/markdown/spans/StrikethroughSpan.kt +12 -0
  138. package/android/src/main/java/com/swmansion/enriched/markdown/spans/StrongSpan.kt +39 -0
  139. package/android/src/main/java/com/swmansion/enriched/markdown/spans/TaskListSpan.kt +134 -0
  140. package/android/src/main/java/com/swmansion/enriched/markdown/spans/TextSpan.kt +26 -0
  141. package/android/src/main/java/com/swmansion/enriched/markdown/spans/ThematicBreakSpan.kt +69 -0
  142. package/android/src/main/java/com/swmansion/enriched/markdown/spans/UnorderedListSpan.kt +92 -0
  143. package/android/src/main/java/com/swmansion/enriched/markdown/spoiler/ParticleStrategy.kt +68 -0
  144. package/android/src/main/java/com/swmansion/enriched/markdown/spoiler/SegmentKey.kt +13 -0
  145. package/android/src/main/java/com/swmansion/enriched/markdown/spoiler/SolidStrategy.kt +95 -0
  146. package/android/src/main/java/com/swmansion/enriched/markdown/spoiler/SpoilerAnimator.kt +89 -0
  147. package/android/src/main/java/com/swmansion/enriched/markdown/spoiler/SpoilerCapable.kt +5 -0
  148. package/android/src/main/java/com/swmansion/enriched/markdown/spoiler/SpoilerConstants.kt +3 -0
  149. package/android/src/main/java/com/swmansion/enriched/markdown/spoiler/SpoilerDrawContext.kt +33 -0
  150. package/android/src/main/java/com/swmansion/enriched/markdown/spoiler/SpoilerDrawUtils.kt +40 -0
  151. package/android/src/main/java/com/swmansion/enriched/markdown/spoiler/SpoilerOverlay.kt +17 -0
  152. package/android/src/main/java/com/swmansion/enriched/markdown/spoiler/SpoilerOverlayDrawer.kt +152 -0
  153. package/android/src/main/java/com/swmansion/enriched/markdown/spoiler/SpoilerParticleDrawable.kt +237 -0
  154. package/android/src/main/java/com/swmansion/enriched/markdown/spoiler/SpoilerStrategy.kt +53 -0
  155. package/android/src/main/java/com/swmansion/enriched/markdown/styles/BaseBlockStyle.kt +11 -0
  156. package/android/src/main/java/com/swmansion/enriched/markdown/styles/BlockquoteStyle.kt +51 -0
  157. package/android/src/main/java/com/swmansion/enriched/markdown/styles/CodeBlockStyle.kt +54 -0
  158. package/android/src/main/java/com/swmansion/enriched/markdown/styles/CodeStyle.kt +26 -0
  159. package/android/src/main/java/com/swmansion/enriched/markdown/styles/EmphasisStyle.kt +21 -0
  160. package/android/src/main/java/com/swmansion/enriched/markdown/styles/HeadingStyle.kt +33 -0
  161. package/android/src/main/java/com/swmansion/enriched/markdown/styles/HighlightStyle.kt +19 -0
  162. package/android/src/main/java/com/swmansion/enriched/markdown/styles/ImageStyle.kt +23 -0
  163. package/android/src/main/java/com/swmansion/enriched/markdown/styles/InlineImageStyle.kt +17 -0
  164. package/android/src/main/java/com/swmansion/enriched/markdown/styles/InlineMathStyle.kt +17 -0
  165. package/android/src/main/java/com/swmansion/enriched/markdown/styles/LinkStyle.kt +23 -0
  166. package/android/src/main/java/com/swmansion/enriched/markdown/styles/LinkVariantEntry.kt +29 -0
  167. package/android/src/main/java/com/swmansion/enriched/markdown/styles/ListStyle.kt +62 -0
  168. package/android/src/main/java/com/swmansion/enriched/markdown/styles/MathStyle.kt +29 -0
  169. package/android/src/main/java/com/swmansion/enriched/markdown/styles/ParagraphStyle.kt +33 -0
  170. package/android/src/main/java/com/swmansion/enriched/markdown/styles/SpoilerStyle.kt +27 -0
  171. package/android/src/main/java/com/swmansion/enriched/markdown/styles/StrikethroughStyle.kt +17 -0
  172. package/android/src/main/java/com/swmansion/enriched/markdown/styles/StrongStyle.kt +21 -0
  173. package/android/src/main/java/com/swmansion/enriched/markdown/styles/StyleConfig.kt +364 -0
  174. package/android/src/main/java/com/swmansion/enriched/markdown/styles/StyleParser.kt +92 -0
  175. package/android/src/main/java/com/swmansion/enriched/markdown/styles/SubscriptStyle.kt +16 -0
  176. package/android/src/main/java/com/swmansion/enriched/markdown/styles/SuperscriptStyle.kt +16 -0
  177. package/android/src/main/java/com/swmansion/enriched/markdown/styles/TableStyle.kt +69 -0
  178. package/android/src/main/java/com/swmansion/enriched/markdown/styles/TaskListStyle.kt +29 -0
  179. package/android/src/main/java/com/swmansion/enriched/markdown/styles/TextAlignment.kt +32 -0
  180. package/android/src/main/java/com/swmansion/enriched/markdown/styles/ThematicBreakStyle.kt +23 -0
  181. package/android/src/main/java/com/swmansion/enriched/markdown/styles/UnderlineStyle.kt +17 -0
  182. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/BreakStrategyUtils.kt +32 -0
  183. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/FeatureFlags.kt +7 -0
  184. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/MarkdownSegment.kt +56 -0
  185. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/MarkdownViewManagerUtils.kt +100 -0
  186. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/MotionPreferences.kt +18 -0
  187. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/ReadableMapExtensions.kt +20 -0
  188. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/RenderedSegment.kt +78 -0
  189. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/SegmentReconciler.kt +118 -0
  190. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/SegmentSignature.kt +78 -0
  191. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/StreamingMarkdownFilter.kt +142 -0
  192. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/layout/RTLUtils.kt +6 -0
  193. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/serialization/MarkdownASTSerializer.kt +115 -0
  194. package/android/src/main/java/com/swmansion/enriched/markdown/utils/input/AutoCapitalizeUtils.kt +27 -0
  195. package/android/src/main/java/com/swmansion/enriched/markdown/utils/input/BorderPropsApplicator.kt +77 -0
  196. package/android/src/main/java/com/swmansion/enriched/markdown/utils/input/MarkdownStyleParser.kt +184 -0
  197. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/ImageCache.kt +53 -0
  198. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/ImageDownloader.kt +156 -0
  199. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/TailFadeInAnimator.kt +84 -0
  200. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/conversion/HTMLGenerator.kt +1067 -0
  201. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/conversion/MarkdownExtractor.kt +419 -0
  202. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/extensions/ParagraphUtils.kt +9 -0
  203. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/extensions/SpannableExtensions.kt +65 -0
  204. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/extensions/TextPaintExtensions.kt +53 -0
  205. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/interaction/CheckboxTouchHelper.kt +54 -0
  206. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/interaction/TaskListTapUtils.kt +249 -0
  207. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/span/BlockSpacing.kt +89 -0
  208. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/span/SpanFlags.kt +17 -0
  209. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/LinkEvents.kt +43 -0
  210. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/LinkLongPressMovementMethod.kt +187 -0
  211. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/SelectionActionMode.kt +205 -0
  212. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/TextSelectionColors.kt +48 -0
  213. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/TextViewSetup.kt +40 -0
  214. package/android/src/main/java/com/swmansion/enriched/markdown/views/BlockSegmentView.kt +10 -0
  215. package/android/src/main/java/com/swmansion/enriched/markdown/views/ContextMenuPopup.kt +214 -0
  216. package/android/src/main/java/com/swmansion/enriched/markdown/views/TableContainerView.kt +501 -0
  217. package/android/src/main/jni/CMakeLists.txt +70 -0
  218. package/android/src/main/jni/EnrichedMarkdownTextSpec.cpp +21 -0
  219. package/android/src/main/jni/EnrichedMarkdownTextSpec.h +15 -0
  220. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/ComponentDescriptors.h +67 -0
  221. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownContainerComponentDescriptor.h +26 -0
  222. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownContainerMeasurementManager.cpp +45 -0
  223. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownContainerMeasurementManager.h +21 -0
  224. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownContainerShadowNode.cpp +20 -0
  225. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownContainerShadowNode.h +34 -0
  226. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextComponentDescriptor.h +29 -0
  227. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextInputMeasurementManager.cpp +44 -0
  228. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextInputMeasurementManager.h +21 -0
  229. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextInputShadowNode.cpp +30 -0
  230. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextInputShadowNode.h +43 -0
  231. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextInputState.cpp +9 -0
  232. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextInputState.h +24 -0
  233. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextMeasurementManager.cpp +45 -0
  234. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextMeasurementManager.h +21 -0
  235. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextShadowNode.cpp +20 -0
  236. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextShadowNode.h +37 -0
  237. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/conversions.h +45 -0
  238. package/android/src/math/java/com/swmansion/enriched/markdown/input/math/MathChipControllerImpl.kt +217 -0
  239. package/android/src/math/java/com/swmansion/enriched/markdown/renderer/MathInlineRenderer.kt +47 -0
  240. package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathChipSpan.kt +208 -0
  241. package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathInlinePlaceholderSpan.kt +41 -0
  242. package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathInlineSpan.kt +92 -0
  243. package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathMeasureHelper.kt +57 -0
  244. package/android/src/math/java/com/swmansion/enriched/markdown/views/MathContainerView.kt +148 -0
  245. package/app.plugin.js +1 -0
  246. package/cpp/md4c/md4c.c +7235 -0
  247. package/cpp/md4c/md4c.h +475 -0
  248. package/cpp/parser/MD4CParser.cpp +539 -0
  249. package/cpp/parser/MD4CParser.hpp +32 -0
  250. package/cpp/parser/MarkdownASTNode.hpp +63 -0
  251. package/cpp/wasm/ASTSerializer.cpp +158 -0
  252. package/cpp/wasm/ASTSerializer.hpp +17 -0
  253. package/cpp/wasm/build.sh +58 -0
  254. package/cpp/wasm/md4c_wasm.cpp +43 -0
  255. package/ios/EnrichedMarkdown.h +20 -0
  256. package/ios/EnrichedMarkdown.mm +1121 -0
  257. package/ios/EnrichedMarkdownText.h +20 -0
  258. package/ios/EnrichedMarkdownText.mm +802 -0
  259. package/ios/attachments/ENRMImageAttachment.h +27 -0
  260. package/ios/attachments/ENRMImageAttachment.m +305 -0
  261. package/ios/attachments/ENRMMathInlineAttachment+macOS.m +60 -0
  262. package/ios/attachments/ENRMMathInlineAttachment.h +47 -0
  263. package/ios/attachments/ENRMMathInlineAttachment.m +142 -0
  264. package/ios/attachments/ENRMMathInlineAttachmentShared.h +17 -0
  265. package/ios/attachments/ThematicBreakAttachment.h +15 -0
  266. package/ios/attachments/ThematicBreakAttachment.m +33 -0
  267. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/ComponentDescriptors.cpp +22 -0
  268. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/ComponentDescriptors.h +24 -0
  269. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/EventEmitters.cpp +318 -0
  270. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/EventEmitters.h +259 -0
  271. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.cpp +375 -0
  272. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.h +5174 -0
  273. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/RCTComponentViewHelpers.h +436 -0
  274. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/ShadowNodes.cpp +17 -0
  275. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/ShadowNodes.h +23 -0
  276. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/States.cpp +16 -0
  277. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/States.h +20 -0
  278. package/ios/input/ENRMAutoLinkDetector.h +32 -0
  279. package/ios/input/ENRMAutoLinkDetector.mm +211 -0
  280. package/ios/input/ENRMDetectorPipeline.h +28 -0
  281. package/ios/input/ENRMDetectorPipeline.mm +53 -0
  282. package/ios/input/ENRMFormattingRange.h +19 -0
  283. package/ios/input/ENRMFormattingRange.mm +28 -0
  284. package/ios/input/ENRMFormattingStore.h +29 -0
  285. package/ios/input/ENRMFormattingStore.mm +278 -0
  286. package/ios/input/ENRMInputFormatter.h +84 -0
  287. package/ios/input/ENRMInputFormatter.mm +222 -0
  288. package/ios/input/ENRMInputLayoutManager.h +11 -0
  289. package/ios/input/ENRMInputLayoutManager.mm +5 -0
  290. package/ios/input/ENRMInputLinkPrompt.h +9 -0
  291. package/ios/input/ENRMInputLinkPrompt.mm +71 -0
  292. package/ios/input/ENRMInputMentionCandidate.h +21 -0
  293. package/ios/input/ENRMInputMentionCandidate.mm +18 -0
  294. package/ios/input/ENRMInputParser.h +27 -0
  295. package/ios/input/ENRMInputParser.mm +556 -0
  296. package/ios/input/ENRMInputRemend.h +9 -0
  297. package/ios/input/ENRMInputRemend.mm +136 -0
  298. package/ios/input/ENRMInputStyledRange.h +29 -0
  299. package/ios/input/ENRMInputStyledRange.mm +4 -0
  300. package/ios/input/ENRMInputTextView.h +13 -0
  301. package/ios/input/ENRMInputTextView.mm +175 -0
  302. package/ios/input/ENRMLinkRegexConfig.h +26 -0
  303. package/ios/input/ENRMLinkRegexConfig.mm +60 -0
  304. package/ios/input/ENRMMarkdownSerializer.h +19 -0
  305. package/ios/input/ENRMMarkdownSerializer.mm +283 -0
  306. package/ios/input/ENRMTextDetector.h +30 -0
  307. package/ios/input/ENRMWordsUtils.h +28 -0
  308. package/ios/input/ENRMWordsUtils.mm +88 -0
  309. package/ios/input/EnrichedMarkdownTextInput+ContextMenu.mm +157 -0
  310. package/ios/input/EnrichedMarkdownTextInput+Internal.h +30 -0
  311. package/ios/input/EnrichedMarkdownTextInput.h +20 -0
  312. package/ios/input/EnrichedMarkdownTextInput.mm +2008 -0
  313. package/ios/input/InputStylePropsUtils.h +261 -0
  314. package/ios/input/internals/EnrichedMarkdownTextInputComponentDescriptor.h +19 -0
  315. package/ios/input/internals/EnrichedMarkdownTextInputShadowNode.h +40 -0
  316. package/ios/input/internals/EnrichedMarkdownTextInputShadowNode.mm +83 -0
  317. package/ios/input/internals/EnrichedMarkdownTextInputState.h +23 -0
  318. package/ios/input/styles/ENRMBoldStyleHandler.h +10 -0
  319. package/ios/input/styles/ENRMBoldStyleHandler.mm +29 -0
  320. package/ios/input/styles/ENRMItalicStyleHandler.h +10 -0
  321. package/ios/input/styles/ENRMItalicStyleHandler.mm +29 -0
  322. package/ios/input/styles/ENRMLinkStyleHandler.h +10 -0
  323. package/ios/input/styles/ENRMLinkStyleHandler.mm +52 -0
  324. package/ios/input/styles/ENRMSpoilerStyleHandler.h +10 -0
  325. package/ios/input/styles/ENRMSpoilerStyleHandler.mm +33 -0
  326. package/ios/input/styles/ENRMStrikethroughStyleHandler.h +10 -0
  327. package/ios/input/styles/ENRMStrikethroughStyleHandler.mm +28 -0
  328. package/ios/input/styles/ENRMStyleHandler.h +26 -0
  329. package/ios/input/styles/ENRMStyleMergingConfig.h +26 -0
  330. package/ios/input/styles/ENRMStyleMergingConfig.mm +21 -0
  331. package/ios/input/styles/ENRMUnderlineStyleHandler.h +10 -0
  332. package/ios/input/styles/ENRMUnderlineStyleHandler.mm +28 -0
  333. package/ios/internals/EnrichedMarkdownComponentDescriptor.h +18 -0
  334. package/ios/internals/EnrichedMarkdownShadowNode.h +43 -0
  335. package/ios/internals/EnrichedMarkdownShadowNode.mm +73 -0
  336. package/ios/internals/EnrichedMarkdownState.h +23 -0
  337. package/ios/internals/EnrichedMarkdownTextComponentDescriptor.h +19 -0
  338. package/ios/internals/EnrichedMarkdownTextShadowNode.h +45 -0
  339. package/ios/internals/EnrichedMarkdownTextShadowNode.mm +74 -0
  340. package/ios/internals/EnrichedMarkdownTextState.h +24 -0
  341. package/ios/internals/MeasurementCache.h +223 -0
  342. package/ios/internals/ShadowMeasurementUtils.h +135 -0
  343. package/ios/math/ENRMRaTeXBridge.swift +58 -0
  344. package/ios/parser/ENRMMarkdownParser.h +21 -0
  345. package/ios/parser/ENRMMarkdownParser.mm +50 -0
  346. package/ios/parser/MarkdownASTNode.h +47 -0
  347. package/ios/parser/MarkdownASTNode.m +32 -0
  348. package/ios/parser/MarkdownParserBridge.mm +161 -0
  349. package/ios/renderer/AttributedRenderer.h +11 -0
  350. package/ios/renderer/AttributedRenderer.m +153 -0
  351. package/ios/renderer/BaseRenderer.h +18 -0
  352. package/ios/renderer/BaseRenderer.m +16 -0
  353. package/ios/renderer/BaselineShiftTextAttributes.h +6 -0
  354. package/ios/renderer/BaselineShiftTextAttributes.m +22 -0
  355. package/ios/renderer/BlockquoteRenderer.h +6 -0
  356. package/ios/renderer/BlockquoteRenderer.m +148 -0
  357. package/ios/renderer/CodeBlockRenderer.h +9 -0
  358. package/ios/renderer/CodeBlockRenderer.m +90 -0
  359. package/ios/renderer/CodeRenderer.h +9 -0
  360. package/ios/renderer/CodeRenderer.m +64 -0
  361. package/ios/renderer/ENRMImageRenderer.h +9 -0
  362. package/ios/renderer/ENRMImageRenderer.m +65 -0
  363. package/ios/renderer/ENRMMathInlineRenderer.h +9 -0
  364. package/ios/renderer/ENRMMathInlineRenderer.m +56 -0
  365. package/ios/renderer/ENRMSpoilerRenderer.h +5 -0
  366. package/ios/renderer/ENRMSpoilerRenderer.m +32 -0
  367. package/ios/renderer/EmphasisRenderer.h +5 -0
  368. package/ios/renderer/EmphasisRenderer.m +98 -0
  369. package/ios/renderer/HeadingRenderer.h +6 -0
  370. package/ios/renderer/HeadingRenderer.m +94 -0
  371. package/ios/renderer/HighlightRenderer.h +7 -0
  372. package/ios/renderer/HighlightRenderer.m +31 -0
  373. package/ios/renderer/LinkRenderer.h +6 -0
  374. package/ios/renderer/LinkRenderer.m +82 -0
  375. package/ios/renderer/ListItemRenderer.h +12 -0
  376. package/ios/renderer/ListItemRenderer.m +175 -0
  377. package/ios/renderer/ListRenderer.h +13 -0
  378. package/ios/renderer/ListRenderer.m +70 -0
  379. package/ios/renderer/NodeRenderer.h +8 -0
  380. package/ios/renderer/ParagraphRenderer.h +6 -0
  381. package/ios/renderer/ParagraphRenderer.m +70 -0
  382. package/ios/renderer/RenderContext.h +118 -0
  383. package/ios/renderer/RenderContext.m +337 -0
  384. package/ios/renderer/RendererFactory.h +12 -0
  385. package/ios/renderer/RendererFactory.m +147 -0
  386. package/ios/renderer/StrikethroughRenderer.h +5 -0
  387. package/ios/renderer/StrikethroughRenderer.m +28 -0
  388. package/ios/renderer/StrongRenderer.h +5 -0
  389. package/ios/renderer/StrongRenderer.m +86 -0
  390. package/ios/renderer/SubscriptRenderer.h +5 -0
  391. package/ios/renderer/SubscriptRenderer.m +22 -0
  392. package/ios/renderer/SuperscriptRenderer.h +5 -0
  393. package/ios/renderer/SuperscriptRenderer.m +22 -0
  394. package/ios/renderer/TextRenderer.h +6 -0
  395. package/ios/renderer/TextRenderer.m +16 -0
  396. package/ios/renderer/ThematicBreakRenderer.h +4 -0
  397. package/ios/renderer/ThematicBreakRenderer.m +40 -0
  398. package/ios/renderer/UnderlineRenderer.h +4 -0
  399. package/ios/renderer/UnderlineRenderer.m +27 -0
  400. package/ios/styles/ENRMFontSlot.h +12 -0
  401. package/ios/styles/ENRMFontSlot.m +24 -0
  402. package/ios/styles/StyleConfig.h +407 -0
  403. package/ios/styles/StyleConfig.mm +2515 -0
  404. package/ios/utils/AccessibilityInfo.h +35 -0
  405. package/ios/utils/AccessibilityInfo.m +24 -0
  406. package/ios/utils/BlockquoteBorder.h +20 -0
  407. package/ios/utils/BlockquoteBorder.m +97 -0
  408. package/ios/utils/CodeBackground.h +19 -0
  409. package/ios/utils/CodeBackground.m +197 -0
  410. package/ios/utils/CodeBlockBackground.h +17 -0
  411. package/ios/utils/CodeBlockBackground.m +89 -0
  412. package/ios/utils/ContextMenuUtils.h +76 -0
  413. package/ios/utils/ContextMenuUtils.mm +73 -0
  414. package/ios/utils/ENRMAsyncRenderCoordinator.h +24 -0
  415. package/ios/utils/ENRMAsyncRenderCoordinator.m +37 -0
  416. package/ios/utils/ENRMFeatureFlags.h +12 -0
  417. package/ios/utils/ENRMImageDownloader.h +16 -0
  418. package/ios/utils/ENRMImageDownloader.m +108 -0
  419. package/ios/utils/ENRMMenuAction.h +27 -0
  420. package/ios/utils/ENRMMenuAction.m +33 -0
  421. package/ios/utils/ENRMParticleOverlayView.h +12 -0
  422. package/ios/utils/ENRMParticleOverlayView.m +159 -0
  423. package/ios/utils/ENRMSolidOverlayView.h +12 -0
  424. package/ios/utils/ENRMSolidOverlayView.m +25 -0
  425. package/ios/utils/ENRMSpoilerCapable.h +15 -0
  426. package/ios/utils/ENRMSpoilerOverlayManager.h +21 -0
  427. package/ios/utils/ENRMSpoilerOverlayManager.m +181 -0
  428. package/ios/utils/ENRMSpoilerOverlayView.h +49 -0
  429. package/ios/utils/ENRMSpoilerOverlayView.m +144 -0
  430. package/ios/utils/ENRMSpoilerTapUtils.h +25 -0
  431. package/ios/utils/ENRMSpoilerTapUtils.m +68 -0
  432. package/ios/utils/ENRMTailFadeInAnimator.h +16 -0
  433. package/ios/utils/ENRMTailFadeInAnimator.m +161 -0
  434. package/ios/utils/ENRMTextHitTest.h +23 -0
  435. package/ios/utils/ENRMTextHitTest.m +20 -0
  436. package/ios/utils/ENRMTextInteractionUtils.h +20 -0
  437. package/ios/utils/ENRMTextInteractionUtils.m +15 -0
  438. package/ios/utils/ENRMTextRenderer.h +30 -0
  439. package/ios/utils/ENRMTextRenderer.m +38 -0
  440. package/ios/utils/ENRMTextViewSetup.h +78 -0
  441. package/ios/utils/ENRMUIKit.h +418 -0
  442. package/ios/utils/EditMenuUtils+macOS.m +60 -0
  443. package/ios/utils/EditMenuUtils.h +35 -0
  444. package/ios/utils/EditMenuUtils.m +119 -0
  445. package/ios/utils/FontScaleObserver.h +10 -0
  446. package/ios/utils/FontScaleObserver.m +55 -0
  447. package/ios/utils/FontUtils.h +30 -0
  448. package/ios/utils/FontUtils.m +47 -0
  449. package/ios/utils/HTMLGenerator.h +25 -0
  450. package/ios/utils/HTMLGenerator.m +1019 -0
  451. package/ios/utils/HeightUpdateUtils.h +25 -0
  452. package/ios/utils/LastElementUtils.h +53 -0
  453. package/ios/utils/LinkTapUtils.h +24 -0
  454. package/ios/utils/LinkTapUtils.m +32 -0
  455. package/ios/utils/ListMarkerDrawer.h +15 -0
  456. package/ios/utils/ListMarkerDrawer.m +212 -0
  457. package/ios/utils/MarkdownASTSerializer.h +24 -0
  458. package/ios/utils/MarkdownASTSerializer.m +114 -0
  459. package/ios/utils/MarkdownAccessibilityElementBuilder.h +41 -0
  460. package/ios/utils/MarkdownAccessibilityElementBuilder.m +450 -0
  461. package/ios/utils/MarkdownExtractor.h +17 -0
  462. package/ios/utils/MarkdownExtractor.m +355 -0
  463. package/ios/utils/ParagraphStyleUtils.h +53 -0
  464. package/ios/utils/ParagraphStyleUtils.m +349 -0
  465. package/ios/utils/PasteboardUtils.h +48 -0
  466. package/ios/utils/PasteboardUtils.m +162 -0
  467. package/ios/utils/RTFExportUtils.h +24 -0
  468. package/ios/utils/RTFExportUtils.m +297 -0
  469. package/ios/utils/RenderedMarkdownSegment.h +49 -0
  470. package/ios/utils/RenderedMarkdownSegment.m +130 -0
  471. package/ios/utils/RuntimeKeys.h +38 -0
  472. package/ios/utils/RuntimeKeys.m +11 -0
  473. package/ios/utils/SegmentReconciler.h +32 -0
  474. package/ios/utils/SegmentReconciler.m +118 -0
  475. package/ios/utils/SegmentRenderer.h +24 -0
  476. package/ios/utils/SegmentRenderer.m +88 -0
  477. package/ios/utils/SegmentViewRegistry.h +36 -0
  478. package/ios/utils/SegmentViewRegistry.m +67 -0
  479. package/ios/utils/SelectionColorUtils.h +14 -0
  480. package/ios/utils/StreamingMarkdownFilter.h +22 -0
  481. package/ios/utils/StreamingMarkdownFilter.m +165 -0
  482. package/ios/utils/StylePropsUtils.h +1146 -0
  483. package/ios/utils/TaskListTapUtils.h +43 -0
  484. package/ios/utils/TaskListTapUtils.m +227 -0
  485. package/ios/utils/TextViewLayoutManager.h +14 -0
  486. package/ios/utils/TextViewLayoutManager.mm +113 -0
  487. package/ios/views/ENRMContextMenuTextView+macOS.h +17 -0
  488. package/ios/views/ENRMContextMenuTextView+macOS.m +97 -0
  489. package/ios/views/ENRMMathContainerView.h +20 -0
  490. package/ios/views/ENRMMathContainerView.m +227 -0
  491. package/ios/views/ENRMTableGridView.h +36 -0
  492. package/ios/views/ENRMTableGridView.m +98 -0
  493. package/ios/views/EnrichedMarkdownInternalText.h +42 -0
  494. package/ios/views/EnrichedMarkdownInternalText.m +161 -0
  495. package/ios/views/TableContainerView.h +39 -0
  496. package/ios/views/TableContainerView.m +686 -0
  497. package/lib/module/EnrichedMarkdownNativeComponent.ts +429 -0
  498. package/lib/module/EnrichedMarkdownTextInput.js +310 -0
  499. package/lib/module/EnrichedMarkdownTextInput.js.map +1 -0
  500. package/lib/module/EnrichedMarkdownTextInputNativeComponent.ts +364 -0
  501. package/lib/module/EnrichedMarkdownTextNativeComponent.ts +428 -0
  502. package/lib/module/index.js +5 -0
  503. package/lib/module/index.js.map +1 -0
  504. package/lib/module/index.web.js +4 -0
  505. package/lib/module/index.web.js.map +1 -0
  506. package/lib/module/linkVariantUtils.js +28 -0
  507. package/lib/module/linkVariantUtils.js.map +1 -0
  508. package/lib/module/native/EnrichedMarkdownText.js +158 -0
  509. package/lib/module/native/EnrichedMarkdownText.js.map +1 -0
  510. package/lib/module/normalizeMarkdownStyle.js +337 -0
  511. package/lib/module/normalizeMarkdownStyle.js.map +1 -0
  512. package/lib/module/normalizeMarkdownStyle.web.js +264 -0
  513. package/lib/module/normalizeMarkdownStyle.web.js.map +1 -0
  514. package/lib/module/normalizeMarkdownTextInputStyle.js +146 -0
  515. package/lib/module/normalizeMarkdownTextInputStyle.js.map +1 -0
  516. package/lib/module/package.json +1 -0
  517. package/lib/module/plugin/withAndroidMath.js +20 -0
  518. package/lib/module/plugin/withAndroidMath.js.map +1 -0
  519. package/lib/module/plugin/withIosMath.js +23 -0
  520. package/lib/module/plugin/withIosMath.js.map +1 -0
  521. package/lib/module/plugin/withReactNativeEnrichedMarkdown.js +16 -0
  522. package/lib/module/plugin/withReactNativeEnrichedMarkdown.js.map +1 -0
  523. package/lib/module/styleUtils.js +64 -0
  524. package/lib/module/styleUtils.js.map +1 -0
  525. package/lib/module/types/MarkdownStyle.js +2 -0
  526. package/lib/module/types/MarkdownStyle.js.map +1 -0
  527. package/lib/module/types/MarkdownStyleInternal.js +2 -0
  528. package/lib/module/types/MarkdownStyleInternal.js.map +1 -0
  529. package/lib/module/types/MarkdownTextProps.js +4 -0
  530. package/lib/module/types/MarkdownTextProps.js.map +1 -0
  531. package/lib/module/types/MarkdownTextProps.web.js +4 -0
  532. package/lib/module/types/MarkdownTextProps.web.js.map +1 -0
  533. package/lib/module/types/events.js +2 -0
  534. package/lib/module/types/events.js.map +1 -0
  535. package/lib/module/utils/regexParser.js +43 -0
  536. package/lib/module/utils/regexParser.js.map +1 -0
  537. package/lib/module/web/EnrichedMarkdownText.js +120 -0
  538. package/lib/module/web/EnrichedMarkdownText.js.map +1 -0
  539. package/lib/module/web/globalStyles.js +10 -0
  540. package/lib/module/web/globalStyles.js.map +1 -0
  541. package/lib/module/web/injectStyle.js +20 -0
  542. package/lib/module/web/injectStyle.js.map +1 -0
  543. package/lib/module/web/katex.js +22 -0
  544. package/lib/module/web/katex.js.map +1 -0
  545. package/lib/module/web/parseMarkdown.js +35 -0
  546. package/lib/module/web/parseMarkdown.js.map +1 -0
  547. package/lib/module/web/renderers/BlockRenderers.js +115 -0
  548. package/lib/module/web/renderers/BlockRenderers.js.map +1 -0
  549. package/lib/module/web/renderers/InlineRenderers.js +160 -0
  550. package/lib/module/web/renderers/InlineRenderers.js.map +1 -0
  551. package/lib/module/web/renderers/KaTeXRenderer.js +43 -0
  552. package/lib/module/web/renderers/KaTeXRenderer.js.map +1 -0
  553. package/lib/module/web/renderers/ListRenderers.js +92 -0
  554. package/lib/module/web/renderers/ListRenderers.js.map +1 -0
  555. package/lib/module/web/renderers/TableRenderers.js +77 -0
  556. package/lib/module/web/renderers/TableRenderers.js.map +1 -0
  557. package/lib/module/web/renderers/index.js +49 -0
  558. package/lib/module/web/renderers/index.js.map +1 -0
  559. package/lib/module/web/styles.js +454 -0
  560. package/lib/module/web/styles.js.map +1 -0
  561. package/lib/module/web/types.js +4 -0
  562. package/lib/module/web/types.js.map +1 -0
  563. package/lib/module/web/utils.js +56 -0
  564. package/lib/module/web/utils.js.map +1 -0
  565. package/lib/module/web/wasm/md4c.d.js +4 -0
  566. package/lib/module/web/wasm/md4c.d.js.map +1 -0
  567. package/lib/module/web/wasm/md4c.js +0 -0
  568. package/lib/module/web/wasm/md4c.js.map +1 -0
  569. package/lib/typescript/package.json +1 -0
  570. package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts +384 -0
  571. package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts.map +1 -0
  572. package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts +173 -0
  573. package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts.map +1 -0
  574. package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts +285 -0
  575. package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts.map +1 -0
  576. package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts +384 -0
  577. package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts.map +1 -0
  578. package/lib/typescript/src/index.d.ts +6 -0
  579. package/lib/typescript/src/index.d.ts.map +1 -0
  580. package/lib/typescript/src/index.web.d.ts +5 -0
  581. package/lib/typescript/src/index.web.d.ts.map +1 -0
  582. package/lib/typescript/src/linkVariantUtils.d.ts +5 -0
  583. package/lib/typescript/src/linkVariantUtils.d.ts.map +1 -0
  584. package/lib/typescript/src/native/EnrichedMarkdownText.d.ts +9 -0
  585. package/lib/typescript/src/native/EnrichedMarkdownText.d.ts.map +1 -0
  586. package/lib/typescript/src/normalizeMarkdownStyle.d.ts +4 -0
  587. package/lib/typescript/src/normalizeMarkdownStyle.d.ts.map +1 -0
  588. package/lib/typescript/src/normalizeMarkdownStyle.web.d.ts +4 -0
  589. package/lib/typescript/src/normalizeMarkdownStyle.web.d.ts.map +1 -0
  590. package/lib/typescript/src/normalizeMarkdownTextInputStyle.d.ts +48 -0
  591. package/lib/typescript/src/normalizeMarkdownTextInputStyle.d.ts.map +1 -0
  592. package/lib/typescript/src/plugin/withAndroidMath.d.ts +5 -0
  593. package/lib/typescript/src/plugin/withAndroidMath.d.ts.map +1 -0
  594. package/lib/typescript/src/plugin/withIosMath.d.ts +5 -0
  595. package/lib/typescript/src/plugin/withIosMath.d.ts.map +1 -0
  596. package/lib/typescript/src/plugin/withReactNativeEnrichedMarkdown.d.ts +6 -0
  597. package/lib/typescript/src/plugin/withReactNativeEnrichedMarkdown.d.ts.map +1 -0
  598. package/lib/typescript/src/styleUtils.d.ts +6 -0
  599. package/lib/typescript/src/styleUtils.d.ts.map +1 -0
  600. package/lib/typescript/src/types/MarkdownStyle.d.ts +300 -0
  601. package/lib/typescript/src/types/MarkdownStyle.d.ts.map +1 -0
  602. package/lib/typescript/src/types/MarkdownStyleInternal.d.ts +178 -0
  603. package/lib/typescript/src/types/MarkdownStyleInternal.d.ts.map +1 -0
  604. package/lib/typescript/src/types/MarkdownTextProps.d.ts +249 -0
  605. package/lib/typescript/src/types/MarkdownTextProps.d.ts.map +1 -0
  606. package/lib/typescript/src/types/MarkdownTextProps.web.d.ts +83 -0
  607. package/lib/typescript/src/types/MarkdownTextProps.web.d.ts.map +1 -0
  608. package/lib/typescript/src/types/events.d.ts +29 -0
  609. package/lib/typescript/src/types/events.d.ts.map +1 -0
  610. package/lib/typescript/src/utils/regexParser.d.ts +3 -0
  611. package/lib/typescript/src/utils/regexParser.d.ts.map +1 -0
  612. package/lib/typescript/src/web/EnrichedMarkdownText.d.ts +4 -0
  613. package/lib/typescript/src/web/EnrichedMarkdownText.d.ts.map +1 -0
  614. package/lib/typescript/src/web/globalStyles.d.ts +3 -0
  615. package/lib/typescript/src/web/globalStyles.d.ts.map +1 -0
  616. package/lib/typescript/src/web/injectStyle.d.ts +9 -0
  617. package/lib/typescript/src/web/injectStyle.d.ts.map +1 -0
  618. package/lib/typescript/src/web/katex.d.ts +11 -0
  619. package/lib/typescript/src/web/katex.d.ts.map +1 -0
  620. package/lib/typescript/src/web/parseMarkdown.d.ts +4 -0
  621. package/lib/typescript/src/web/parseMarkdown.d.ts.map +1 -0
  622. package/lib/typescript/src/web/renderers/BlockRenderers.d.ts +3 -0
  623. package/lib/typescript/src/web/renderers/BlockRenderers.d.ts.map +1 -0
  624. package/lib/typescript/src/web/renderers/InlineRenderers.d.ts +3 -0
  625. package/lib/typescript/src/web/renderers/InlineRenderers.d.ts.map +1 -0
  626. package/lib/typescript/src/web/renderers/KaTeXRenderer.d.ts +11 -0
  627. package/lib/typescript/src/web/renderers/KaTeXRenderer.d.ts.map +1 -0
  628. package/lib/typescript/src/web/renderers/ListRenderers.d.ts +3 -0
  629. package/lib/typescript/src/web/renderers/ListRenderers.d.ts.map +1 -0
  630. package/lib/typescript/src/web/renderers/TableRenderers.d.ts +3 -0
  631. package/lib/typescript/src/web/renderers/TableRenderers.d.ts.map +1 -0
  632. package/lib/typescript/src/web/renderers/index.d.ts +14 -0
  633. package/lib/typescript/src/web/renderers/index.d.ts.map +1 -0
  634. package/lib/typescript/src/web/styles.d.ts +49 -0
  635. package/lib/typescript/src/web/styles.d.ts.map +1 -0
  636. package/lib/typescript/src/web/types.d.ts +51 -0
  637. package/lib/typescript/src/web/types.d.ts.map +1 -0
  638. package/lib/typescript/src/web/utils.d.ts +21 -0
  639. package/lib/typescript/src/web/utils.d.ts.map +1 -0
  640. package/package.json +125 -0
  641. package/react-native.config.js +17 -0
  642. package/src/EnrichedMarkdownNativeComponent.ts +429 -0
  643. package/src/EnrichedMarkdownTextInput.tsx +547 -0
  644. package/src/EnrichedMarkdownTextInputNativeComponent.ts +364 -0
  645. package/src/EnrichedMarkdownTextNativeComponent.ts +428 -0
  646. package/src/index.tsx +28 -0
  647. package/src/index.web.tsx +8 -0
  648. package/src/linkVariantUtils.ts +42 -0
  649. package/src/native/EnrichedMarkdownText.tsx +187 -0
  650. package/src/normalizeMarkdownStyle.ts +310 -0
  651. package/src/normalizeMarkdownStyle.web.ts +281 -0
  652. package/src/normalizeMarkdownTextInputStyle.ts +242 -0
  653. package/src/plugin/withAndroidMath.ts +24 -0
  654. package/src/plugin/withIosMath.ts +35 -0
  655. package/src/plugin/withReactNativeEnrichedMarkdown.ts +17 -0
  656. package/src/styleUtils.ts +98 -0
  657. package/src/types/MarkdownStyle.ts +326 -0
  658. package/src/types/MarkdownStyleInternal.ts +208 -0
  659. package/src/types/MarkdownTextProps.ts +253 -0
  660. package/src/types/MarkdownTextProps.web.ts +90 -0
  661. package/src/types/events.ts +32 -0
  662. package/src/utils/regexParser.ts +54 -0
  663. package/src/web/EnrichedMarkdownText.tsx +154 -0
  664. package/src/web/globalStyles.ts +15 -0
  665. package/src/web/injectStyle.ts +17 -0
  666. package/src/web/katex.ts +31 -0
  667. package/src/web/parseMarkdown.ts +78 -0
  668. package/src/web/renderers/BlockRenderers.tsx +90 -0
  669. package/src/web/renderers/InlineRenderers.tsx +121 -0
  670. package/src/web/renderers/KaTeXRenderer.tsx +49 -0
  671. package/src/web/renderers/ListRenderers.tsx +110 -0
  672. package/src/web/renderers/TableRenderers.tsx +61 -0
  673. package/src/web/renderers/index.tsx +75 -0
  674. package/src/web/styles.ts +549 -0
  675. package/src/web/types.ts +92 -0
  676. package/src/web/utils.ts +52 -0
  677. package/src/web/wasm/md4c.d.ts +21 -0
  678. package/src/web/wasm/md4c.js +0 -0
@@ -0,0 +1,2515 @@
1
+ #import "StyleConfig.h"
2
+ #import "ENRMFontSlot.h"
3
+ #import "FontUtils.h"
4
+ #import <React/RCTFont.h>
5
+ #import <React/RCTUtils.h>
6
+
7
+ static inline NSString *normalizedFontWeight(NSString *fontWeight)
8
+ {
9
+ // If nil or empty string, return nil to let RCTFont use fontFamily as-is
10
+ if (fontWeight == nil || fontWeight.length == 0) {
11
+ return nil;
12
+ }
13
+
14
+ return fontWeight;
15
+ }
16
+
17
+ @implementation LinkVariantConfig
18
+ @end
19
+
20
+ @interface LinkVariantRegexEntry : NSObject
21
+ @property (nonatomic, strong) NSRegularExpression *regex;
22
+ @property (nonatomic, strong) LinkVariantConfig *variant;
23
+ @end
24
+
25
+ @implementation LinkVariantRegexEntry
26
+ @end
27
+
28
+ @implementation StyleConfig {
29
+ BOOL _allowFontScaling;
30
+ CGFloat _maxFontSizeMultiplier;
31
+ // Primary font properties
32
+ RCTUIColor *_primaryColor;
33
+ NSNumber *_primaryFontSize;
34
+ NSString *_primaryFontWeight;
35
+ NSString *_primaryFontFamily;
36
+ ENRMFontSlot *_primaryFont;
37
+ // Paragraph properties
38
+ CGFloat _paragraphFontSize;
39
+ NSString *_paragraphFontFamily;
40
+ NSString *_paragraphFontWeight;
41
+ RCTUIColor *_paragraphColor;
42
+ CGFloat _paragraphMarginTop;
43
+ CGFloat _paragraphMarginBottom;
44
+ CGFloat _paragraphLineHeight;
45
+ NSTextAlignment _paragraphTextAlign;
46
+ ENRMFontSlot *_paragraphFont;
47
+ // H1 properties
48
+ CGFloat _h1FontSize;
49
+ NSString *_h1FontFamily;
50
+ NSString *_h1FontWeight;
51
+ RCTUIColor *_h1Color;
52
+ CGFloat _h1MarginTop;
53
+ CGFloat _h1MarginBottom;
54
+ CGFloat _h1LineHeight;
55
+ NSTextAlignment _h1TextAlign;
56
+ ENRMFontSlot *_h1Font;
57
+ // H2 properties
58
+ CGFloat _h2FontSize;
59
+ NSString *_h2FontFamily;
60
+ NSString *_h2FontWeight;
61
+ RCTUIColor *_h2Color;
62
+ CGFloat _h2MarginTop;
63
+ CGFloat _h2MarginBottom;
64
+ CGFloat _h2LineHeight;
65
+ NSTextAlignment _h2TextAlign;
66
+ ENRMFontSlot *_h2Font;
67
+ // H3 properties
68
+ CGFloat _h3FontSize;
69
+ NSString *_h3FontFamily;
70
+ NSString *_h3FontWeight;
71
+ RCTUIColor *_h3Color;
72
+ CGFloat _h3MarginTop;
73
+ CGFloat _h3MarginBottom;
74
+ CGFloat _h3LineHeight;
75
+ NSTextAlignment _h3TextAlign;
76
+ ENRMFontSlot *_h3Font;
77
+ // H4 properties
78
+ CGFloat _h4FontSize;
79
+ NSString *_h4FontFamily;
80
+ NSString *_h4FontWeight;
81
+ RCTUIColor *_h4Color;
82
+ CGFloat _h4MarginTop;
83
+ CGFloat _h4MarginBottom;
84
+ CGFloat _h4LineHeight;
85
+ NSTextAlignment _h4TextAlign;
86
+ ENRMFontSlot *_h4Font;
87
+ // H5 properties
88
+ CGFloat _h5FontSize;
89
+ NSString *_h5FontFamily;
90
+ NSString *_h5FontWeight;
91
+ RCTUIColor *_h5Color;
92
+ CGFloat _h5MarginTop;
93
+ CGFloat _h5MarginBottom;
94
+ CGFloat _h5LineHeight;
95
+ NSTextAlignment _h5TextAlign;
96
+ ENRMFontSlot *_h5Font;
97
+ // H6 properties
98
+ CGFloat _h6FontSize;
99
+ NSString *_h6FontFamily;
100
+ NSString *_h6FontWeight;
101
+ RCTUIColor *_h6Color;
102
+ CGFloat _h6MarginTop;
103
+ CGFloat _h6MarginBottom;
104
+ CGFloat _h6LineHeight;
105
+ NSTextAlignment _h6TextAlign;
106
+ ENRMFontSlot *_h6Font;
107
+ // Link properties
108
+ NSString *_linkFontFamily;
109
+ RCTUIColor *_linkColor;
110
+ BOOL _linkUnderline;
111
+ RCTUIColor *_linkBackgroundColor;
112
+ NSArray<LinkVariantConfig *> *_linkVariants;
113
+ NSArray<LinkVariantRegexEntry *> *_compiledVariantRegexes;
114
+ // Strong properties
115
+ NSString *_strongFontFamily;
116
+ NSString *_strongFontWeight;
117
+ RCTUIColor *_strongColor;
118
+ // Emphasis properties
119
+ NSString *_emphasisFontFamily;
120
+ NSString *_emphasisFontStyle;
121
+ RCTUIColor *_emphasisColor;
122
+ // Strikethrough properties
123
+ RCTUIColor *_strikethroughColor;
124
+ // Highlight properties
125
+ RCTUIColor *_highlightColor;
126
+ RCTUIColor *_highlightBackgroundColor;
127
+ // Underline properties
128
+ RCTUIColor *_underlineColor;
129
+ // Code properties
130
+ NSString *_codeFontFamily;
131
+ CGFloat _codeFontSize;
132
+ RCTUIColor *_codeColor;
133
+ RCTUIColor *_codeBackgroundColor;
134
+ RCTUIColor *_codeBorderColor;
135
+ // Image properties
136
+ CGFloat _imageHeight;
137
+ CGFloat _imageBorderRadius;
138
+ CGFloat _imageMarginTop;
139
+ CGFloat _imageMarginBottom;
140
+ // Inline image properties
141
+ CGFloat _inlineImageSize;
142
+ // Blockquote properties
143
+ CGFloat _blockquoteFontSize;
144
+ NSString *_blockquoteFontFamily;
145
+ NSString *_blockquoteFontWeight;
146
+ RCTUIColor *_blockquoteColor;
147
+ CGFloat _blockquoteMarginTop;
148
+ CGFloat _blockquoteMarginBottom;
149
+ CGFloat _blockquoteLineHeight;
150
+ RCTUIColor *_blockquoteBorderColor;
151
+ CGFloat _blockquoteBorderWidth;
152
+ CGFloat _blockquoteGapWidth;
153
+ RCTUIColor *_blockquoteBackgroundColor;
154
+ ENRMFontSlot *_blockquoteFont;
155
+ // List style properties (combined for both ordered and unordered lists)
156
+ CGFloat _listStyleFontSize;
157
+ NSString *_listStyleFontFamily;
158
+ NSString *_listStyleFontWeight;
159
+ RCTUIColor *_listStyleColor;
160
+ CGFloat _listStyleMarginTop;
161
+ CGFloat _listStyleMarginBottom;
162
+ CGFloat _listStyleLineHeight;
163
+ RCTUIColor *_listStyleBulletColor;
164
+ CGFloat _listStyleBulletSize;
165
+ CGFloat _listStyleMarkerMinWidth;
166
+ RCTUIColor *_listStyleMarkerColor;
167
+ NSString *_listStyleMarkerFontWeight;
168
+ CGFloat _listStyleGapWidth;
169
+ CGFloat _listStyleMarginLeft;
170
+ ENRMFontSlot *_listMarkerFont;
171
+ ENRMFontSlot *_listStyleFont;
172
+ // Code block properties
173
+ CGFloat _codeBlockFontSize;
174
+ NSString *_codeBlockFontFamily;
175
+ NSString *_codeBlockFontWeight;
176
+ RCTUIColor *_codeBlockColor;
177
+ CGFloat _codeBlockMarginTop;
178
+ CGFloat _codeBlockMarginBottom;
179
+ CGFloat _codeBlockLineHeight;
180
+ RCTUIColor *_codeBlockBackgroundColor;
181
+ RCTUIColor *_codeBlockBorderColor;
182
+ CGFloat _codeBlockBorderRadius;
183
+ CGFloat _codeBlockBorderWidth;
184
+ CGFloat _codeBlockPadding;
185
+ ENRMFontSlot *_codeBlockFont;
186
+ // Thematic break properties
187
+ RCTUIColor *_thematicBreakColor;
188
+ CGFloat _thematicBreakHeight;
189
+ CGFloat _thematicBreakMarginTop;
190
+ CGFloat _thematicBreakMarginBottom;
191
+ // Table properties
192
+ CGFloat _tableFontSize;
193
+ NSString *_tableFontFamily;
194
+ NSString *_tableFontWeight;
195
+ RCTUIColor *_tableColor;
196
+ CGFloat _tableMarginTop;
197
+ CGFloat _tableMarginBottom;
198
+ CGFloat _tableLineHeight;
199
+ ENRMFontSlot *_tableFont;
200
+ NSString *_tableHeaderFontFamily;
201
+ ENRMFontSlot *_tableHeaderFont;
202
+ RCTUIColor *_tableHeaderBackgroundColor;
203
+ RCTUIColor *_tableHeaderTextColor;
204
+ RCTUIColor *_tableRowEvenBackgroundColor;
205
+ RCTUIColor *_tableRowOddBackgroundColor;
206
+ RCTUIColor *_tableBorderColor;
207
+ CGFloat _tableBorderWidth;
208
+ CGFloat _tableBorderRadius;
209
+ CGFloat _tableCellPaddingHorizontal;
210
+ CGFloat _tableCellPaddingVertical;
211
+ // Task list checkbox
212
+ RCTUIColor *_taskListCheckedColor;
213
+ RCTUIColor *_taskListBorderColor;
214
+ CGFloat _taskListCheckboxSize;
215
+ CGFloat _taskListCheckboxBorderRadius;
216
+ RCTUIColor *_taskListCheckmarkColor;
217
+ RCTUIColor *_taskListCheckedTextColor;
218
+ BOOL _taskListCheckedStrikethrough;
219
+ // Math properties
220
+ CGFloat _mathFontSize;
221
+ RCTUIColor *_mathColor;
222
+ RCTUIColor *_mathBackgroundColor;
223
+ CGFloat _mathPadding;
224
+ CGFloat _mathMarginTop;
225
+ CGFloat _mathMarginBottom;
226
+ NSString *_mathTextAlign;
227
+ // Inline Math properties
228
+ RCTUIColor *_inlineMathColor;
229
+ // Spoiler properties
230
+ RCTUIColor *_spoilerColor;
231
+ CGFloat _spoilerParticleDensity;
232
+ CGFloat _spoilerParticleSpeed;
233
+ CGFloat _spoilerSolidBorderRadius;
234
+ CGFloat _superscriptFontScale;
235
+ CGFloat _superscriptBaselineOffsetScale;
236
+ CGFloat _subscriptFontScale;
237
+ CGFloat _subscriptBaselineOffsetScale;
238
+ // All font cache entries — used for bulk invalidation
239
+ NSArray<ENRMFontSlot *> *_allFontEntries;
240
+ }
241
+
242
+ - (instancetype)init
243
+ {
244
+ self = [super init];
245
+ _allowFontScaling = YES;
246
+ _maxFontSizeMultiplier = 0;
247
+ _paragraphTextAlign = NSTextAlignmentNatural;
248
+ _h1TextAlign = NSTextAlignmentNatural;
249
+ _h2TextAlign = NSTextAlignmentNatural;
250
+ _h3TextAlign = NSTextAlignmentNatural;
251
+ _h4TextAlign = NSTextAlignmentNatural;
252
+ _h5TextAlign = NSTextAlignmentNatural;
253
+ _h6TextAlign = NSTextAlignmentNatural;
254
+ _linkUnderline = YES;
255
+ _linkVariants = @[];
256
+ _compiledVariantRegexes = @[];
257
+ _primaryFont = [[ENRMFontSlot alloc] init];
258
+ _paragraphFont = [[ENRMFontSlot alloc] init];
259
+ _h1Font = [[ENRMFontSlot alloc] init];
260
+ _h2Font = [[ENRMFontSlot alloc] init];
261
+ _h3Font = [[ENRMFontSlot alloc] init];
262
+ _h4Font = [[ENRMFontSlot alloc] init];
263
+ _h5Font = [[ENRMFontSlot alloc] init];
264
+ _h6Font = [[ENRMFontSlot alloc] init];
265
+ _listMarkerFont = [[ENRMFontSlot alloc] init];
266
+ _listStyleFont = [[ENRMFontSlot alloc] init];
267
+ _codeBlockFont = [[ENRMFontSlot alloc] init];
268
+ _blockquoteFont = [[ENRMFontSlot alloc] init];
269
+ _tableFont = [[ENRMFontSlot alloc] init];
270
+ _tableHeaderFont = [[ENRMFontSlot alloc] init];
271
+ _allFontEntries = @[
272
+ _primaryFont, _paragraphFont, _h1Font, _h2Font, _h3Font, _h4Font, _h5Font, _h6Font, _listMarkerFont, _listStyleFont,
273
+ _codeBlockFont, _blockquoteFont, _tableFont, _tableHeaderFont
274
+ ];
275
+ return self;
276
+ }
277
+
278
+ - (void)invalidateAllFonts
279
+ {
280
+ for (ENRMFontSlot *entry in _allFontEntries) {
281
+ [entry invalidate];
282
+ }
283
+ }
284
+
285
+ - (CGFloat)fontScaleMultiplier
286
+ {
287
+ return _allowFontScaling ? RCTFontSizeMultiplier() : 1.0;
288
+ }
289
+
290
+ - (void)setFontScaleMultiplier:(CGFloat)newValue
291
+ {
292
+ BOOL newAllowFontScaling = (newValue != 1.0);
293
+ if (_allowFontScaling != newAllowFontScaling) {
294
+ _allowFontScaling = newAllowFontScaling;
295
+ [self invalidateAllFonts];
296
+ }
297
+ }
298
+
299
+ - (CGFloat)effectiveScaleMultiplierForFontSize:(CGFloat)fontSize
300
+ {
301
+ if (!_allowFontScaling) {
302
+ return 1.0;
303
+ }
304
+ return RCTFontSizeMultiplierWithMax(_maxFontSizeMultiplier);
305
+ }
306
+
307
+ - (CGFloat)maxFontSizeMultiplier
308
+ {
309
+ return _maxFontSizeMultiplier;
310
+ }
311
+
312
+ - (void)setMaxFontSizeMultiplier:(CGFloat)newValue
313
+ {
314
+ if (_maxFontSizeMultiplier != newValue) {
315
+ _maxFontSizeMultiplier = newValue;
316
+ [self invalidateAllFonts];
317
+ }
318
+ }
319
+
320
+ - (id)copyWithZone:(NSZone *)zone
321
+ {
322
+ // -init creates fresh ENRMFontSlot instances with needsRecreation = YES,
323
+ // so all cached fonts will be rebuilt from the copied params below.
324
+ StyleConfig *copy = [[[self class] allocWithZone:zone] init];
325
+ copy->_allowFontScaling = _allowFontScaling;
326
+ copy->_maxFontSizeMultiplier = _maxFontSizeMultiplier;
327
+ copy->_primaryColor = [_primaryColor copy];
328
+ copy->_primaryFontSize = [_primaryFontSize copy];
329
+ copy->_primaryFontWeight = [_primaryFontWeight copy];
330
+ copy->_primaryFontFamily = [_primaryFontFamily copy];
331
+ copy->_paragraphFontSize = _paragraphFontSize;
332
+ copy->_paragraphFontFamily = [_paragraphFontFamily copy];
333
+ copy->_paragraphFontWeight = [_paragraphFontWeight copy];
334
+ copy->_paragraphColor = [_paragraphColor copy];
335
+ copy->_paragraphMarginTop = _paragraphMarginTop;
336
+ copy->_paragraphMarginBottom = _paragraphMarginBottom;
337
+ copy->_paragraphLineHeight = _paragraphLineHeight;
338
+ copy->_paragraphTextAlign = _paragraphTextAlign;
339
+ copy->_h1FontSize = _h1FontSize;
340
+ copy->_h1FontFamily = [_h1FontFamily copy];
341
+ copy->_h1FontWeight = [_h1FontWeight copy];
342
+ copy->_h1Color = [_h1Color copy];
343
+ copy->_h1MarginTop = _h1MarginTop;
344
+ copy->_h1MarginBottom = _h1MarginBottom;
345
+ copy->_h1LineHeight = _h1LineHeight;
346
+ copy->_h1TextAlign = _h1TextAlign;
347
+ copy->_h2FontSize = _h2FontSize;
348
+ copy->_h2FontFamily = [_h2FontFamily copy];
349
+ copy->_h2FontWeight = [_h2FontWeight copy];
350
+ copy->_h2Color = [_h2Color copy];
351
+ copy->_h2MarginTop = _h2MarginTop;
352
+ copy->_h2MarginBottom = _h2MarginBottom;
353
+ copy->_h2LineHeight = _h2LineHeight;
354
+ copy->_h2TextAlign = _h2TextAlign;
355
+ copy->_h3FontSize = _h3FontSize;
356
+ copy->_h3FontFamily = [_h3FontFamily copy];
357
+ copy->_h3FontWeight = [_h3FontWeight copy];
358
+ copy->_h3Color = [_h3Color copy];
359
+ copy->_h3MarginTop = _h3MarginTop;
360
+ copy->_h3MarginBottom = _h3MarginBottom;
361
+ copy->_h3LineHeight = _h3LineHeight;
362
+ copy->_h3TextAlign = _h3TextAlign;
363
+ copy->_h4FontSize = _h4FontSize;
364
+ copy->_h4FontFamily = [_h4FontFamily copy];
365
+ copy->_h4FontWeight = [_h4FontWeight copy];
366
+ copy->_h4Color = [_h4Color copy];
367
+ copy->_h4MarginTop = _h4MarginTop;
368
+ copy->_h4MarginBottom = _h4MarginBottom;
369
+ copy->_h4LineHeight = _h4LineHeight;
370
+ copy->_h4TextAlign = _h4TextAlign;
371
+ copy->_h5FontSize = _h5FontSize;
372
+ copy->_h5FontFamily = [_h5FontFamily copy];
373
+ copy->_h5FontWeight = [_h5FontWeight copy];
374
+ copy->_h5Color = [_h5Color copy];
375
+ copy->_h5MarginTop = _h5MarginTop;
376
+ copy->_h5MarginBottom = _h5MarginBottom;
377
+ copy->_h5LineHeight = _h5LineHeight;
378
+ copy->_h5TextAlign = _h5TextAlign;
379
+ copy->_h6FontSize = _h6FontSize;
380
+ copy->_h6FontFamily = [_h6FontFamily copy];
381
+ copy->_h6FontWeight = [_h6FontWeight copy];
382
+ copy->_h6Color = [_h6Color copy];
383
+ copy->_h6MarginTop = _h6MarginTop;
384
+ copy->_h6MarginBottom = _h6MarginBottom;
385
+ copy->_h6LineHeight = _h6LineHeight;
386
+ copy->_h6TextAlign = _h6TextAlign;
387
+ copy->_linkFontFamily = [_linkFontFamily copy];
388
+ copy->_linkColor = [_linkColor copy];
389
+ copy->_linkUnderline = _linkUnderline;
390
+ copy->_linkBackgroundColor = [_linkBackgroundColor copy];
391
+ copy->_linkVariants = [_linkVariants copy];
392
+ copy->_compiledVariantRegexes = [_compiledVariantRegexes copy];
393
+ copy->_strongFontFamily = [_strongFontFamily copy];
394
+ copy->_strongFontWeight = [_strongFontWeight copy];
395
+ copy->_strongColor = [_strongColor copy];
396
+ copy->_emphasisFontFamily = [_emphasisFontFamily copy];
397
+ copy->_emphasisFontStyle = [_emphasisFontStyle copy];
398
+ copy->_emphasisColor = [_emphasisColor copy];
399
+ copy->_strikethroughColor = [_strikethroughColor copy];
400
+ copy->_highlightColor = [_highlightColor copy];
401
+ copy->_highlightBackgroundColor = [_highlightBackgroundColor copy];
402
+ copy->_underlineColor = [_underlineColor copy];
403
+ copy->_codeFontFamily = [_codeFontFamily copy];
404
+ copy->_codeFontSize = _codeFontSize;
405
+ copy->_codeColor = [_codeColor copy];
406
+ copy->_codeBackgroundColor = [_codeBackgroundColor copy];
407
+ copy->_codeBorderColor = [_codeBorderColor copy];
408
+ copy->_imageHeight = _imageHeight;
409
+ copy->_imageBorderRadius = _imageBorderRadius;
410
+ copy->_imageMarginTop = _imageMarginTop;
411
+ copy->_imageMarginBottom = _imageMarginBottom;
412
+ copy->_inlineImageSize = _inlineImageSize;
413
+ copy->_blockquoteFontSize = _blockquoteFontSize;
414
+ copy->_blockquoteFontFamily = [_blockquoteFontFamily copy];
415
+ copy->_blockquoteFontWeight = [_blockquoteFontWeight copy];
416
+ copy->_blockquoteColor = [_blockquoteColor copy];
417
+ copy->_blockquoteMarginTop = _blockquoteMarginTop;
418
+ copy->_blockquoteMarginBottom = _blockquoteMarginBottom;
419
+ copy->_blockquoteLineHeight = _blockquoteLineHeight;
420
+ copy->_blockquoteBorderColor = [_blockquoteBorderColor copy];
421
+ copy->_blockquoteBorderWidth = _blockquoteBorderWidth;
422
+ copy->_blockquoteGapWidth = _blockquoteGapWidth;
423
+ copy->_blockquoteBackgroundColor = [_blockquoteBackgroundColor copy];
424
+ copy->_listStyleFontSize = _listStyleFontSize;
425
+ copy->_listStyleFontFamily = [_listStyleFontFamily copy];
426
+ copy->_listStyleFontWeight = [_listStyleFontWeight copy];
427
+ copy->_listStyleColor = [_listStyleColor copy];
428
+ copy->_listStyleMarginTop = _listStyleMarginTop;
429
+ copy->_listStyleMarginBottom = _listStyleMarginBottom;
430
+ copy->_listStyleLineHeight = _listStyleLineHeight;
431
+ copy->_listStyleBulletColor = [_listStyleBulletColor copy];
432
+ copy->_listStyleBulletSize = _listStyleBulletSize;
433
+ copy->_listStyleMarkerMinWidth = _listStyleMarkerMinWidth;
434
+ copy->_listStyleMarkerColor = [_listStyleMarkerColor copy];
435
+ copy->_listStyleMarkerFontWeight = [_listStyleMarkerFontWeight copy];
436
+ copy->_listStyleGapWidth = _listStyleGapWidth;
437
+ copy->_listStyleMarginLeft = _listStyleMarginLeft;
438
+ copy->_codeBlockFontSize = _codeBlockFontSize;
439
+ copy->_codeBlockFontFamily = [_codeBlockFontFamily copy];
440
+ copy->_codeBlockFontWeight = [_codeBlockFontWeight copy];
441
+ copy->_codeBlockColor = [_codeBlockColor copy];
442
+ copy->_codeBlockMarginTop = _codeBlockMarginTop;
443
+ copy->_codeBlockMarginBottom = _codeBlockMarginBottom;
444
+ copy->_codeBlockLineHeight = _codeBlockLineHeight;
445
+ copy->_codeBlockBackgroundColor = [_codeBlockBackgroundColor copy];
446
+ copy->_codeBlockBorderColor = [_codeBlockBorderColor copy];
447
+ copy->_codeBlockBorderRadius = _codeBlockBorderRadius;
448
+ copy->_codeBlockBorderWidth = _codeBlockBorderWidth;
449
+ copy->_codeBlockPadding = _codeBlockPadding;
450
+ copy->_thematicBreakColor = [_thematicBreakColor copy];
451
+ copy->_thematicBreakHeight = _thematicBreakHeight;
452
+ copy->_thematicBreakMarginTop = _thematicBreakMarginTop;
453
+ copy->_thematicBreakMarginBottom = _thematicBreakMarginBottom;
454
+ copy->_tableFontSize = _tableFontSize;
455
+ copy->_tableFontFamily = [_tableFontFamily copy];
456
+ copy->_tableFontWeight = [_tableFontWeight copy];
457
+ copy->_tableColor = [_tableColor copy];
458
+ copy->_tableMarginTop = _tableMarginTop;
459
+ copy->_tableMarginBottom = _tableMarginBottom;
460
+ copy->_tableLineHeight = _tableLineHeight;
461
+ copy->_tableHeaderFontFamily = [_tableHeaderFontFamily copy];
462
+ copy->_tableHeaderBackgroundColor = [_tableHeaderBackgroundColor copy];
463
+ copy->_tableHeaderTextColor = [_tableHeaderTextColor copy];
464
+ copy->_tableRowEvenBackgroundColor = [_tableRowEvenBackgroundColor copy];
465
+ copy->_tableRowOddBackgroundColor = [_tableRowOddBackgroundColor copy];
466
+ copy->_tableBorderColor = [_tableBorderColor copy];
467
+ copy->_tableBorderWidth = _tableBorderWidth;
468
+ copy->_tableBorderRadius = _tableBorderRadius;
469
+ copy->_tableCellPaddingHorizontal = _tableCellPaddingHorizontal;
470
+ copy->_tableCellPaddingVertical = _tableCellPaddingVertical;
471
+ copy->_taskListCheckedColor = [_taskListCheckedColor copy];
472
+ copy->_taskListBorderColor = [_taskListBorderColor copy];
473
+ copy->_taskListCheckboxSize = _taskListCheckboxSize;
474
+ copy->_taskListCheckboxBorderRadius = _taskListCheckboxBorderRadius;
475
+ copy->_taskListCheckmarkColor = [_taskListCheckmarkColor copy];
476
+ copy->_taskListCheckedTextColor = [_taskListCheckedTextColor copy];
477
+ copy->_taskListCheckedStrikethrough = _taskListCheckedStrikethrough;
478
+ copy->_mathFontSize = _mathFontSize;
479
+ copy->_mathColor = [_mathColor copy];
480
+ copy->_mathBackgroundColor = [_mathBackgroundColor copy];
481
+ copy->_mathPadding = _mathPadding;
482
+ copy->_mathMarginTop = _mathMarginTop;
483
+ copy->_mathMarginBottom = _mathMarginBottom;
484
+ copy->_mathTextAlign = [_mathTextAlign copy];
485
+ copy->_inlineMathColor = [_inlineMathColor copy];
486
+ copy->_spoilerColor = [_spoilerColor copy];
487
+ copy->_spoilerParticleDensity = _spoilerParticleDensity;
488
+ copy->_spoilerParticleSpeed = _spoilerParticleSpeed;
489
+ copy->_spoilerSolidBorderRadius = _spoilerSolidBorderRadius;
490
+ copy->_superscriptFontScale = _superscriptFontScale;
491
+ copy->_superscriptBaselineOffsetScale = _superscriptBaselineOffsetScale;
492
+ copy->_subscriptFontScale = _subscriptFontScale;
493
+ copy->_subscriptBaselineOffsetScale = _subscriptBaselineOffsetScale;
494
+
495
+ return copy;
496
+ }
497
+
498
+ - (RCTUIColor *)primaryColor
499
+ {
500
+ return _primaryColor != nullptr ? _primaryColor : [RCTUIColor blackColor];
501
+ }
502
+
503
+ - (void)setPrimaryColor:(RCTUIColor *)newValue
504
+ {
505
+ _primaryColor = newValue;
506
+ }
507
+
508
+ - (NSNumber *)primaryFontSize
509
+ {
510
+ return _primaryFontSize != nullptr ? _primaryFontSize : @16;
511
+ }
512
+
513
+ - (void)setPrimaryFontSize:(NSNumber *)newValue
514
+ {
515
+ _primaryFontSize = newValue;
516
+ [_primaryFont invalidate];
517
+ }
518
+
519
+ - (NSString *)primaryFontWeight
520
+ {
521
+ return _primaryFontWeight != nullptr ? _primaryFontWeight : @"normal";
522
+ }
523
+
524
+ - (void)setPrimaryFontWeight:(NSString *)newValue
525
+ {
526
+ _primaryFontWeight = newValue;
527
+ [_primaryFont invalidate];
528
+ }
529
+
530
+ - (NSString *)primaryFontFamily
531
+ {
532
+ return _primaryFontFamily;
533
+ }
534
+
535
+ - (void)setPrimaryFontFamily:(NSString *)newValue
536
+ {
537
+ _primaryFontFamily = newValue;
538
+ [_primaryFont invalidate];
539
+ }
540
+
541
+ - (UIFont *)primaryFont
542
+ {
543
+ if (_primaryFont.needsRecreation || !_primaryFont.cachedFont) {
544
+ _primaryFont.cachedFont =
545
+ [RCTFont updateFont:nil
546
+ withFamily:_primaryFontFamily
547
+ size:_primaryFontSize
548
+ weight:normalizedFontWeight(_primaryFontWeight)
549
+ style:nil
550
+ variant:nil
551
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:[_primaryFontSize floatValue]]];
552
+ _primaryFont.needsRecreation = NO;
553
+ }
554
+ return _primaryFont.cachedFont;
555
+ }
556
+
557
+ // Paragraph properties
558
+ - (CGFloat)paragraphFontSize
559
+ {
560
+ return _paragraphFontSize;
561
+ }
562
+
563
+ - (void)setParagraphFontSize:(CGFloat)newValue
564
+ {
565
+ _paragraphFontSize = newValue;
566
+ [_paragraphFont invalidate];
567
+ }
568
+
569
+ - (NSString *)paragraphFontFamily
570
+ {
571
+ return _paragraphFontFamily;
572
+ }
573
+
574
+ - (void)setParagraphFontFamily:(NSString *)newValue
575
+ {
576
+ _paragraphFontFamily = newValue;
577
+ [_paragraphFont invalidate];
578
+ }
579
+
580
+ - (NSString *)paragraphFontWeight
581
+ {
582
+ return _paragraphFontWeight;
583
+ }
584
+
585
+ - (void)setParagraphFontWeight:(NSString *)newValue
586
+ {
587
+ _paragraphFontWeight = newValue;
588
+ [_paragraphFont invalidate];
589
+ }
590
+
591
+ - (RCTUIColor *)paragraphColor
592
+ {
593
+ return _paragraphColor;
594
+ }
595
+
596
+ - (void)setParagraphColor:(RCTUIColor *)newValue
597
+ {
598
+ _paragraphColor = newValue;
599
+ }
600
+
601
+ - (CGFloat)paragraphMarginTop
602
+ {
603
+ return _paragraphMarginTop;
604
+ }
605
+
606
+ - (void)setParagraphMarginTop:(CGFloat)newValue
607
+ {
608
+ _paragraphMarginTop = newValue;
609
+ }
610
+
611
+ - (CGFloat)paragraphMarginBottom
612
+ {
613
+ return _paragraphMarginBottom;
614
+ }
615
+
616
+ - (void)setParagraphMarginBottom:(CGFloat)newValue
617
+ {
618
+ _paragraphMarginBottom = newValue;
619
+ }
620
+
621
+ - (CGFloat)paragraphLineHeight
622
+ {
623
+ if (_allowFontScaling && _paragraphLineHeight > 0) {
624
+ return _paragraphLineHeight * RCTFontSizeMultiplierWithMax(_maxFontSizeMultiplier);
625
+ }
626
+ return _paragraphLineHeight;
627
+ }
628
+
629
+ - (void)setParagraphLineHeight:(CGFloat)newValue
630
+ {
631
+ _paragraphLineHeight = newValue;
632
+ }
633
+
634
+ - (NSTextAlignment)paragraphTextAlign
635
+ {
636
+ return _paragraphTextAlign;
637
+ }
638
+
639
+ - (void)setParagraphTextAlign:(NSTextAlignment)newValue
640
+ {
641
+ _paragraphTextAlign = newValue;
642
+ }
643
+
644
+ - (UIFont *)paragraphFont
645
+ {
646
+ if (_paragraphFont.needsRecreation || !_paragraphFont.cachedFont) {
647
+ _paragraphFont.cachedFont = [RCTFont updateFont:nil
648
+ withFamily:_paragraphFontFamily
649
+ size:@(_paragraphFontSize)
650
+ weight:normalizedFontWeight(_paragraphFontWeight)
651
+ style:nil
652
+ variant:nil
653
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:_paragraphFontSize]];
654
+ _paragraphFont.needsRecreation = NO;
655
+ }
656
+ return _paragraphFont.cachedFont;
657
+ }
658
+
659
+ - (CGFloat)h1FontSize
660
+ {
661
+ return _h1FontSize;
662
+ }
663
+
664
+ - (void)setH1FontSize:(CGFloat)newValue
665
+ {
666
+ _h1FontSize = newValue;
667
+ [_h1Font invalidate];
668
+ }
669
+
670
+ - (NSString *)h1FontFamily
671
+ {
672
+ return _h1FontFamily;
673
+ }
674
+
675
+ - (void)setH1FontFamily:(NSString *)newValue
676
+ {
677
+ _h1FontFamily = newValue;
678
+ [_h1Font invalidate];
679
+ }
680
+
681
+ - (NSString *)h1FontWeight
682
+ {
683
+ return _h1FontWeight;
684
+ }
685
+
686
+ - (void)setH1FontWeight:(NSString *)newValue
687
+ {
688
+ _h1FontWeight = newValue;
689
+ [_h1Font invalidate];
690
+ }
691
+
692
+ - (RCTUIColor *)h1Color
693
+ {
694
+ return _h1Color;
695
+ }
696
+
697
+ - (void)setH1Color:(RCTUIColor *)newValue
698
+ {
699
+ _h1Color = newValue;
700
+ }
701
+
702
+ - (CGFloat)h1MarginTop
703
+ {
704
+ return _h1MarginTop;
705
+ }
706
+
707
+ - (void)setH1MarginTop:(CGFloat)newValue
708
+ {
709
+ _h1MarginTop = newValue;
710
+ }
711
+
712
+ - (CGFloat)h1MarginBottom
713
+ {
714
+ return _h1MarginBottom;
715
+ }
716
+
717
+ - (void)setH1MarginBottom:(CGFloat)newValue
718
+ {
719
+ _h1MarginBottom = newValue;
720
+ }
721
+
722
+ - (CGFloat)h1LineHeight
723
+ {
724
+ if (_allowFontScaling && _h1LineHeight > 0) {
725
+ return _h1LineHeight * RCTFontSizeMultiplierWithMax(_maxFontSizeMultiplier);
726
+ }
727
+ return _h1LineHeight;
728
+ }
729
+
730
+ - (void)setH1LineHeight:(CGFloat)newValue
731
+ {
732
+ _h1LineHeight = newValue;
733
+ }
734
+
735
+ - (NSTextAlignment)h1TextAlign
736
+ {
737
+ return _h1TextAlign;
738
+ }
739
+
740
+ - (void)setH1TextAlign:(NSTextAlignment)newValue
741
+ {
742
+ _h1TextAlign = newValue;
743
+ }
744
+
745
+ - (UIFont *)h1Font
746
+ {
747
+ if (_h1Font.needsRecreation || !_h1Font.cachedFont) {
748
+ _h1Font.cachedFont = [RCTFont updateFont:nil
749
+ withFamily:_h1FontFamily
750
+ size:@(_h1FontSize)
751
+ weight:normalizedFontWeight(_h1FontWeight)
752
+ style:nil
753
+ variant:nil
754
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:_h1FontSize]];
755
+ _h1Font.needsRecreation = NO;
756
+ }
757
+ return _h1Font.cachedFont;
758
+ }
759
+
760
+ - (CGFloat)h2FontSize
761
+ {
762
+ return _h2FontSize;
763
+ }
764
+
765
+ - (void)setH2FontSize:(CGFloat)newValue
766
+ {
767
+ _h2FontSize = newValue;
768
+ [_h2Font invalidate];
769
+ }
770
+
771
+ - (NSString *)h2FontFamily
772
+ {
773
+ return _h2FontFamily;
774
+ }
775
+
776
+ - (void)setH2FontFamily:(NSString *)newValue
777
+ {
778
+ _h2FontFamily = newValue;
779
+ [_h2Font invalidate];
780
+ }
781
+
782
+ - (NSString *)h2FontWeight
783
+ {
784
+ return _h2FontWeight;
785
+ }
786
+
787
+ - (void)setH2FontWeight:(NSString *)newValue
788
+ {
789
+ _h2FontWeight = newValue;
790
+ [_h2Font invalidate];
791
+ }
792
+
793
+ - (RCTUIColor *)h2Color
794
+ {
795
+ return _h2Color;
796
+ }
797
+
798
+ - (void)setH2Color:(RCTUIColor *)newValue
799
+ {
800
+ _h2Color = newValue;
801
+ }
802
+
803
+ - (CGFloat)h2MarginTop
804
+ {
805
+ return _h2MarginTop;
806
+ }
807
+
808
+ - (void)setH2MarginTop:(CGFloat)newValue
809
+ {
810
+ _h2MarginTop = newValue;
811
+ }
812
+
813
+ - (CGFloat)h2MarginBottom
814
+ {
815
+ return _h2MarginBottom;
816
+ }
817
+
818
+ - (void)setH2MarginBottom:(CGFloat)newValue
819
+ {
820
+ _h2MarginBottom = newValue;
821
+ }
822
+
823
+ - (CGFloat)h2LineHeight
824
+ {
825
+ if (_allowFontScaling && _h2LineHeight > 0) {
826
+ return _h2LineHeight * RCTFontSizeMultiplierWithMax(_maxFontSizeMultiplier);
827
+ }
828
+ return _h2LineHeight;
829
+ }
830
+
831
+ - (void)setH2LineHeight:(CGFloat)newValue
832
+ {
833
+ _h2LineHeight = newValue;
834
+ }
835
+
836
+ - (NSTextAlignment)h2TextAlign
837
+ {
838
+ return _h2TextAlign;
839
+ }
840
+
841
+ - (void)setH2TextAlign:(NSTextAlignment)newValue
842
+ {
843
+ _h2TextAlign = newValue;
844
+ }
845
+
846
+ - (UIFont *)h2Font
847
+ {
848
+ if (_h2Font.needsRecreation || !_h2Font.cachedFont) {
849
+ _h2Font.cachedFont = [RCTFont updateFont:nil
850
+ withFamily:_h2FontFamily
851
+ size:@(_h2FontSize)
852
+ weight:normalizedFontWeight(_h2FontWeight)
853
+ style:nil
854
+ variant:nil
855
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:_h2FontSize]];
856
+ _h2Font.needsRecreation = NO;
857
+ }
858
+ return _h2Font.cachedFont;
859
+ }
860
+
861
+ - (CGFloat)h3FontSize
862
+ {
863
+ return _h3FontSize;
864
+ }
865
+
866
+ - (void)setH3FontSize:(CGFloat)newValue
867
+ {
868
+ _h3FontSize = newValue;
869
+ [_h3Font invalidate];
870
+ }
871
+
872
+ - (NSString *)h3FontFamily
873
+ {
874
+ return _h3FontFamily;
875
+ }
876
+
877
+ - (void)setH3FontFamily:(NSString *)newValue
878
+ {
879
+ _h3FontFamily = newValue;
880
+ [_h3Font invalidate];
881
+ }
882
+
883
+ - (NSString *)h3FontWeight
884
+ {
885
+ return _h3FontWeight;
886
+ }
887
+
888
+ - (void)setH3FontWeight:(NSString *)newValue
889
+ {
890
+ _h3FontWeight = newValue;
891
+ [_h3Font invalidate];
892
+ }
893
+
894
+ - (RCTUIColor *)h3Color
895
+ {
896
+ return _h3Color;
897
+ }
898
+
899
+ - (void)setH3Color:(RCTUIColor *)newValue
900
+ {
901
+ _h3Color = newValue;
902
+ }
903
+
904
+ - (CGFloat)h3MarginTop
905
+ {
906
+ return _h3MarginTop;
907
+ }
908
+
909
+ - (void)setH3MarginTop:(CGFloat)newValue
910
+ {
911
+ _h3MarginTop = newValue;
912
+ }
913
+
914
+ - (CGFloat)h3MarginBottom
915
+ {
916
+ return _h3MarginBottom;
917
+ }
918
+
919
+ - (void)setH3MarginBottom:(CGFloat)newValue
920
+ {
921
+ _h3MarginBottom = newValue;
922
+ }
923
+
924
+ - (CGFloat)h3LineHeight
925
+ {
926
+ if (_allowFontScaling && _h3LineHeight > 0) {
927
+ return _h3LineHeight * RCTFontSizeMultiplierWithMax(_maxFontSizeMultiplier);
928
+ }
929
+ return _h3LineHeight;
930
+ }
931
+
932
+ - (void)setH3LineHeight:(CGFloat)newValue
933
+ {
934
+ _h3LineHeight = newValue;
935
+ }
936
+
937
+ - (NSTextAlignment)h3TextAlign
938
+ {
939
+ return _h3TextAlign;
940
+ }
941
+
942
+ - (void)setH3TextAlign:(NSTextAlignment)newValue
943
+ {
944
+ _h3TextAlign = newValue;
945
+ }
946
+
947
+ - (UIFont *)h3Font
948
+ {
949
+ if (_h3Font.needsRecreation || !_h3Font.cachedFont) {
950
+ _h3Font.cachedFont = [RCTFont updateFont:nil
951
+ withFamily:_h3FontFamily
952
+ size:@(_h3FontSize)
953
+ weight:normalizedFontWeight(_h3FontWeight)
954
+ style:nil
955
+ variant:nil
956
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:_h3FontSize]];
957
+ _h3Font.needsRecreation = NO;
958
+ }
959
+ return _h3Font.cachedFont;
960
+ }
961
+
962
+ - (CGFloat)h4FontSize
963
+ {
964
+ return _h4FontSize;
965
+ }
966
+
967
+ - (void)setH4FontSize:(CGFloat)newValue
968
+ {
969
+ _h4FontSize = newValue;
970
+ [_h4Font invalidate];
971
+ }
972
+
973
+ - (NSString *)h4FontFamily
974
+ {
975
+ return _h4FontFamily;
976
+ }
977
+
978
+ - (void)setH4FontFamily:(NSString *)newValue
979
+ {
980
+ _h4FontFamily = newValue;
981
+ [_h4Font invalidate];
982
+ }
983
+
984
+ - (NSString *)h4FontWeight
985
+ {
986
+ return _h4FontWeight;
987
+ }
988
+
989
+ - (void)setH4FontWeight:(NSString *)newValue
990
+ {
991
+ _h4FontWeight = newValue;
992
+ [_h4Font invalidate];
993
+ }
994
+
995
+ - (RCTUIColor *)h4Color
996
+ {
997
+ return _h4Color;
998
+ }
999
+
1000
+ - (void)setH4Color:(RCTUIColor *)newValue
1001
+ {
1002
+ _h4Color = newValue;
1003
+ }
1004
+
1005
+ - (CGFloat)h4MarginTop
1006
+ {
1007
+ return _h4MarginTop;
1008
+ }
1009
+
1010
+ - (void)setH4MarginTop:(CGFloat)newValue
1011
+ {
1012
+ _h4MarginTop = newValue;
1013
+ }
1014
+
1015
+ - (CGFloat)h4MarginBottom
1016
+ {
1017
+ return _h4MarginBottom;
1018
+ }
1019
+
1020
+ - (void)setH4MarginBottom:(CGFloat)newValue
1021
+ {
1022
+ _h4MarginBottom = newValue;
1023
+ }
1024
+
1025
+ - (CGFloat)h4LineHeight
1026
+ {
1027
+ if (_allowFontScaling && _h4LineHeight > 0) {
1028
+ return _h4LineHeight * RCTFontSizeMultiplierWithMax(_maxFontSizeMultiplier);
1029
+ }
1030
+ return _h4LineHeight;
1031
+ }
1032
+
1033
+ - (void)setH4LineHeight:(CGFloat)newValue
1034
+ {
1035
+ _h4LineHeight = newValue;
1036
+ }
1037
+
1038
+ - (NSTextAlignment)h4TextAlign
1039
+ {
1040
+ return _h4TextAlign;
1041
+ }
1042
+
1043
+ - (void)setH4TextAlign:(NSTextAlignment)newValue
1044
+ {
1045
+ _h4TextAlign = newValue;
1046
+ }
1047
+
1048
+ - (UIFont *)h4Font
1049
+ {
1050
+ if (_h4Font.needsRecreation || !_h4Font.cachedFont) {
1051
+ _h4Font.cachedFont = [RCTFont updateFont:nil
1052
+ withFamily:_h4FontFamily
1053
+ size:@(_h4FontSize)
1054
+ weight:normalizedFontWeight(_h4FontWeight)
1055
+ style:nil
1056
+ variant:nil
1057
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:_h4FontSize]];
1058
+ _h4Font.needsRecreation = NO;
1059
+ }
1060
+ return _h4Font.cachedFont;
1061
+ }
1062
+
1063
+ - (CGFloat)h5FontSize
1064
+ {
1065
+ return _h5FontSize;
1066
+ }
1067
+
1068
+ - (void)setH5FontSize:(CGFloat)newValue
1069
+ {
1070
+ _h5FontSize = newValue;
1071
+ [_h5Font invalidate];
1072
+ }
1073
+
1074
+ - (NSString *)h5FontFamily
1075
+ {
1076
+ return _h5FontFamily;
1077
+ }
1078
+
1079
+ - (void)setH5FontFamily:(NSString *)newValue
1080
+ {
1081
+ _h5FontFamily = newValue;
1082
+ [_h5Font invalidate];
1083
+ }
1084
+
1085
+ - (NSString *)h5FontWeight
1086
+ {
1087
+ return _h5FontWeight;
1088
+ }
1089
+
1090
+ - (void)setH5FontWeight:(NSString *)newValue
1091
+ {
1092
+ _h5FontWeight = newValue;
1093
+ [_h5Font invalidate];
1094
+ }
1095
+
1096
+ - (RCTUIColor *)h5Color
1097
+ {
1098
+ return _h5Color;
1099
+ }
1100
+
1101
+ - (void)setH5Color:(RCTUIColor *)newValue
1102
+ {
1103
+ _h5Color = newValue;
1104
+ }
1105
+
1106
+ - (CGFloat)h5MarginTop
1107
+ {
1108
+ return _h5MarginTop;
1109
+ }
1110
+
1111
+ - (void)setH5MarginTop:(CGFloat)newValue
1112
+ {
1113
+ _h5MarginTop = newValue;
1114
+ }
1115
+
1116
+ - (CGFloat)h5MarginBottom
1117
+ {
1118
+ return _h5MarginBottom;
1119
+ }
1120
+
1121
+ - (void)setH5MarginBottom:(CGFloat)newValue
1122
+ {
1123
+ _h5MarginBottom = newValue;
1124
+ }
1125
+
1126
+ - (CGFloat)h5LineHeight
1127
+ {
1128
+ if (_allowFontScaling && _h5LineHeight > 0) {
1129
+ return _h5LineHeight * RCTFontSizeMultiplierWithMax(_maxFontSizeMultiplier);
1130
+ }
1131
+ return _h5LineHeight;
1132
+ }
1133
+
1134
+ - (void)setH5LineHeight:(CGFloat)newValue
1135
+ {
1136
+ _h5LineHeight = newValue;
1137
+ }
1138
+
1139
+ - (NSTextAlignment)h5TextAlign
1140
+ {
1141
+ return _h5TextAlign;
1142
+ }
1143
+
1144
+ - (void)setH5TextAlign:(NSTextAlignment)newValue
1145
+ {
1146
+ _h5TextAlign = newValue;
1147
+ }
1148
+
1149
+ - (UIFont *)h5Font
1150
+ {
1151
+ if (_h5Font.needsRecreation || !_h5Font.cachedFont) {
1152
+ _h5Font.cachedFont = [RCTFont updateFont:nil
1153
+ withFamily:_h5FontFamily
1154
+ size:@(_h5FontSize)
1155
+ weight:normalizedFontWeight(_h5FontWeight)
1156
+ style:nil
1157
+ variant:nil
1158
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:_h5FontSize]];
1159
+ _h5Font.needsRecreation = NO;
1160
+ }
1161
+ return _h5Font.cachedFont;
1162
+ }
1163
+
1164
+ - (CGFloat)h6FontSize
1165
+ {
1166
+ return _h6FontSize;
1167
+ }
1168
+
1169
+ - (void)setH6FontSize:(CGFloat)newValue
1170
+ {
1171
+ _h6FontSize = newValue;
1172
+ [_h6Font invalidate];
1173
+ }
1174
+
1175
+ - (NSString *)h6FontFamily
1176
+ {
1177
+ return _h6FontFamily;
1178
+ }
1179
+
1180
+ - (void)setH6FontFamily:(NSString *)newValue
1181
+ {
1182
+ _h6FontFamily = newValue;
1183
+ [_h6Font invalidate];
1184
+ }
1185
+
1186
+ - (NSString *)h6FontWeight
1187
+ {
1188
+ return _h6FontWeight;
1189
+ }
1190
+
1191
+ - (void)setH6FontWeight:(NSString *)newValue
1192
+ {
1193
+ _h6FontWeight = newValue;
1194
+ [_h6Font invalidate];
1195
+ }
1196
+
1197
+ - (RCTUIColor *)h6Color
1198
+ {
1199
+ return _h6Color;
1200
+ }
1201
+
1202
+ - (void)setH6Color:(RCTUIColor *)newValue
1203
+ {
1204
+ _h6Color = newValue;
1205
+ }
1206
+
1207
+ - (CGFloat)h6MarginTop
1208
+ {
1209
+ return _h6MarginTop;
1210
+ }
1211
+
1212
+ - (void)setH6MarginTop:(CGFloat)newValue
1213
+ {
1214
+ _h6MarginTop = newValue;
1215
+ }
1216
+
1217
+ - (CGFloat)h6MarginBottom
1218
+ {
1219
+ return _h6MarginBottom;
1220
+ }
1221
+
1222
+ - (void)setH6MarginBottom:(CGFloat)newValue
1223
+ {
1224
+ _h6MarginBottom = newValue;
1225
+ }
1226
+
1227
+ - (CGFloat)h6LineHeight
1228
+ {
1229
+ if (_allowFontScaling && _h6LineHeight > 0) {
1230
+ return _h6LineHeight * RCTFontSizeMultiplierWithMax(_maxFontSizeMultiplier);
1231
+ }
1232
+ return _h6LineHeight;
1233
+ }
1234
+
1235
+ - (void)setH6LineHeight:(CGFloat)newValue
1236
+ {
1237
+ _h6LineHeight = newValue;
1238
+ }
1239
+
1240
+ - (NSTextAlignment)h6TextAlign
1241
+ {
1242
+ return _h6TextAlign;
1243
+ }
1244
+
1245
+ - (void)setH6TextAlign:(NSTextAlignment)newValue
1246
+ {
1247
+ _h6TextAlign = newValue;
1248
+ }
1249
+
1250
+ - (UIFont *)h6Font
1251
+ {
1252
+ if (_h6Font.needsRecreation || !_h6Font.cachedFont) {
1253
+ _h6Font.cachedFont = [RCTFont updateFont:nil
1254
+ withFamily:_h6FontFamily
1255
+ size:@(_h6FontSize)
1256
+ weight:normalizedFontWeight(_h6FontWeight)
1257
+ style:nil
1258
+ variant:nil
1259
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:_h6FontSize]];
1260
+ _h6Font.needsRecreation = NO;
1261
+ }
1262
+ return _h6Font.cachedFont;
1263
+ }
1264
+
1265
+ - (NSString *)linkFontFamily
1266
+ {
1267
+ return _linkFontFamily;
1268
+ }
1269
+
1270
+ - (void)setLinkFontFamily:(NSString *)newValue
1271
+ {
1272
+ _linkFontFamily = newValue;
1273
+ }
1274
+
1275
+ - (RCTUIColor *)linkColor
1276
+ {
1277
+ return _linkColor;
1278
+ }
1279
+
1280
+ - (void)setLinkColor:(RCTUIColor *)newValue
1281
+ {
1282
+ _linkColor = newValue;
1283
+ }
1284
+
1285
+ - (BOOL)linkUnderline
1286
+ {
1287
+ return _linkUnderline;
1288
+ }
1289
+
1290
+ - (void)setLinkUnderline:(BOOL)newValue
1291
+ {
1292
+ _linkUnderline = newValue;
1293
+ }
1294
+
1295
+ - (RCTUIColor *)linkBackgroundColor
1296
+ {
1297
+ return _linkBackgroundColor;
1298
+ }
1299
+
1300
+ - (void)setLinkBackgroundColor:(RCTUIColor *)newValue
1301
+ {
1302
+ _linkBackgroundColor = newValue;
1303
+ }
1304
+
1305
+ - (NSArray<LinkVariantConfig *> *)linkVariants
1306
+ {
1307
+ return _linkVariants;
1308
+ }
1309
+
1310
+ /// The JS normalizer validates patterns before they reach native, but iOS and JS
1311
+ /// regex dialects still differ. Keep each compiled regex paired with its source
1312
+ /// variant so an unsupported pattern cannot shift later matches.
1313
+ - (void)setLinkVariants:(NSArray<LinkVariantConfig *> *)newValue
1314
+ {
1315
+ _linkVariants = newValue;
1316
+ NSMutableArray<LinkVariantRegexEntry *> *compiledEntries = [NSMutableArray arrayWithCapacity:newValue.count];
1317
+ for (LinkVariantConfig *variant in newValue) {
1318
+ NSError *error = nil;
1319
+ NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:variant.pattern
1320
+ options:0
1321
+ error:&error];
1322
+ if (regex) {
1323
+ LinkVariantRegexEntry *entry = [[LinkVariantRegexEntry alloc] init];
1324
+ entry.regex = regex;
1325
+ entry.variant = variant;
1326
+ [compiledEntries addObject:entry];
1327
+ }
1328
+ }
1329
+ _compiledVariantRegexes = [compiledEntries copy];
1330
+ }
1331
+
1332
+ - (nullable LinkVariantConfig *)effectiveLinkVariantForURL:(NSString *)url
1333
+ {
1334
+ if (_linkVariants.count == 0)
1335
+ return nil;
1336
+ NSUInteger len = url.length;
1337
+ for (NSUInteger i = 0; i < _compiledVariantRegexes.count; i++) {
1338
+ LinkVariantRegexEntry *entry = _compiledVariantRegexes[i];
1339
+ if ([entry.regex rangeOfFirstMatchInString:url options:0 range:NSMakeRange(0, len)].location != NSNotFound) {
1340
+ return entry.variant;
1341
+ }
1342
+ }
1343
+ return nil;
1344
+ }
1345
+
1346
+ - (NSString *)strongFontFamily
1347
+ {
1348
+ return _strongFontFamily;
1349
+ }
1350
+
1351
+ - (void)setStrongFontFamily:(NSString *)newValue
1352
+ {
1353
+ _strongFontFamily = newValue;
1354
+ }
1355
+
1356
+ - (NSString *)strongFontWeight
1357
+ {
1358
+ return _strongFontWeight;
1359
+ }
1360
+
1361
+ - (void)setStrongFontWeight:(NSString *)newValue
1362
+ {
1363
+ _strongFontWeight = newValue;
1364
+ }
1365
+
1366
+ - (RCTUIColor *)strongColor
1367
+ {
1368
+ return _strongColor;
1369
+ }
1370
+
1371
+ - (void)setStrongColor:(RCTUIColor *)newValue
1372
+ {
1373
+ _strongColor = newValue;
1374
+ }
1375
+
1376
+ - (NSString *)emphasisFontFamily
1377
+ {
1378
+ return _emphasisFontFamily;
1379
+ }
1380
+
1381
+ - (void)setEmphasisFontFamily:(NSString *)newValue
1382
+ {
1383
+ _emphasisFontFamily = newValue;
1384
+ }
1385
+
1386
+ - (NSString *)emphasisFontStyle
1387
+ {
1388
+ return _emphasisFontStyle;
1389
+ }
1390
+
1391
+ - (void)setEmphasisFontStyle:(NSString *)newValue
1392
+ {
1393
+ _emphasisFontStyle = newValue;
1394
+ }
1395
+
1396
+ - (RCTUIColor *)emphasisColor
1397
+ {
1398
+ return _emphasisColor;
1399
+ }
1400
+
1401
+ - (void)setEmphasisColor:(RCTUIColor *)newValue
1402
+ {
1403
+ _emphasisColor = newValue;
1404
+ }
1405
+
1406
+ - (RCTUIColor *)strikethroughColor
1407
+ {
1408
+ return _strikethroughColor;
1409
+ }
1410
+
1411
+ - (void)setStrikethroughColor:(RCTUIColor *)newValue
1412
+ {
1413
+ _strikethroughColor = newValue;
1414
+ }
1415
+
1416
+ - (RCTUIColor *)highlightColor
1417
+ {
1418
+ return _highlightColor;
1419
+ }
1420
+
1421
+ - (void)setHighlightColor:(RCTUIColor *)newValue
1422
+ {
1423
+ _highlightColor = newValue;
1424
+ }
1425
+
1426
+ - (RCTUIColor *)highlightBackgroundColor
1427
+ {
1428
+ return _highlightBackgroundColor;
1429
+ }
1430
+
1431
+ - (void)setHighlightBackgroundColor:(RCTUIColor *)newValue
1432
+ {
1433
+ _highlightBackgroundColor = newValue;
1434
+ }
1435
+
1436
+ - (RCTUIColor *)underlineColor
1437
+ {
1438
+ return _underlineColor;
1439
+ }
1440
+
1441
+ - (void)setUnderlineColor:(RCTUIColor *)newValue
1442
+ {
1443
+ _underlineColor = newValue;
1444
+ }
1445
+
1446
+ - (NSString *)codeFontFamily
1447
+ {
1448
+ return _codeFontFamily;
1449
+ }
1450
+
1451
+ - (void)setCodeFontFamily:(NSString *)newValue
1452
+ {
1453
+ _codeFontFamily = newValue;
1454
+ }
1455
+
1456
+ - (CGFloat)codeFontSize
1457
+ {
1458
+ return _codeFontSize;
1459
+ }
1460
+
1461
+ - (void)setCodeFontSize:(CGFloat)newValue
1462
+ {
1463
+ _codeFontSize = newValue;
1464
+ }
1465
+
1466
+ - (RCTUIColor *)codeColor
1467
+ {
1468
+ return _codeColor;
1469
+ }
1470
+
1471
+ - (void)setCodeColor:(RCTUIColor *)newValue
1472
+ {
1473
+ _codeColor = newValue;
1474
+ }
1475
+
1476
+ - (RCTUIColor *)codeBackgroundColor
1477
+ {
1478
+ return _codeBackgroundColor;
1479
+ }
1480
+
1481
+ - (void)setCodeBackgroundColor:(RCTUIColor *)newValue
1482
+ {
1483
+ _codeBackgroundColor = newValue;
1484
+ }
1485
+
1486
+ - (RCTUIColor *)codeBorderColor
1487
+ {
1488
+ return _codeBorderColor;
1489
+ }
1490
+
1491
+ - (void)setCodeBorderColor:(RCTUIColor *)newValue
1492
+ {
1493
+ _codeBorderColor = newValue;
1494
+ }
1495
+
1496
+ - (CGFloat)imageHeight
1497
+ {
1498
+ return _imageHeight;
1499
+ }
1500
+
1501
+ - (void)setImageHeight:(CGFloat)newValue
1502
+ {
1503
+ _imageHeight = newValue;
1504
+ }
1505
+
1506
+ - (CGFloat)imageBorderRadius
1507
+ {
1508
+ return _imageBorderRadius;
1509
+ }
1510
+
1511
+ - (void)setImageBorderRadius:(CGFloat)newValue
1512
+ {
1513
+ _imageBorderRadius = newValue;
1514
+ }
1515
+
1516
+ - (CGFloat)imageMarginTop
1517
+ {
1518
+ return _imageMarginTop;
1519
+ }
1520
+
1521
+ - (void)setImageMarginTop:(CGFloat)newValue
1522
+ {
1523
+ _imageMarginTop = newValue;
1524
+ }
1525
+
1526
+ - (CGFloat)imageMarginBottom
1527
+ {
1528
+ return _imageMarginBottom;
1529
+ }
1530
+
1531
+ - (void)setImageMarginBottom:(CGFloat)newValue
1532
+ {
1533
+ _imageMarginBottom = newValue;
1534
+ }
1535
+
1536
+ - (CGFloat)inlineImageSize
1537
+ {
1538
+ return _inlineImageSize;
1539
+ }
1540
+
1541
+ - (void)setInlineImageSize:(CGFloat)newValue
1542
+ {
1543
+ _inlineImageSize = newValue;
1544
+ }
1545
+
1546
+ // Blockquote properties
1547
+ - (CGFloat)blockquoteFontSize
1548
+ {
1549
+ return _blockquoteFontSize;
1550
+ }
1551
+
1552
+ - (void)setBlockquoteFontSize:(CGFloat)newValue
1553
+ {
1554
+ _blockquoteFontSize = newValue;
1555
+ [_blockquoteFont invalidate];
1556
+ }
1557
+
1558
+ - (NSString *)blockquoteFontFamily
1559
+ {
1560
+ return _blockquoteFontFamily;
1561
+ }
1562
+
1563
+ - (void)setBlockquoteFontFamily:(NSString *)newValue
1564
+ {
1565
+ _blockquoteFontFamily = newValue;
1566
+ [_blockquoteFont invalidate];
1567
+ }
1568
+
1569
+ - (NSString *)blockquoteFontWeight
1570
+ {
1571
+ return _blockquoteFontWeight;
1572
+ }
1573
+
1574
+ - (void)setBlockquoteFontWeight:(NSString *)newValue
1575
+ {
1576
+ _blockquoteFontWeight = newValue;
1577
+ [_blockquoteFont invalidate];
1578
+ }
1579
+
1580
+ - (RCTUIColor *)blockquoteColor
1581
+ {
1582
+ return _blockquoteColor;
1583
+ }
1584
+
1585
+ - (void)setBlockquoteColor:(RCTUIColor *)newValue
1586
+ {
1587
+ _blockquoteColor = newValue;
1588
+ }
1589
+
1590
+ - (CGFloat)blockquoteMarginTop
1591
+ {
1592
+ return _blockquoteMarginTop;
1593
+ }
1594
+
1595
+ - (void)setBlockquoteMarginTop:(CGFloat)newValue
1596
+ {
1597
+ _blockquoteMarginTop = newValue;
1598
+ }
1599
+
1600
+ - (CGFloat)blockquoteMarginBottom
1601
+ {
1602
+ return _blockquoteMarginBottom;
1603
+ }
1604
+
1605
+ - (void)setBlockquoteMarginBottom:(CGFloat)newValue
1606
+ {
1607
+ _blockquoteMarginBottom = newValue;
1608
+ }
1609
+
1610
+ - (CGFloat)blockquoteLineHeight
1611
+ {
1612
+ if (_allowFontScaling && _blockquoteLineHeight > 0) {
1613
+ return _blockquoteLineHeight * RCTFontSizeMultiplierWithMax(_maxFontSizeMultiplier);
1614
+ }
1615
+ return _blockquoteLineHeight;
1616
+ }
1617
+
1618
+ - (void)setBlockquoteLineHeight:(CGFloat)newValue
1619
+ {
1620
+ _blockquoteLineHeight = newValue;
1621
+ }
1622
+
1623
+ - (UIFont *)blockquoteFont
1624
+ {
1625
+ if (_blockquoteFont.needsRecreation || !_blockquoteFont.cachedFont) {
1626
+ _blockquoteFont.cachedFont = [RCTFont updateFont:nil
1627
+ withFamily:_blockquoteFontFamily
1628
+ size:@(_blockquoteFontSize)
1629
+ weight:normalizedFontWeight(_blockquoteFontWeight)
1630
+ style:nil
1631
+ variant:nil
1632
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:_blockquoteFontSize]];
1633
+ _blockquoteFont.needsRecreation = NO;
1634
+ }
1635
+ return _blockquoteFont.cachedFont;
1636
+ }
1637
+
1638
+ - (RCTUIColor *)blockquoteBorderColor
1639
+ {
1640
+ return _blockquoteBorderColor;
1641
+ }
1642
+
1643
+ - (void)setBlockquoteBorderColor:(RCTUIColor *)newValue
1644
+ {
1645
+ _blockquoteBorderColor = newValue;
1646
+ }
1647
+
1648
+ - (CGFloat)blockquoteBorderWidth
1649
+ {
1650
+ return _blockquoteBorderWidth;
1651
+ }
1652
+
1653
+ - (void)setBlockquoteBorderWidth:(CGFloat)newValue
1654
+ {
1655
+ _blockquoteBorderWidth = newValue;
1656
+ }
1657
+
1658
+ - (CGFloat)blockquoteGapWidth
1659
+ {
1660
+ return _blockquoteGapWidth;
1661
+ }
1662
+
1663
+ - (void)setBlockquoteGapWidth:(CGFloat)newValue
1664
+ {
1665
+ _blockquoteGapWidth = newValue;
1666
+ }
1667
+
1668
+ - (RCTUIColor *)blockquoteBackgroundColor
1669
+ {
1670
+ return _blockquoteBackgroundColor;
1671
+ }
1672
+
1673
+ - (void)setBlockquoteBackgroundColor:(RCTUIColor *)newValue
1674
+ {
1675
+ _blockquoteBackgroundColor = newValue;
1676
+ }
1677
+
1678
+ // List style properties (combined for both ordered and unordered lists)
1679
+ - (CGFloat)listStyleFontSize
1680
+ {
1681
+ return _listStyleFontSize;
1682
+ }
1683
+
1684
+ - (void)setListStyleFontSize:(CGFloat)newValue
1685
+ {
1686
+ _listStyleFontSize = newValue;
1687
+ [_listMarkerFont invalidate];
1688
+ [_listStyleFont invalidate];
1689
+ }
1690
+
1691
+ - (NSString *)listStyleFontFamily
1692
+ {
1693
+ return _listStyleFontFamily;
1694
+ }
1695
+
1696
+ - (void)setListStyleFontFamily:(NSString *)newValue
1697
+ {
1698
+ _listStyleFontFamily = newValue;
1699
+ [_listMarkerFont invalidate];
1700
+ [_listStyleFont invalidate];
1701
+ }
1702
+
1703
+ - (NSString *)listStyleFontWeight
1704
+ {
1705
+ return _listStyleFontWeight;
1706
+ }
1707
+
1708
+ - (void)setListStyleFontWeight:(NSString *)newValue
1709
+ {
1710
+ _listStyleFontWeight = newValue;
1711
+ [_listStyleFont invalidate];
1712
+ }
1713
+
1714
+ - (RCTUIColor *)listStyleColor
1715
+ {
1716
+ return _listStyleColor;
1717
+ }
1718
+
1719
+ - (void)setListStyleColor:(RCTUIColor *)newValue
1720
+ {
1721
+ _listStyleColor = newValue;
1722
+ }
1723
+
1724
+ - (CGFloat)listStyleMarginTop
1725
+ {
1726
+ return _listStyleMarginTop;
1727
+ }
1728
+
1729
+ - (void)setListStyleMarginTop:(CGFloat)newValue
1730
+ {
1731
+ _listStyleMarginTop = newValue;
1732
+ }
1733
+
1734
+ - (CGFloat)listStyleMarginBottom
1735
+ {
1736
+ return _listStyleMarginBottom;
1737
+ }
1738
+
1739
+ - (void)setListStyleMarginBottom:(CGFloat)newValue
1740
+ {
1741
+ _listStyleMarginBottom = newValue;
1742
+ }
1743
+
1744
+ - (CGFloat)listStyleLineHeight
1745
+ {
1746
+ if (_allowFontScaling && _listStyleLineHeight > 0) {
1747
+ return _listStyleLineHeight * RCTFontSizeMultiplierWithMax(_maxFontSizeMultiplier);
1748
+ }
1749
+ return _listStyleLineHeight;
1750
+ }
1751
+
1752
+ - (void)setListStyleLineHeight:(CGFloat)newValue
1753
+ {
1754
+ _listStyleLineHeight = newValue;
1755
+ }
1756
+
1757
+ - (RCTUIColor *)listStyleBulletColor
1758
+ {
1759
+ return _listStyleBulletColor;
1760
+ }
1761
+
1762
+ - (void)setListStyleBulletColor:(RCTUIColor *)newValue
1763
+ {
1764
+ _listStyleBulletColor = newValue;
1765
+ }
1766
+
1767
+ - (CGFloat)listStyleBulletSize
1768
+ {
1769
+ return _listStyleBulletSize;
1770
+ }
1771
+
1772
+ - (void)setListStyleBulletSize:(CGFloat)newValue
1773
+ {
1774
+ _listStyleBulletSize = newValue;
1775
+ }
1776
+
1777
+ - (CGFloat)listStyleMarkerMinWidth
1778
+ {
1779
+ return _listStyleMarkerMinWidth;
1780
+ }
1781
+
1782
+ - (void)setListStyleMarkerMinWidth:(CGFloat)newValue
1783
+ {
1784
+ _listStyleMarkerMinWidth = newValue;
1785
+ }
1786
+
1787
+ - (RCTUIColor *)listStyleMarkerColor
1788
+ {
1789
+ return _listStyleMarkerColor;
1790
+ }
1791
+
1792
+ - (void)setListStyleMarkerColor:(RCTUIColor *)newValue
1793
+ {
1794
+ _listStyleMarkerColor = newValue;
1795
+ }
1796
+
1797
+ - (NSString *)listStyleMarkerFontWeight
1798
+ {
1799
+ return _listStyleMarkerFontWeight;
1800
+ }
1801
+
1802
+ - (void)setListStyleMarkerFontWeight:(NSString *)newValue
1803
+ {
1804
+ _listStyleMarkerFontWeight = newValue;
1805
+ [_listMarkerFont invalidate];
1806
+ }
1807
+
1808
+ - (CGFloat)listStyleGapWidth
1809
+ {
1810
+ return _listStyleGapWidth;
1811
+ }
1812
+
1813
+ - (void)setListStyleGapWidth:(CGFloat)newValue
1814
+ {
1815
+ _listStyleGapWidth = newValue;
1816
+ }
1817
+
1818
+ - (CGFloat)listStyleMarginLeft
1819
+ {
1820
+ return _listStyleMarginLeft;
1821
+ }
1822
+
1823
+ - (void)setListStyleMarginLeft:(CGFloat)newValue
1824
+ {
1825
+ _listStyleMarginLeft = newValue;
1826
+ }
1827
+
1828
+ - (UIFont *)listMarkerFont
1829
+ {
1830
+ if (_listMarkerFont.needsRecreation || !_listMarkerFont.cachedFont) {
1831
+ _listMarkerFont.cachedFont = [RCTFont updateFont:nil
1832
+ withFamily:_listStyleFontFamily
1833
+ size:@(_listStyleFontSize)
1834
+ weight:normalizedFontWeight(_listStyleMarkerFontWeight)
1835
+ style:nil
1836
+ variant:nil
1837
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:_listStyleFontSize]];
1838
+ _listMarkerFont.needsRecreation = NO;
1839
+ }
1840
+ return _listMarkerFont.cachedFont;
1841
+ }
1842
+
1843
+ - (UIFont *)listStyleFont
1844
+ {
1845
+ if (_listStyleFont.needsRecreation || !_listStyleFont.cachedFont) {
1846
+ _listStyleFont.cachedFont = [RCTFont updateFont:nil
1847
+ withFamily:_listStyleFontFamily
1848
+ size:@(_listStyleFontSize)
1849
+ weight:normalizedFontWeight(_listStyleFontWeight)
1850
+ style:nil
1851
+ variant:nil
1852
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:_listStyleFontSize]];
1853
+ _listStyleFont.needsRecreation = NO;
1854
+ }
1855
+ return _listStyleFont.cachedFont;
1856
+ }
1857
+
1858
+ static const CGFloat kDefaultMinGap = 4.0;
1859
+
1860
+ - (CGFloat)effectiveListGapWidth
1861
+ {
1862
+ return MAX(_listStyleGapWidth, kDefaultMinGap);
1863
+ }
1864
+
1865
+ - (CGFloat)effectiveListMarginLeftForBullet
1866
+ {
1867
+ return MAX(_listStyleMarkerMinWidth, _listStyleBulletSize / 2.0);
1868
+ }
1869
+
1870
+ - (CGFloat)effectiveListMarginLeftForNumber
1871
+ {
1872
+ UIFont *font = [self listMarkerFont];
1873
+ CGFloat natural =
1874
+ [@"99." sizeWithAttributes:@{NSFontAttributeName : font ?: [UIFont systemFontOfSize:_listStyleFontSize]}].width;
1875
+ return MAX(_listStyleMarkerMinWidth, natural);
1876
+ }
1877
+
1878
+ - (CGFloat)effectiveListMarginLeftForTask
1879
+ {
1880
+ return MAX(_listStyleMarkerMinWidth, [self taskListCheckboxSize]);
1881
+ }
1882
+
1883
+ // Code block properties
1884
+ - (CGFloat)codeBlockFontSize
1885
+ {
1886
+ return _codeBlockFontSize;
1887
+ }
1888
+
1889
+ - (void)setCodeBlockFontSize:(CGFloat)newValue
1890
+ {
1891
+ _codeBlockFontSize = newValue;
1892
+ [_codeBlockFont invalidate];
1893
+ }
1894
+
1895
+ - (NSString *)codeBlockFontFamily
1896
+ {
1897
+ return _codeBlockFontFamily;
1898
+ }
1899
+
1900
+ - (void)setCodeBlockFontFamily:(NSString *)newValue
1901
+ {
1902
+ _codeBlockFontFamily = newValue;
1903
+ [_codeBlockFont invalidate];
1904
+ }
1905
+
1906
+ - (NSString *)codeBlockFontWeight
1907
+ {
1908
+ return _codeBlockFontWeight;
1909
+ }
1910
+
1911
+ - (void)setCodeBlockFontWeight:(NSString *)newValue
1912
+ {
1913
+ _codeBlockFontWeight = newValue;
1914
+ [_codeBlockFont invalidate];
1915
+ }
1916
+
1917
+ - (RCTUIColor *)codeBlockColor
1918
+ {
1919
+ return _codeBlockColor;
1920
+ }
1921
+
1922
+ - (void)setCodeBlockColor:(RCTUIColor *)newValue
1923
+ {
1924
+ _codeBlockColor = newValue;
1925
+ }
1926
+
1927
+ - (CGFloat)codeBlockMarginTop
1928
+ {
1929
+ return _codeBlockMarginTop;
1930
+ }
1931
+
1932
+ - (void)setCodeBlockMarginTop:(CGFloat)newValue
1933
+ {
1934
+ _codeBlockMarginTop = newValue;
1935
+ }
1936
+
1937
+ - (CGFloat)codeBlockMarginBottom
1938
+ {
1939
+ return _codeBlockMarginBottom;
1940
+ }
1941
+
1942
+ - (void)setCodeBlockMarginBottom:(CGFloat)newValue
1943
+ {
1944
+ _codeBlockMarginBottom = newValue;
1945
+ }
1946
+
1947
+ - (CGFloat)codeBlockLineHeight
1948
+ {
1949
+ if (_allowFontScaling && _codeBlockLineHeight > 0) {
1950
+ return _codeBlockLineHeight * RCTFontSizeMultiplierWithMax(_maxFontSizeMultiplier);
1951
+ }
1952
+ return _codeBlockLineHeight;
1953
+ }
1954
+
1955
+ - (void)setCodeBlockLineHeight:(CGFloat)newValue
1956
+ {
1957
+ _codeBlockLineHeight = newValue;
1958
+ }
1959
+
1960
+ - (RCTUIColor *)codeBlockBackgroundColor
1961
+ {
1962
+ return _codeBlockBackgroundColor;
1963
+ }
1964
+
1965
+ - (void)setCodeBlockBackgroundColor:(RCTUIColor *)newValue
1966
+ {
1967
+ _codeBlockBackgroundColor = newValue;
1968
+ }
1969
+
1970
+ - (RCTUIColor *)codeBlockBorderColor
1971
+ {
1972
+ return _codeBlockBorderColor;
1973
+ }
1974
+
1975
+ - (void)setCodeBlockBorderColor:(RCTUIColor *)newValue
1976
+ {
1977
+ _codeBlockBorderColor = newValue;
1978
+ }
1979
+
1980
+ - (CGFloat)codeBlockBorderRadius
1981
+ {
1982
+ return _codeBlockBorderRadius;
1983
+ }
1984
+
1985
+ - (void)setCodeBlockBorderRadius:(CGFloat)newValue
1986
+ {
1987
+ _codeBlockBorderRadius = newValue;
1988
+ }
1989
+
1990
+ - (CGFloat)codeBlockBorderWidth
1991
+ {
1992
+ return _codeBlockBorderWidth;
1993
+ }
1994
+
1995
+ - (void)setCodeBlockBorderWidth:(CGFloat)newValue
1996
+ {
1997
+ _codeBlockBorderWidth = newValue;
1998
+ }
1999
+
2000
+ - (CGFloat)codeBlockPadding
2001
+ {
2002
+ return _codeBlockPadding;
2003
+ }
2004
+
2005
+ - (void)setCodeBlockPadding:(CGFloat)newValue
2006
+ {
2007
+ _codeBlockPadding = newValue;
2008
+ }
2009
+
2010
+ - (UIFont *)codeBlockFont
2011
+ {
2012
+ if (_codeBlockFont.needsRecreation || !_codeBlockFont.cachedFont) {
2013
+ _codeBlockFont.cachedFont = [RCTFont updateFont:nil
2014
+ withFamily:_codeBlockFontFamily
2015
+ size:@(_codeBlockFontSize)
2016
+ weight:normalizedFontWeight(_codeBlockFontWeight)
2017
+ style:nil
2018
+ variant:nil
2019
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:_codeBlockFontSize]];
2020
+ _codeBlockFont.needsRecreation = NO;
2021
+ }
2022
+ return _codeBlockFont.cachedFont;
2023
+ }
2024
+
2025
+ // Thematic break properties
2026
+ - (RCTUIColor *)thematicBreakColor
2027
+ {
2028
+ return _thematicBreakColor;
2029
+ }
2030
+
2031
+ - (void)setThematicBreakColor:(RCTUIColor *)newValue
2032
+ {
2033
+ _thematicBreakColor = newValue;
2034
+ }
2035
+
2036
+ - (CGFloat)thematicBreakHeight
2037
+ {
2038
+ return _thematicBreakHeight;
2039
+ }
2040
+
2041
+ - (void)setThematicBreakHeight:(CGFloat)newValue
2042
+ {
2043
+ _thematicBreakHeight = newValue;
2044
+ }
2045
+
2046
+ - (CGFloat)thematicBreakMarginTop
2047
+ {
2048
+ return _thematicBreakMarginTop;
2049
+ }
2050
+
2051
+ - (void)setThematicBreakMarginTop:(CGFloat)newValue
2052
+ {
2053
+ _thematicBreakMarginTop = newValue;
2054
+ }
2055
+
2056
+ - (CGFloat)thematicBreakMarginBottom
2057
+ {
2058
+ return _thematicBreakMarginBottom;
2059
+ }
2060
+
2061
+ - (void)setThematicBreakMarginBottom:(CGFloat)newValue
2062
+ {
2063
+ _thematicBreakMarginBottom = newValue;
2064
+ }
2065
+
2066
+ // Table properties
2067
+ - (CGFloat)tableFontSize
2068
+ {
2069
+ return _tableFontSize;
2070
+ }
2071
+
2072
+ - (void)setTableFontSize:(CGFloat)newValue
2073
+ {
2074
+ _tableFontSize = newValue;
2075
+ [_tableFont invalidate];
2076
+ [_tableHeaderFont invalidate];
2077
+ }
2078
+
2079
+ - (NSString *)tableFontFamily
2080
+ {
2081
+ return _tableFontFamily;
2082
+ }
2083
+
2084
+ - (void)setTableFontFamily:(NSString *)newValue
2085
+ {
2086
+ _tableFontFamily = newValue;
2087
+ [_tableFont invalidate];
2088
+ [_tableHeaderFont invalidate];
2089
+ }
2090
+
2091
+ - (NSString *)tableFontWeight
2092
+ {
2093
+ return _tableFontWeight;
2094
+ }
2095
+
2096
+ - (void)setTableFontWeight:(NSString *)newValue
2097
+ {
2098
+ _tableFontWeight = newValue;
2099
+ [_tableFont invalidate];
2100
+ }
2101
+
2102
+ - (RCTUIColor *)tableColor
2103
+ {
2104
+ return _tableColor;
2105
+ }
2106
+
2107
+ - (void)setTableColor:(RCTUIColor *)newValue
2108
+ {
2109
+ _tableColor = newValue;
2110
+ }
2111
+
2112
+ - (CGFloat)tableMarginTop
2113
+ {
2114
+ return _tableMarginTop;
2115
+ }
2116
+
2117
+ - (void)setTableMarginTop:(CGFloat)newValue
2118
+ {
2119
+ _tableMarginTop = newValue;
2120
+ }
2121
+
2122
+ - (CGFloat)tableMarginBottom
2123
+ {
2124
+ return _tableMarginBottom;
2125
+ }
2126
+
2127
+ - (void)setTableMarginBottom:(CGFloat)newValue
2128
+ {
2129
+ _tableMarginBottom = newValue;
2130
+ }
2131
+
2132
+ - (CGFloat)tableLineHeight
2133
+ {
2134
+ if (_allowFontScaling && _tableLineHeight > 0) {
2135
+ return _tableLineHeight * RCTFontSizeMultiplierWithMax(_maxFontSizeMultiplier);
2136
+ }
2137
+ return _tableLineHeight;
2138
+ }
2139
+
2140
+ - (void)setTableLineHeight:(CGFloat)newValue
2141
+ {
2142
+ _tableLineHeight = newValue;
2143
+ }
2144
+
2145
+ - (UIFont *)tableFont
2146
+ {
2147
+ if (_tableFont.needsRecreation || !_tableFont.cachedFont) {
2148
+ _tableFont.cachedFont = [RCTFont updateFont:nil
2149
+ withFamily:_tableFontFamily
2150
+ size:@(_tableFontSize)
2151
+ weight:normalizedFontWeight(_tableFontWeight)
2152
+ style:nil
2153
+ variant:nil
2154
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:_tableFontSize]];
2155
+ _tableFont.needsRecreation = NO;
2156
+ }
2157
+ return _tableFont.cachedFont;
2158
+ }
2159
+
2160
+ - (NSString *)tableHeaderFontFamily
2161
+ {
2162
+ return _tableHeaderFontFamily;
2163
+ }
2164
+
2165
+ - (void)setTableHeaderFontFamily:(NSString *)newValue
2166
+ {
2167
+ _tableHeaderFontFamily = newValue;
2168
+ [_tableHeaderFont invalidate];
2169
+ }
2170
+
2171
+ - (UIFont *)tableHeaderFont
2172
+ {
2173
+ if (_tableHeaderFont.needsRecreation || !_tableHeaderFont.cachedFont) {
2174
+ NSString *family = (_tableHeaderFontFamily.length > 0) ? _tableHeaderFontFamily : _tableFontFamily;
2175
+ _tableHeaderFont.cachedFont = [RCTFont updateFont:nil
2176
+ withFamily:family
2177
+ size:@(_tableFontSize)
2178
+ weight:normalizedFontWeight(@"bold")
2179
+ style:nil
2180
+ variant:nil
2181
+ scaleMultiplier:[self effectiveScaleMultiplierForFontSize:_tableFontSize]];
2182
+ _tableHeaderFont.needsRecreation = NO;
2183
+ }
2184
+ return _tableHeaderFont.cachedFont;
2185
+ }
2186
+
2187
+ - (RCTUIColor *)tableHeaderBackgroundColor
2188
+ {
2189
+ return _tableHeaderBackgroundColor;
2190
+ }
2191
+
2192
+ - (void)setTableHeaderBackgroundColor:(RCTUIColor *)newValue
2193
+ {
2194
+ _tableHeaderBackgroundColor = newValue;
2195
+ }
2196
+
2197
+ - (RCTUIColor *)tableHeaderTextColor
2198
+ {
2199
+ return _tableHeaderTextColor;
2200
+ }
2201
+
2202
+ - (void)setTableHeaderTextColor:(RCTUIColor *)newValue
2203
+ {
2204
+ _tableHeaderTextColor = newValue;
2205
+ }
2206
+
2207
+ - (RCTUIColor *)tableRowEvenBackgroundColor
2208
+ {
2209
+ return _tableRowEvenBackgroundColor;
2210
+ }
2211
+
2212
+ - (void)setTableRowEvenBackgroundColor:(RCTUIColor *)newValue
2213
+ {
2214
+ _tableRowEvenBackgroundColor = newValue;
2215
+ }
2216
+
2217
+ - (RCTUIColor *)tableRowOddBackgroundColor
2218
+ {
2219
+ return _tableRowOddBackgroundColor;
2220
+ }
2221
+
2222
+ - (void)setTableRowOddBackgroundColor:(RCTUIColor *)newValue
2223
+ {
2224
+ _tableRowOddBackgroundColor = newValue;
2225
+ }
2226
+
2227
+ - (RCTUIColor *)tableBorderColor
2228
+ {
2229
+ return _tableBorderColor;
2230
+ }
2231
+
2232
+ - (void)setTableBorderColor:(RCTUIColor *)newValue
2233
+ {
2234
+ _tableBorderColor = newValue;
2235
+ }
2236
+
2237
+ - (CGFloat)tableBorderWidth
2238
+ {
2239
+ return _tableBorderWidth;
2240
+ }
2241
+
2242
+ - (void)setTableBorderWidth:(CGFloat)newValue
2243
+ {
2244
+ _tableBorderWidth = newValue;
2245
+ }
2246
+
2247
+ - (CGFloat)tableBorderRadius
2248
+ {
2249
+ return _tableBorderRadius;
2250
+ }
2251
+
2252
+ - (void)setTableBorderRadius:(CGFloat)newValue
2253
+ {
2254
+ _tableBorderRadius = newValue;
2255
+ }
2256
+
2257
+ - (CGFloat)tableCellPaddingHorizontal
2258
+ {
2259
+ return _tableCellPaddingHorizontal;
2260
+ }
2261
+
2262
+ - (void)setTableCellPaddingHorizontal:(CGFloat)newValue
2263
+ {
2264
+ _tableCellPaddingHorizontal = newValue;
2265
+ }
2266
+
2267
+ - (CGFloat)tableCellPaddingVertical
2268
+ {
2269
+ return _tableCellPaddingVertical;
2270
+ }
2271
+
2272
+ - (void)setTableCellPaddingVertical:(CGFloat)newValue
2273
+ {
2274
+ _tableCellPaddingVertical = newValue;
2275
+ }
2276
+
2277
+ // Task list
2278
+
2279
+ - (RCTUIColor *)taskListCheckedColor
2280
+ {
2281
+ return _taskListCheckedColor;
2282
+ }
2283
+
2284
+ - (void)setTaskListCheckedColor:(RCTUIColor *)newValue
2285
+ {
2286
+ _taskListCheckedColor = newValue;
2287
+ }
2288
+
2289
+ - (RCTUIColor *)taskListBorderColor
2290
+ {
2291
+ return _taskListBorderColor;
2292
+ }
2293
+
2294
+ - (void)setTaskListBorderColor:(RCTUIColor *)newValue
2295
+ {
2296
+ _taskListBorderColor = newValue;
2297
+ }
2298
+
2299
+ - (CGFloat)taskListCheckboxSize
2300
+ {
2301
+ return _taskListCheckboxSize;
2302
+ }
2303
+
2304
+ - (void)setTaskListCheckboxSize:(CGFloat)newValue
2305
+ {
2306
+ _taskListCheckboxSize = newValue;
2307
+ }
2308
+
2309
+ - (CGFloat)taskListCheckboxBorderRadius
2310
+ {
2311
+ return _taskListCheckboxBorderRadius;
2312
+ }
2313
+
2314
+ - (void)setTaskListCheckboxBorderRadius:(CGFloat)newValue
2315
+ {
2316
+ _taskListCheckboxBorderRadius = newValue;
2317
+ }
2318
+
2319
+ - (RCTUIColor *)taskListCheckmarkColor
2320
+ {
2321
+ return _taskListCheckmarkColor;
2322
+ }
2323
+
2324
+ - (void)setTaskListCheckmarkColor:(RCTUIColor *)newValue
2325
+ {
2326
+ _taskListCheckmarkColor = newValue;
2327
+ }
2328
+
2329
+ - (RCTUIColor *)taskListCheckedTextColor
2330
+ {
2331
+ return _taskListCheckedTextColor;
2332
+ }
2333
+
2334
+ - (void)setTaskListCheckedTextColor:(RCTUIColor *)newValue
2335
+ {
2336
+ _taskListCheckedTextColor = newValue;
2337
+ }
2338
+
2339
+ - (BOOL)taskListCheckedStrikethrough
2340
+ {
2341
+ return _taskListCheckedStrikethrough;
2342
+ }
2343
+
2344
+ - (void)setTaskListCheckedStrikethrough:(BOOL)newValue
2345
+ {
2346
+ _taskListCheckedStrikethrough = newValue;
2347
+ }
2348
+
2349
+ // Math
2350
+
2351
+ - (CGFloat)mathFontSize
2352
+ {
2353
+ return _mathFontSize;
2354
+ }
2355
+
2356
+ - (void)setMathFontSize:(CGFloat)newValue
2357
+ {
2358
+ _mathFontSize = newValue;
2359
+ }
2360
+
2361
+ - (RCTUIColor *)mathColor
2362
+ {
2363
+ return _mathColor;
2364
+ }
2365
+
2366
+ - (void)setMathColor:(RCTUIColor *)newValue
2367
+ {
2368
+ _mathColor = newValue;
2369
+ }
2370
+
2371
+ - (RCTUIColor *)mathBackgroundColor
2372
+ {
2373
+ return _mathBackgroundColor;
2374
+ }
2375
+
2376
+ - (void)setMathBackgroundColor:(RCTUIColor *)newValue
2377
+ {
2378
+ _mathBackgroundColor = newValue;
2379
+ }
2380
+
2381
+ - (CGFloat)mathPadding
2382
+ {
2383
+ return _mathPadding;
2384
+ }
2385
+
2386
+ - (void)setMathPadding:(CGFloat)newValue
2387
+ {
2388
+ _mathPadding = newValue;
2389
+ }
2390
+
2391
+ - (CGFloat)mathMarginTop
2392
+ {
2393
+ return _mathMarginTop;
2394
+ }
2395
+
2396
+ - (void)setMathMarginTop:(CGFloat)newValue
2397
+ {
2398
+ _mathMarginTop = newValue;
2399
+ }
2400
+
2401
+ - (CGFloat)mathMarginBottom
2402
+ {
2403
+ return _mathMarginBottom;
2404
+ }
2405
+
2406
+ - (void)setMathMarginBottom:(CGFloat)newValue
2407
+ {
2408
+ _mathMarginBottom = newValue;
2409
+ }
2410
+
2411
+ - (NSString *)mathTextAlign
2412
+ {
2413
+ return _mathTextAlign ?: @"center";
2414
+ }
2415
+
2416
+ - (void)setMathTextAlign:(NSString *)newValue
2417
+ {
2418
+ _mathTextAlign = newValue;
2419
+ }
2420
+
2421
+ // ── Inline Math ─────────────────────────────────────────────────────────────
2422
+
2423
+ - (RCTUIColor *)inlineMathColor
2424
+ {
2425
+ return _inlineMathColor;
2426
+ }
2427
+
2428
+ - (void)setInlineMathColor:(RCTUIColor *)newValue
2429
+ {
2430
+ _inlineMathColor = newValue;
2431
+ }
2432
+
2433
+ // ── Spoiler ─────────────────────────────────────────────────────────────
2434
+
2435
+ - (RCTUIColor *)spoilerColor
2436
+ {
2437
+ return _spoilerColor;
2438
+ }
2439
+
2440
+ - (void)setSpoilerColor:(RCTUIColor *)newValue
2441
+ {
2442
+ _spoilerColor = newValue;
2443
+ }
2444
+
2445
+ - (CGFloat)spoilerParticleDensity
2446
+ {
2447
+ return _spoilerParticleDensity;
2448
+ }
2449
+
2450
+ - (void)setSpoilerParticleDensity:(CGFloat)newValue
2451
+ {
2452
+ _spoilerParticleDensity = newValue;
2453
+ }
2454
+
2455
+ - (CGFloat)spoilerParticleSpeed
2456
+ {
2457
+ return _spoilerParticleSpeed;
2458
+ }
2459
+
2460
+ - (void)setSpoilerParticleSpeed:(CGFloat)newValue
2461
+ {
2462
+ _spoilerParticleSpeed = newValue;
2463
+ }
2464
+
2465
+ - (CGFloat)spoilerSolidBorderRadius
2466
+ {
2467
+ return _spoilerSolidBorderRadius;
2468
+ }
2469
+
2470
+ - (void)setSpoilerSolidBorderRadius:(CGFloat)newValue
2471
+ {
2472
+ _spoilerSolidBorderRadius = newValue;
2473
+ }
2474
+
2475
+ - (CGFloat)superscriptFontScale
2476
+ {
2477
+ return _superscriptFontScale;
2478
+ }
2479
+
2480
+ - (void)setSuperscriptFontScale:(CGFloat)newValue
2481
+ {
2482
+ _superscriptFontScale = newValue;
2483
+ }
2484
+
2485
+ - (CGFloat)superscriptBaselineOffsetScale
2486
+ {
2487
+ return _superscriptBaselineOffsetScale;
2488
+ }
2489
+
2490
+ - (void)setSuperscriptBaselineOffsetScale:(CGFloat)newValue
2491
+ {
2492
+ _superscriptBaselineOffsetScale = newValue;
2493
+ }
2494
+
2495
+ - (CGFloat)subscriptFontScale
2496
+ {
2497
+ return _subscriptFontScale;
2498
+ }
2499
+
2500
+ - (void)setSubscriptFontScale:(CGFloat)newValue
2501
+ {
2502
+ _subscriptFontScale = newValue;
2503
+ }
2504
+
2505
+ - (CGFloat)subscriptBaselineOffsetScale
2506
+ {
2507
+ return _subscriptBaselineOffsetScale;
2508
+ }
2509
+
2510
+ - (void)setSubscriptBaselineOffsetScale:(CGFloat)newValue
2511
+ {
2512
+ _subscriptBaselineOffsetScale = newValue;
2513
+ }
2514
+
2515
+ @end