react-native-enriched-markdown-scaffold 0.7.4-scaffold.7 → 0.7.4-scaffold.9

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 (88) hide show
  1. package/android/build.gradle +5 -0
  2. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerDelegate.java +3 -0
  3. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerInterface.java +1 -0
  4. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.cpp +5 -0
  5. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.h +37 -0
  6. package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputManager.kt +8 -0
  7. package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputView.kt +13 -1
  8. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/BlockSyntaxSentinel.kt +69 -0
  9. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputParser.kt +71 -12
  10. package/android/src/main/java/com/swmansion/enriched/markdown/input/layout/InputMeasurementStore.kt +4 -1
  11. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/MathChipStyle.kt +3 -0
  12. package/android/src/main/java/com/swmansion/enriched/markdown/styles/InlineMathStyle.kt +3 -1
  13. package/android/src/main/java/com/swmansion/enriched/markdown/styles/MathFontWeight.kt +25 -0
  14. package/android/src/main/java/com/swmansion/enriched/markdown/styles/MathStyle.kt +12 -1
  15. package/android/src/main/java/com/swmansion/enriched/markdown/utils/input/MarkdownStyleParser.kt +10 -0
  16. package/android/src/math/java/com/swmansion/enriched/markdown/renderer/MathInlineRenderer.kt +1 -0
  17. package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathChipSpan.kt +1 -1
  18. package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathInlineSpan.kt +2 -2
  19. package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathTypeface.kt +30 -0
  20. package/android/src/math/java/com/swmansion/enriched/markdown/views/MathContainerView.kt +3 -1
  21. package/docs/API_REFERENCE.md +9 -0
  22. package/docs/INPUT.md +48 -0
  23. package/docs/LATEX_MATH.md +49 -0
  24. package/docs/STYLES.md +2 -0
  25. package/ios/attachments/ENRMMathInlineAttachment+macOS.m +5 -1
  26. package/ios/attachments/ENRMMathInlineAttachment.h +3 -0
  27. package/ios/attachments/ENRMMathInlineAttachment.m +2 -1
  28. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.cpp +5 -0
  29. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.h +37 -0
  30. package/ios/input/ENRMBlockSyntaxSentinel.h +25 -0
  31. package/ios/input/ENRMBlockSyntaxSentinel.mm +80 -0
  32. package/ios/input/ENRMInputFormatter.h +4 -0
  33. package/ios/input/ENRMInputFormatter.mm +2 -0
  34. package/ios/input/ENRMInputParser.h +5 -0
  35. package/ios/input/ENRMInputParser.mm +79 -6
  36. package/ios/input/EnrichedMarkdownTextInput.mm +19 -2
  37. package/ios/input/InputStylePropsUtils.h +13 -0
  38. package/ios/math/ENRMRaTeXBridge.swift +52 -3
  39. package/ios/renderer/ENRMMathInlineRenderer.m +2 -0
  40. package/ios/styles/StyleConfig.h +4 -0
  41. package/ios/styles/StyleConfig.mm +24 -0
  42. package/ios/utils/ENRMMathFontWeight.h +18 -0
  43. package/ios/utils/StylePropsUtils.h +16 -0
  44. package/ios/views/ENRMMathContainerView.m +3 -1
  45. package/lib/module/EnrichedMarkdownNativeComponent.ts +2 -0
  46. package/lib/module/EnrichedMarkdownTextInput.js +2 -0
  47. package/lib/module/EnrichedMarkdownTextInput.js.map +1 -1
  48. package/lib/module/EnrichedMarkdownTextInputNativeComponent.ts +12 -0
  49. package/lib/module/EnrichedMarkdownTextNativeComponent.ts +2 -0
  50. package/lib/module/normalizeMarkdownStyle.js +4 -2
  51. package/lib/module/normalizeMarkdownStyle.js.map +1 -1
  52. package/lib/module/normalizeMarkdownStyle.web.js +4 -2
  53. package/lib/module/normalizeMarkdownStyle.web.js.map +1 -1
  54. package/lib/module/normalizeMarkdownTextInputStyle.js +7 -3
  55. package/lib/module/normalizeMarkdownTextInputStyle.js.map +1 -1
  56. package/lib/module/web/globalStyles.js +8 -1
  57. package/lib/module/web/globalStyles.js.map +1 -1
  58. package/lib/module/web/styles.js +3 -1
  59. package/lib/module/web/styles.js.map +1 -1
  60. package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts +2 -0
  61. package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts.map +1 -1
  62. package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts +3 -1
  63. package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts.map +1 -1
  64. package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts +12 -0
  65. package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts.map +1 -1
  66. package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts +2 -0
  67. package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts.map +1 -1
  68. package/lib/typescript/src/normalizeMarkdownStyle.d.ts.map +1 -1
  69. package/lib/typescript/src/normalizeMarkdownStyle.web.d.ts.map +1 -1
  70. package/lib/typescript/src/normalizeMarkdownTextInputStyle.d.ts +1 -0
  71. package/lib/typescript/src/normalizeMarkdownTextInputStyle.d.ts.map +1 -1
  72. package/lib/typescript/src/types/MarkdownStyle.d.ts +24 -0
  73. package/lib/typescript/src/types/MarkdownStyle.d.ts.map +1 -1
  74. package/lib/typescript/src/types/MarkdownStyleInternal.d.ts +2 -0
  75. package/lib/typescript/src/types/MarkdownStyleInternal.d.ts.map +1 -1
  76. package/lib/typescript/src/web/styles.d.ts.map +1 -1
  77. package/package.json +1 -1
  78. package/src/EnrichedMarkdownNativeComponent.ts +2 -0
  79. package/src/EnrichedMarkdownTextInput.tsx +4 -0
  80. package/src/EnrichedMarkdownTextInputNativeComponent.ts +12 -0
  81. package/src/EnrichedMarkdownTextNativeComponent.ts +2 -0
  82. package/src/normalizeMarkdownStyle.ts +6 -1
  83. package/src/normalizeMarkdownStyle.web.ts +6 -1
  84. package/src/normalizeMarkdownTextInputStyle.ts +5 -0
  85. package/src/types/MarkdownStyle.ts +24 -0
  86. package/src/types/MarkdownStyleInternal.ts +2 -0
  87. package/src/web/globalStyles.ts +7 -0
  88. package/src/web/styles.ts +5 -1
@@ -1,4 +1,5 @@
1
1
  #import "ENRMInputParser.h"
2
+ #import "ENRMBlockSyntaxSentinel.h"
2
3
  #import "ENRMFormattingRange.h"
3
4
  #import "ENRMInputRemend.h"
4
5
  #include "md4c.h"
@@ -14,6 +15,11 @@
14
15
  @implementation ENRMParseResult
15
16
  @end
16
17
 
18
+ @interface ENRMInputParser ()
19
+ /// Shared body of both public entry points. `remend` gates `ENRMInputRemendComplete`.
20
+ - (ENRMParseResult *)parseToPlainTextAndRanges:(NSString *)markdown remend:(BOOL)remend;
21
+ @end
22
+
17
23
  @implementation ENRMMathAtom
18
24
  @end
19
25
 
@@ -256,9 +262,9 @@ static int onText(MD_TEXTTYPE textType, const MD_CHAR *text, MD_SIZE size, void
256
262
  return 0;
257
263
  }
258
264
 
259
- static bool runMd4cParse(NSString *markdown, ParseContext &context)
265
+ static bool runMd4cParse(NSString *markdown, ParseContext &context, bool remend)
260
266
  {
261
- NSString *completed = ENRMInputRemendComplete(markdown);
267
+ NSString *completed = remend ? ENRMInputRemendComplete(markdown) : markdown;
262
268
  const char *completedUTF8 = [completed UTF8String];
263
269
  size_t completedLength = strlen(completedUTF8);
264
270
  size_t originalLength = [markdown lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
@@ -286,14 +292,14 @@ struct ParsedSpans {
286
292
  std::vector<MathSpanInfo> mathSpans;
287
293
  };
288
294
 
289
- static NSArray<ENRMInputStyledRange *> *runParseInternal(NSString *markdown, ParsedSpans &out)
295
+ static NSArray<ENRMInputStyledRange *> *runParseInternal(NSString *markdown, ParsedSpans &out, bool remend)
290
296
  {
291
297
  if (markdown.length == 0) {
292
298
  return @[];
293
299
  }
294
300
 
295
301
  ParseContext context;
296
- if (!runMd4cParse(markdown, context)) {
302
+ if (!runMd4cParse(markdown, context, remend)) {
297
303
  return @[];
298
304
  }
299
305
 
@@ -355,10 +361,77 @@ static NSArray<ENRMInputStyledRange *> *runParseInternal(NSString *markdown, Par
355
361
  - (NSArray<ENRMInputStyledRange *> *)parse:(NSString *)markdown
356
362
  {
357
363
  ParsedSpans spans;
358
- return runParseInternal(markdown, spans);
364
+ return runParseInternal(markdown, spans, /* remend */ true);
359
365
  }
360
366
 
361
367
  - (ENRMParseResult *)parseToPlainTextAndRanges:(NSString *)markdown
368
+ {
369
+ return [self parseToPlainTextAndRanges:markdown remend:YES];
370
+ }
371
+
372
+ - (ENRMParseResult *)parseToPlainTextAndRanges:(NSString *)markdown blockSyntax:(BOOL)blockSyntax
373
+ {
374
+ if (blockSyntax) {
375
+ return [self parseToPlainTextAndRanges:markdown];
376
+ }
377
+
378
+ NSString *canonical = ENRMBlockSyntaxCanonicalize(markdown);
379
+ if (canonical.length == 0) {
380
+ ENRMParseResult *empty = [[ENRMParseResult alloc] init];
381
+ empty.plainText = @"";
382
+ empty.formattingRanges = @[];
383
+ empty.mathAtoms = @[];
384
+ return empty;
385
+ }
386
+
387
+ // Remending is skipped too: its speculative closing delimiters are the other
388
+ // source of characters the serializer cannot replay.
389
+ ENRMParseResult *encoded = [self parseToPlainTextAndRanges:ENRMBlockSyntaxEncode(canonical) remend:NO];
390
+
391
+ NSString *decoded = ENRMBlockSyntaxDecode(encoded.plainText);
392
+ ENRMParseResult *result = [[ENRMParseResult alloc] init];
393
+
394
+ if (decoded == nil) {
395
+ result.plainText = canonical;
396
+ result.formattingRanges = @[];
397
+ result.mathAtoms = @[];
398
+ return result;
399
+ }
400
+
401
+ // Only the leading sentinel was removed, so every offset shifts by exactly one.
402
+ NSUInteger decodedLength = decoded.length;
403
+
404
+ NSMutableArray<ENRMFormattingRange *> *shiftedRanges =
405
+ [NSMutableArray arrayWithCapacity:encoded.formattingRanges.count];
406
+ for (ENRMFormattingRange *range in encoded.formattingRanges) {
407
+ NSRange r = range.range;
408
+ if (r.location == 0 || r.length == 0 || NSMaxRange(r) - 1 > decodedLength) {
409
+ continue;
410
+ }
411
+ [shiftedRanges addObject:[ENRMFormattingRange rangeWithType:range.type
412
+ range:NSMakeRange(r.location - 1, r.length)
413
+ url:range.url]];
414
+ }
415
+
416
+ NSMutableArray<ENRMMathAtom *> *shiftedAtoms = [NSMutableArray arrayWithCapacity:encoded.mathAtoms.count];
417
+ for (ENRMMathAtom *atom in encoded.mathAtoms) {
418
+ if (atom.position == 0 || atom.position - 1 >= decodedLength) {
419
+ continue;
420
+ }
421
+ ENRMMathAtom *shifted = [[ENRMMathAtom alloc] init];
422
+ shifted.position = atom.position - 1;
423
+ shifted.latex = atom.latex;
424
+ shifted.displayMode = atom.displayMode;
425
+ [shiftedAtoms addObject:shifted];
426
+ }
427
+
428
+ result.plainText = decoded;
429
+ result.formattingRanges = shiftedRanges;
430
+ result.mathAtoms = shiftedAtoms;
431
+ return result;
432
+ }
433
+
434
+ - (ENRMParseResult *)parseToPlainTextAndRanges:(NSString *)markdown remend:(BOOL)remend
362
435
  {
363
436
  ENRMParseResult *parseResult = [[ENRMParseResult alloc] init];
364
437
 
@@ -370,7 +443,7 @@ static NSArray<ENRMInputStyledRange *> *runParseInternal(NSString *markdown, Par
370
443
  }
371
444
 
372
445
  ParsedSpans parsedSpans;
373
- NSArray<ENRMInputStyledRange *> *styledRanges = runParseInternal(markdown, parsedSpans);
446
+ NSArray<ENRMInputStyledRange *> *styledRanges = runParseInternal(markdown, parsedSpans, remend);
374
447
 
375
448
  // Compute byte map + raw byte ranges for math spans so we can strip the
376
449
  // entire `$...$` (or `$$...$$`) syntax and inject a single `` at each.
@@ -13,6 +13,7 @@
13
13
  #import "ENRMInputTextView.h"
14
14
  #import "ENRMLinkRegexConfig.h"
15
15
  #import "ENRMMarkdownSerializer.h"
16
+ #import "ENRMMathFontWeight.h"
16
17
  #if ENRICHED_MARKDOWN_MATH
17
18
  #import "ENRMMathInlineAttachment.h"
18
19
  #endif
@@ -68,6 +69,8 @@ using namespace facebook::react;
68
69
  BOOL _isApplyingFormatting;
69
70
  BOOL _isTextChanging;
70
71
  BOOL _emitMarkdown;
72
+ BOOL _blockSyntax;
73
+ NSString *_lastImportedMarkdown;
71
74
  CFTimeInterval _lastTextChangeTime;
72
75
 
73
76
  ENRMPlaceholderLabel *_placeholderLabel;
@@ -142,6 +145,8 @@ using namespace facebook::react;
142
145
 
143
146
  self.backgroundColor = [RCTUIColor clearColor];
144
147
  _blockEmitting = NO;
148
+ _blockSyntax = YES;
149
+ _lastImportedMarkdown = nil;
145
150
  _heightUpdateCounter = 0;
146
151
  _formatter = [[ENRMInputFormatter alloc] init];
147
152
  _formatterStyle = [[ENRMInputFormatterStyle alloc] init];
@@ -562,11 +567,20 @@ using namespace facebook::react;
562
567
  writingDirectionChanged = YES;
563
568
  }
564
569
 
570
+ // Must land before the defaultValue import below, so the first parse already sees
571
+ // the right flag. Assigned unconditionally, not just on change: the generated C++
572
+ // default is `false` while the JS default is `true`, so `blockSyntax={false}` on the
573
+ // first render compares equal to the old props and a change-guard would drop it.
574
+ BOOL blockSyntaxChanged = (_blockSyntax != (BOOL)newViewProps.blockSyntax);
575
+ _blockSyntax = newViewProps.blockSyntax;
576
+
565
577
  if (newViewProps.defaultValue != oldViewProps.defaultValue) {
566
578
  if (!newViewProps.defaultValue.empty() && oldViewProps.defaultValue.empty()) {
567
579
  NSString *markdown = [NSString stringWithUTF8String:newViewProps.defaultValue.c_str()];
568
580
  [self importMarkdown:markdown];
569
581
  }
582
+ } else if (blockSyntaxChanged && _lastImportedMarkdown != nil) {
583
+ [self importMarkdown:_lastImportedMarkdown];
570
584
  }
571
585
 
572
586
  if (styleChanged) {
@@ -710,8 +724,9 @@ using namespace facebook::react;
710
724
 
711
725
  - (void)importMarkdown:(NSString *)markdown
712
726
  {
727
+ _lastImportedMarkdown = [markdown copy];
713
728
  ENRMInputParser *parser = [[ENRMInputParser alloc] init];
714
- ENRMParseResult *parsed = [parser parseToPlainTextAndRanges:markdown];
729
+ ENRMParseResult *parsed = [parser parseToPlainTextAndRanges:markdown blockSyntax:_blockSyntax];
715
730
 
716
731
  _blockEmitting = YES;
717
732
 
@@ -770,6 +785,7 @@ using namespace facebook::react;
770
785
  att.blockAlignment = _formatterStyle.mathBlockAlignment;
771
786
  att.selectedBackgroundColor = _formatterStyle.mathBlockSelectedBackgroundColor;
772
787
  att.selectedBorderColor = _formatterStyle.mathBlockSelectedBorderColor;
788
+ att.bold = ENRMMathFontWeightIsBold(_formatterStyle.mathBlockFontWeight);
773
789
  } else {
774
790
  att.fontSize = _formatterStyle.mathFontSize > 0 ? _formatterStyle.mathFontSize : 16.0;
775
791
  att.mathTextColor = _formatterStyle.mathColor ?: _formatterStyle.baseTextColor;
@@ -784,6 +800,7 @@ using namespace facebook::react;
784
800
  att.blockAlignment = NSTextAlignmentNatural;
785
801
  att.selectedBackgroundColor = _formatterStyle.mathSelectedBackgroundColor;
786
802
  att.selectedBorderColor = _formatterStyle.mathSelectedBorderColor;
803
+ att.bold = ENRMMathFontWeightIsBold(_formatterStyle.mathFontWeight);
787
804
  }
788
805
  }
789
806
 
@@ -870,7 +887,7 @@ using namespace facebook::react;
870
887
  - (void)pasteMarkdown:(NSString *)markdown
871
888
  {
872
889
  ENRMInputParser *parser = [[ENRMInputParser alloc] init];
873
- ENRMParseResult *parsed = [parser parseToPlainTextAndRanges:markdown];
890
+ ENRMParseResult *parsed = [parser parseToPlainTextAndRanges:markdown blockSyntax:_blockSyntax];
874
891
  [self replaceSelectedTextWith:parsed.plainText formattingRanges:parsed.formattingRanges];
875
892
  }
876
893
 
@@ -187,6 +187,12 @@ BOOL applyInputStyleProps(ENRMInputFormatterStyle *style, const InputProps &newP
187
187
  style.mathSelectedBorderColor = (sbc && CGColorGetAlpha(sbc.CGColor) > 0) ? sbc : nil;
188
188
  changed = YES;
189
189
  }
190
+ if (newProps.markdownStyle.math.fontWeight != oldProps.markdownStyle.math.fontWeight) {
191
+ if (!newProps.markdownStyle.math.fontWeight.empty()) {
192
+ style.mathFontWeight = [[NSString alloc] initWithUTF8String:newProps.markdownStyle.math.fontWeight.c_str()];
193
+ changed = YES;
194
+ }
195
+ }
190
196
 
191
197
  // Math block (`$$...$$`)
192
198
  if (newProps.markdownStyle.mathBlock.color != oldProps.markdownStyle.mathBlock.color) {
@@ -237,6 +243,13 @@ BOOL applyInputStyleProps(ENRMInputFormatterStyle *style, const InputProps &newP
237
243
  style.mathBlockSelectedBorderColor = (sbc && CGColorGetAlpha(sbc.CGColor) > 0) ? sbc : nil;
238
244
  changed = YES;
239
245
  }
246
+ if (newProps.markdownStyle.mathBlock.fontWeight != oldProps.markdownStyle.mathBlock.fontWeight) {
247
+ if (!newProps.markdownStyle.mathBlock.fontWeight.empty()) {
248
+ style.mathBlockFontWeight =
249
+ [[NSString alloc] initWithUTF8String:newProps.markdownStyle.mathBlock.fontWeight.c_str()];
250
+ changed = YES;
251
+ }
252
+ }
240
253
  if (newProps.markdownStyle.mathBlock.marginTop != oldProps.markdownStyle.mathBlock.marginTop) {
241
254
  style.mathBlockMarginTop = newProps.markdownStyle.mathBlock.marginTop;
242
255
  changed = YES;
@@ -10,17 +10,45 @@ import AppKit
10
10
  private typealias UIColor = NSColor
11
11
  #endif
12
12
 
13
+ /// Weight a formula is typeset at.
14
+ ///
15
+ /// An enum rather than the `BOOL` that crosses the ObjC boundary so the draw
16
+ /// path's switch turns a third weight into a compile error. Mirrors
17
+ /// MathFontWeight.kt on Android.
18
+ private enum MathFontWeight {
19
+ case normal
20
+ case bold
21
+
22
+ init(bold: Bool) {
23
+ self = bold ? .bold : .normal
24
+ }
25
+
26
+ /// Stroke added to each glyph outline, as a fraction of the em size. Scales
27
+ /// with the formula so a display block and an inline fraction read alike.
28
+ var strokeEmRatio: CGFloat {
29
+ switch self {
30
+ case .normal: return 0
31
+ case .bold: return 0.035
32
+ }
33
+ }
34
+ }
35
+
13
36
  @objc(ENRMRaTeXRenderResult)
14
37
  public final class ENRMRaTeXRenderResult: NSObject {
15
38
  private let renderer: RaTeXRenderer
39
+ /// Non-zero only in bold mode: half of it grows the glyph ink on each side.
40
+ private let boldStrokeWidth: CGFloat
41
+ private let boldStrokeColor: CGColor?
16
42
 
17
43
  @objc public let width: CGFloat
18
44
  @objc public let ascent: CGFloat
19
45
  @objc public let descent: CGFloat
20
46
  @objc public var totalHeight: CGFloat { ascent + descent }
21
47
 
22
- init(renderer: RaTeXRenderer) {
48
+ init(renderer: RaTeXRenderer, boldStrokeWidth: CGFloat, boldStrokeColor: CGColor?) {
23
49
  self.renderer = renderer
50
+ self.boldStrokeWidth = boldStrokeWidth
51
+ self.boldStrokeColor = boldStrokeColor
24
52
  self.width = renderer.width
25
53
  self.ascent = renderer.height
26
54
  self.descent = renderer.depth
@@ -28,7 +56,22 @@ public final class ENRMRaTeXRenderResult: NSObject {
28
56
  }
29
57
 
30
58
  @objc public func draw(in context: CGContext) {
59
+ guard boldStrokeWidth > 0, let boldStrokeColor else {
60
+ renderer.draw(in: context)
61
+ return
62
+ }
63
+ // Synthetic bold: stroke each glyph outline over its fill, the only way to
64
+ // add weight without moving glyphs whose positions RaTeX has already fixed
65
+ // (the KaTeX bold faces run up to 15% wider and would collide). It reaches
66
+ // every glyph because RaTeXRenderer.drawGlyph sets no text drawing mode of
67
+ // its own, including the paths RaTeX strokes itself (\cancel, \textcircled),
68
+ // which is why bold is opt-in per surface.
69
+ context.saveGState()
70
+ context.setTextDrawingMode(.fillStroke)
71
+ context.setLineWidth(boldStrokeWidth)
72
+ context.setStrokeColor(boldStrokeColor)
31
73
  renderer.draw(in: context)
74
+ context.restoreGState()
32
75
  }
33
76
  }
34
77
 
@@ -43,13 +86,19 @@ public final class ENRMRaTeXBridge: NSObject {
43
86
  _ latex: String,
44
87
  displayMode: Bool,
45
88
  fontSize: CGFloat,
46
- color: UIColor
89
+ color: UIColor,
90
+ bold: Bool
47
91
  ) -> ENRMRaTeXRenderResult? {
48
92
  RaTeXFontLoader.ensureLoaded()
49
93
  do {
50
94
  let displayList = try RaTeXEngine.shared.parse(latex, displayMode: displayMode, color: color)
51
95
  let renderer = RaTeXRenderer(displayList: displayList, fontSize: fontSize)
52
- return ENRMRaTeXRenderResult(renderer: renderer)
96
+ let strokeWidth = fontSize * MathFontWeight(bold: bold).strokeEmRatio
97
+ return ENRMRaTeXRenderResult(
98
+ renderer: renderer,
99
+ boldStrokeWidth: strokeWidth,
100
+ boldStrokeColor: strokeWidth > 0 ? color.cgColor : nil
101
+ )
53
102
  } catch {
54
103
  NSLog("[RaTeX] Failed to parse LaTeX: %@", error.localizedDescription)
55
104
  return nil
@@ -1,4 +1,5 @@
1
1
  #import "ENRMMathInlineRenderer.h"
2
+ #import "ENRMMathFontWeight.h"
2
3
  #import "ENRMMathInlineAttachment.h"
3
4
  #import "MarkdownASTNode.h"
4
5
  #import "RenderContext.h"
@@ -26,6 +27,7 @@
26
27
  attachment.fontSize = currentFont ? currentFont.pointSize : [_config paragraphFontSize];
27
28
  attachment.mathTextColor = [_config inlineMathColor];
28
29
  attachment.containerPaddingVertical = [_config inlineMathPaddingVertical];
30
+ attachment.bold = ENRMMathFontWeightIsBold([_config inlineMathFontWeight]);
29
31
 
30
32
  #if TARGET_OS_OSX
31
33
  // On macOS, NSLayoutManager uses self.image/self.bounds rather than calling
@@ -378,12 +378,16 @@ NS_ASSUME_NONNULL_BEGIN
378
378
  - (void)setMathMarginBottom:(CGFloat)newValue;
379
379
  - (NSString *)mathTextAlign;
380
380
  - (void)setMathTextAlign:(NSString *)newValue;
381
+ - (NSString *)mathFontWeight;
382
+ - (void)setMathFontWeight:(NSString *)newValue;
381
383
 
382
384
  // Inline Math properties
383
385
  - (RCTUIColor *)inlineMathColor;
384
386
  - (void)setInlineMathColor:(RCTUIColor *)newValue;
385
387
  - (CGFloat)inlineMathPaddingVertical;
386
388
  - (void)setInlineMathPaddingVertical:(CGFloat)newValue;
389
+ - (NSString *)inlineMathFontWeight;
390
+ - (void)setInlineMathFontWeight:(NSString *)newValue;
387
391
  // Spoiler properties
388
392
  - (RCTUIColor *)spoilerColor;
389
393
  - (void)setSpoilerColor:(RCTUIColor *)newValue;
@@ -224,9 +224,11 @@ static inline NSString *normalizedFontWeight(NSString *fontWeight)
224
224
  CGFloat _mathMarginTop;
225
225
  CGFloat _mathMarginBottom;
226
226
  NSString *_mathTextAlign;
227
+ NSString *_mathFontWeight;
227
228
  // Inline Math properties
228
229
  RCTUIColor *_inlineMathColor;
229
230
  CGFloat _inlineMathPaddingVertical;
231
+ NSString *_inlineMathFontWeight;
230
232
  // Spoiler properties
231
233
  RCTUIColor *_spoilerColor;
232
234
  CGFloat _spoilerParticleDensity;
@@ -483,8 +485,10 @@ static inline NSString *normalizedFontWeight(NSString *fontWeight)
483
485
  copy->_mathMarginTop = _mathMarginTop;
484
486
  copy->_mathMarginBottom = _mathMarginBottom;
485
487
  copy->_mathTextAlign = [_mathTextAlign copy];
488
+ copy->_mathFontWeight = [_mathFontWeight copy];
486
489
  copy->_inlineMathColor = [_inlineMathColor copy];
487
490
  copy->_inlineMathPaddingVertical = _inlineMathPaddingVertical;
491
+ copy->_inlineMathFontWeight = [_inlineMathFontWeight copy];
488
492
  copy->_spoilerColor = [_spoilerColor copy];
489
493
  copy->_spoilerParticleDensity = _spoilerParticleDensity;
490
494
  copy->_spoilerParticleSpeed = _spoilerParticleSpeed;
@@ -2437,6 +2441,26 @@ static const CGFloat kDefaultMinGap = 4.0;
2437
2441
  return _inlineMathPaddingVertical;
2438
2442
  }
2439
2443
 
2444
+ - (NSString *)mathFontWeight
2445
+ {
2446
+ return _mathFontWeight;
2447
+ }
2448
+
2449
+ - (void)setMathFontWeight:(NSString *)newValue
2450
+ {
2451
+ _mathFontWeight = newValue;
2452
+ }
2453
+
2454
+ - (NSString *)inlineMathFontWeight
2455
+ {
2456
+ return _inlineMathFontWeight;
2457
+ }
2458
+
2459
+ - (void)setInlineMathFontWeight:(NSString *)newValue
2460
+ {
2461
+ _inlineMathFontWeight = newValue;
2462
+ }
2463
+
2440
2464
  - (void)setInlineMathPaddingVertical:(CGFloat)newValue
2441
2465
  {
2442
2466
  _inlineMathPaddingVertical = newValue;
@@ -0,0 +1,18 @@
1
+ #pragma once
2
+
3
+ #import <Foundation/Foundation.h>
4
+
5
+ /// Weight a formula can actually be typeset at.
6
+ ///
7
+ /// The style config keeps `fontWeight` as an `NSString *`, the way the other 13
8
+ /// `fontWeight` props do, so a value like `@"600"` survives as far as the
9
+ /// renderer. This is the narrowing step at that last hop — the only place on
10
+ /// iOS that decides what "bold" means for math — so the rule lives in one
11
+ /// place instead of at every prop boundary. Mirrors MathFontWeight.kt on
12
+ /// Android.
13
+ ///
14
+ /// `nil` (prop never set) reads as normal, which is the documented default.
15
+ static inline BOOL ENRMMathFontWeightIsBold(NSString *_Nullable fontWeight)
16
+ {
17
+ return [fontWeight isEqualToString:@"bold"];
18
+ }
@@ -1078,6 +1078,14 @@ BOOL applyMarkdownStyleToConfig(StyleConfig *config, const MarkdownStyle &newSty
1078
1078
  changed = YES;
1079
1079
  }
1080
1080
 
1081
+ if (newStyle.math.fontWeight != oldStyle.math.fontWeight) {
1082
+ if (!newStyle.math.fontWeight.empty()) {
1083
+ NSString *fontWeight = [[NSString alloc] initWithUTF8String:newStyle.math.fontWeight.c_str()];
1084
+ [config setMathFontWeight:fontWeight];
1085
+ changed = YES;
1086
+ }
1087
+ }
1088
+
1081
1089
  if (newStyle.math.textAlign != oldStyle.math.textAlign) {
1082
1090
  [config setMathTextAlign:@(newStyle.math.textAlign.c_str())];
1083
1091
  changed = YES;
@@ -1095,6 +1103,14 @@ BOOL applyMarkdownStyleToConfig(StyleConfig *config, const MarkdownStyle &newSty
1095
1103
  changed = YES;
1096
1104
  }
1097
1105
 
1106
+ if (newStyle.inlineMath.fontWeight != oldStyle.inlineMath.fontWeight) {
1107
+ if (!newStyle.inlineMath.fontWeight.empty()) {
1108
+ NSString *fontWeight = [[NSString alloc] initWithUTF8String:newStyle.inlineMath.fontWeight.c_str()];
1109
+ [config setInlineMathFontWeight:fontWeight];
1110
+ changed = YES;
1111
+ }
1112
+ }
1113
+
1098
1114
  if (newStyle.inlineMath.paddingVertical != oldStyle.inlineMath.paddingVertical) {
1099
1115
  [config setInlineMathPaddingVertical:newStyle.inlineMath.paddingVertical];
1100
1116
  changed = YES;
@@ -1,6 +1,7 @@
1
1
  #import "ENRMMathContainerView.h"
2
2
  #import "ENRMAccessibilityLabels.h"
3
3
  #import "ENRMFeatureFlags.h"
4
+ #import "ENRMMathFontWeight.h"
4
5
  #include <TargetConditionals.h>
5
6
 
6
7
  #if ENRICHED_MARKDOWN_MATH
@@ -94,7 +95,8 @@
94
95
  ENRMRaTeXRenderResult *result = [ENRMRaTeXBridge parse:latex
95
96
  displayMode:YES
96
97
  fontSize:config.mathFontSize
97
- color:config.mathColor];
98
+ color:config.mathColor
99
+ bold:ENRMMathFontWeightIsBold(config.mathFontWeight)];
98
100
  _mathView.renderResult = result;
99
101
 
100
102
  CGFloat padding = config.mathPadding;
@@ -141,11 +141,13 @@ interface MathStyleInternal {
141
141
  marginTop: CodegenTypes.Float;
142
142
  marginBottom: CodegenTypes.Float;
143
143
  textAlign: string;
144
+ fontWeight: string;
144
145
  }
145
146
 
146
147
  interface InlineMathStyleInternal {
147
148
  color: ColorValue;
148
149
  paddingVertical: CodegenTypes.Float;
150
+ fontWeight: string;
149
151
  }
150
152
 
151
153
  interface SpoilerParticlesStyleInternal {
@@ -29,6 +29,7 @@ export const EnrichedMarkdownTextInput = ({
29
29
  editable = true,
30
30
  autoFocus = false,
31
31
  scrollEnabled = true,
32
+ blockSyntax = true,
32
33
  autoCapitalize = 'sentences',
33
34
  multiline = true,
34
35
  cursorColor,
@@ -324,6 +325,7 @@ export const EnrichedMarkdownTextInput = ({
324
325
  editable: editable,
325
326
  autoFocus: autoFocus,
326
327
  scrollEnabled: scrollEnabled,
328
+ blockSyntax: blockSyntax,
327
329
  autoCapitalize: autoCapitalize,
328
330
  multiline: multiline,
329
331
  cursorColor: cursorColor,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useImperativeHandle","useMemo","useRef","EnrichedMarkdownTextInputNativeComponent","Commands","normalizeMarkdownTextInputStyle","normalizeMenuItem","toNativeRegexConfig","jsx","_jsx","getNativeRef","ref","current","Error","EnrichedMarkdownTextInput","markdownStyle","style","defaultValue","placeholder","placeholderTextColor","editable","autoFocus","scrollEnabled","autoCapitalize","multiline","cursorColor","selectionColor","onChangeText","onChangeMarkdown","onChangeSelection","onChangeState","onCaretRectChange","onLinkDetected","onMathPress","mentionIndicators","onStartMention","onChangeMention","onEndMention","onFocus","onBlur","contextMenuItems","selectionMenuConfig","formatMenuConfig","linkRegex","_linkRegex","writingDirection","rest","nativeRef","initialDefaultValue","nextRequestId","pendingRequests","Map","pendingCaretRectRequests","contextMenuCallbacksRef","callbacksMap","item","set","text","onPress","nativeContextMenuItems","filter","visible","map","icon","pending","pendingCaretRect","err","forEach","reject","clear","normalizedStyle","normalizedSelectionMenuConfig","format","copyAsMarkdown","enabled","formatLabel","label","copyAsMarkdownLabel","normalizedFormatMenuConfig","bold","italic","underline","strikethrough","spoiler","link","boldLabel","italicLabel","underlineLabel","strikethroughLabel","spoilerLabel","linkLabel","handleLinkDetected","e","url","start","end","nativeEvent","handleMathPress","latex","displayMode","x","y","width","height","rect","handleChangeText","value","handleChangeMarkdown","handleChangeSelection","handleChangeState","handleCaretRectChange","handleStartMention","handleChangeMention","handleEndMention","handleFocus","handleBlur","handleRequestMarkdownResult","requestId","markdown","get","resolve","delete","handleRequestCaretRectResult","handleContextMenuItemPress","itemText","selectedText","selectionStart","selectionEnd","styleState","callback","selection","node","commandRef","measure","measureInWindow","measureLayout","relativeToNativeNode","onSuccess","onFail","focus","blur","setValue","setSelection","toggleBold","toggleItalic","toggleUnderline","toggleStrikethrough","toggleSpoiler","setLink","insertLink","insertMention","displayText","startMention","indicator","removeLink","insertMath","options","display","updateMath","removeMath","copyToClipboard","getMarkdown","Promise","requestMarkdown","getCaretRect","requestCaretRect","isOnChangeMarkdownSet","undefined","onInputFocus","onInputBlur","onRequestMarkdownResult","onRequestCaretRectResult","onContextMenuItemPress"],"sourceRoot":"../../src","sources":["EnrichedMarkdownTextInput.tsx"],"mappings":";;AAAA,SACEA,WAAW,EACXC,SAAS,EACTC,mBAAmB,EACnBC,OAAO,EACPC,MAAM,QACD,OAAO;AAEd,OAAOC,wCAAwC,IAC7CC,QAAQ,QAeH,4CAA4C;AAenD,SAASC,+BAA+B,QAAQ,sCAAmC;AACnF,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,mBAAmB,QAAQ,wBAAqB;;AAoHzD;AACA;AACA;AACA;;AAkBA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAwFA,SAASC,YAAYA,CAACC,GAAsC,EAAa;EACvE,IAAIA,GAAG,CAACC,OAAO,IAAI,IAAI,EAAE;IACvB,MAAM,IAAIC,KAAK,CACb,yFACF,CAAC;EACH;EACA,OAAOF,GAAG,CAACC,OAAO;AACpB;AAEA,OAAO,MAAME,yBAAyB,GAAGA,CAAC;EACxCH,GAAG;EACHI,aAAa;EACbC,KAAK;EACLC,YAAY;EACZC,WAAW;EACXC,oBAAoB;EACpBC,QAAQ,GAAG,IAAI;EACfC,SAAS,GAAG,KAAK;EACjBC,aAAa,GAAG,IAAI;EACpBC,cAAc,GAAG,WAAW;EAC5BC,SAAS,GAAG,IAAI;EAChBC,WAAW;EACXC,cAAc;EACdC,YAAY;EACZC,gBAAgB;EAChBC,iBAAiB;EACjBC,aAAa;EACbC,iBAAiB;EACjBC,cAAc;EACdC,WAAW;EACXC,iBAAiB;EACjBC,cAAc;EACdC,eAAe;EACfC,YAAY;EACZC,OAAO;EACPC,MAAM;EACNC,gBAAgB;EAChBC,mBAAmB;EACnBC,gBAAgB;EAChBC,SAAS,EAAEC,UAAU;EACrBC,gBAAgB,GAAG,cAAc;EACjC,GAAGC;AAC2B,CAAC,KAAK;EACpC,MAAMC,SAAS,GAAG7C,MAAM,CAAmB,IAAI,CAAC;EAChD;EACA,MAAM8C,mBAAmB,GAAG9C,MAAM,CAACe,YAAY,CAAC,CAACL,OAAO;EAExD,MAAMqC,aAAa,GAAG/C,MAAM,CAAC,CAAC,CAAC;EAC/B,MAAMgD,eAAe,GAAGhD,MAAM,CAAC,IAAIiD,GAAG,CAAiC,CAAC,CAAC;EACzE,MAAMC,wBAAwB,GAAGlD,MAAM,CACrC,IAAIiD,GAAG,CAAoC,CAC7C,CAAC;EAED,MAAME,uBAAuB,GAAGnD,MAAM,CAEpC,IAAIiD,GAAG,CAAC,CAAC,CAAC;EAEZpD,SAAS,CAAC,MAAM;IACd,MAAMuD,YAAY,GAAG,IAAIH,GAAG,CAAqC,CAAC;IAClE,IAAIX,gBAAgB,EAAE;MACpB,KAAK,MAAMe,IAAI,IAAIf,gBAAgB,EAAE;QACnCc,YAAY,CAACE,GAAG,CAACD,IAAI,CAACE,IAAI,EAAEF,IAAI,CAACG,OAAO,CAAC;MAC3C;IACF;IACAL,uBAAuB,CAACzC,OAAO,GAAG0C,YAAY;EAChD,CAAC,EAAE,CAACd,gBAAgB,CAAC,CAAC;EAEtB,MAAMmB,sBAAsB,GAAG1D,OAAO,CACpC,MACEuC,gBAAgB,EACZoB,MAAM,CAAEL,IAAI,IAAKA,IAAI,CAACM,OAAO,KAAK,KAAK,CAAC,CACzCC,GAAG,CAAEP,IAAI,KAAM;IAAEE,IAAI,EAAEF,IAAI,CAACE,IAAI;IAAEM,IAAI,EAAER,IAAI,CAACQ;EAAK,CAAC,CAAC,CAAC,EAC1D,CAACvB,gBAAgB,CACnB,CAAC;EAEDzC,SAAS,CAAC,MAAM;IACd,MAAMiE,OAAO,GAAGd,eAAe,CAACtC,OAAO;IACvC,MAAMqD,gBAAgB,GAAGb,wBAAwB,CAACxC,OAAO;IACzD,OAAO,MAAM;MACX,MAAMsD,GAAG,GAAG,IAAIrD,KAAK,CAAC,qBAAqB,CAAC;MAC5CmD,OAAO,CAACG,OAAO,CAAC,CAAC;QAAEC;MAAO,CAAC,KAAKA,MAAM,CAACF,GAAG,CAAC,CAAC;MAC5CF,OAAO,CAACK,KAAK,CAAC,CAAC;MACfJ,gBAAgB,CAACE,OAAO,CAAC,CAAC;QAAEC;MAAO,CAAC,KAAKA,MAAM,CAACF,GAAG,CAAC,CAAC;MACrDD,gBAAgB,CAACI,KAAK,CAAC,CAAC;IAC1B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,eAAe,GAAGjE,+BAA+B,CAACU,aAAa,CAAC;EAEtE,MAAMwD,6BAA6B,GAAGtE,OAAO,CAAC,MAAM;IAClD,MAAMuE,MAAM,GAAGlE,iBAAiB,CAC9BmC,mBAAmB,EAAE+B,MAAM,EAC3B,IAAI,EACJ,QACF,CAAC;IACD,MAAMC,cAAc,GAAGnE,iBAAiB,CACtCmC,mBAAmB,EAAEgC,cAAc,EACnC,IAAI,EACJ,kBACF,CAAC;IACD,OAAO;MACLD,MAAM,EAAEA,MAAM,CAACE,OAAO;MACtBC,WAAW,EAAEH,MAAM,CAACI,KAAK;MACzBH,cAAc,EAAEA,cAAc,CAACC,OAAO;MACtCG,mBAAmB,EAAEJ,cAAc,CAACG;IACtC,CAAC;EACH,CAAC,EAAE,CAACnC,mBAAmB,CAAC,CAAC;EAEzB,MAAMqC,0BAA0B,GAAG7E,OAAO,CAAC,MAAM;IAC/C,MAAM8E,IAAI,GAAGzE,iBAAiB,CAACoC,gBAAgB,EAAEqC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;IACpE,MAAMC,MAAM,GAAG1E,iBAAiB,CAACoC,gBAAgB,EAAEsC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;IAC1E,MAAMC,SAAS,GAAG3E,iBAAiB,CACjCoC,gBAAgB,EAAEuC,SAAS,EAC3B,IAAI,EACJ,WACF,CAAC;IACD,MAAMC,aAAa,GAAG5E,iBAAiB,CACrCoC,gBAAgB,EAAEwC,aAAa,EAC/B,IAAI,EACJ,eACF,CAAC;IACD,MAAMC,OAAO,GAAG7E,iBAAiB,CAC/BoC,gBAAgB,EAAEyC,OAAO,EACzB,IAAI,EACJ,SACF,CAAC;IACD,MAAMC,IAAI,GAAG9E,iBAAiB,CAACoC,gBAAgB,EAAE0C,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;IACpE,OAAO;MACLL,IAAI,EAAEA,IAAI,CAACL,OAAO;MAClBW,SAAS,EAAEN,IAAI,CAACH,KAAK;MACrBI,MAAM,EAAEA,MAAM,CAACN,OAAO;MACtBY,WAAW,EAAEN,MAAM,CAACJ,KAAK;MACzBK,SAAS,EAAEA,SAAS,CAACP,OAAO;MAC5Ba,cAAc,EAAEN,SAAS,CAACL,KAAK;MAC/BM,aAAa,EAAEA,aAAa,CAACR,OAAO;MACpCc,kBAAkB,EAAEN,aAAa,CAACN,KAAK;MACvCO,OAAO,EAAEA,OAAO,CAACT,OAAO;MACxBe,YAAY,EAAEN,OAAO,CAACP,KAAK;MAC3BQ,IAAI,EAAEA,IAAI,CAACV,OAAO;MAClBgB,SAAS,EAAEN,IAAI,CAACR;IAClB,CAAC;EACH,CAAC,EAAE,CAAClC,gBAAgB,CAAC,CAAC;EAEtB,MAAMC,SAAS,GAAG1C,OAAO,CACvB,MAAMM,mBAAmB,CAACqC,UAAU,CAAC,EACrC,CAACA,UAAU,CACb,CAAC;EAED,MAAM+C,kBAAkB,GAAG7F,WAAW,CACnC8F,CAAuC,IAAK;IAC3C,MAAM;MAAEnC,IAAI;MAAEoC,GAAG;MAAEC,KAAK;MAAEC;IAAI,CAAC,GAAGH,CAAC,CAACI,WAAW;IAC/ChE,cAAc,GAAG;MAAEyB,IAAI;MAAEoC,GAAG;MAAEC,KAAK;MAAEC;IAAI,CAAC,CAAC;EAC7C,CAAC,EACD,CAAC/D,cAAc,CACjB,CAAC;EAED,MAAMiE,eAAe,GAAGnG,WAAW,CAChC8F,CAA+C,IAAK;IACnD,MAAM;MAAEM,KAAK;MAAEJ,KAAK;MAAEC,GAAG;MAAEI,WAAW;MAAEC,CAAC;MAAEC,CAAC;MAAEC,KAAK;MAAEC;IAAO,CAAC,GAC3DX,CAAC,CAACI,WAAW;IACf/D,WAAW,GAAG;MACZiE,KAAK;MACLJ,KAAK;MACLC,GAAG;MACHI,WAAW;MACXK,IAAI,EAAE;QAAEJ,CAAC;QAAEC,CAAC;QAAEC,KAAK;QAAEC;MAAO;IAC9B,CAAC,CAAC;EACJ,CAAC,EACD,CAACtE,WAAW,CACd,CAAC;EAED,MAAMwE,gBAAgB,GAAG3G,WAAW,CACjC8F,CAA0C,IAAK;IAC9CjE,YAAY,GAAGiE,CAAC,CAACI,WAAW,CAACU,KAAK,CAAC;EACrC,CAAC,EACD,CAAC/E,YAAY,CACf,CAAC;EAED,MAAMgF,oBAAoB,GAAG7G,WAAW,CACrC8F,CAA8C,IAAK;IAClDhE,gBAAgB,GAAGgE,CAAC,CAACI,WAAW,CAACU,KAAK,CAAC;EACzC,CAAC,EACD,CAAC9E,gBAAgB,CACnB,CAAC;EAED,MAAMgF,qBAAqB,GAAG9G,WAAW,CACtC8F,CAA+C,IAAK;IACnD,MAAM;MAAEE,KAAK;MAAEC;IAAI,CAAC,GAAGH,CAAC,CAACI,WAAW;IACpCnE,iBAAiB,GAAG;MAAEiE,KAAK;MAAEC;IAAI,CAAC,CAAC;EACrC,CAAC,EACD,CAAClE,iBAAiB,CACpB,CAAC;EAED,MAAMgF,iBAAiB,GAAG/G,WAAW,CAClC8F,CAA2C,IAAK;IAC/C,MAAM;MAAEb,IAAI;MAAEC,MAAM;MAAEC,SAAS;MAAEC,aAAa;MAAEC,OAAO;MAAEC;IAAK,CAAC,GAC7DQ,CAAC,CAACI,WAAW;IACflE,aAAa,GAAG;MACdiD,IAAI;MACJC,MAAM;MACNC,SAAS;MACTC,aAAa;MACbC,OAAO;MACPC;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACtD,aAAa,CAChB,CAAC;EAED,MAAMgF,qBAAqB,GAAGhH,WAAW,CACtC8F,CAA+C,IAAK;IACnD,MAAM;MAAEQ,CAAC;MAAEC,CAAC;MAAEC,KAAK;MAAEC;IAAO,CAAC,GAAGX,CAAC,CAACI,WAAW;IAC7CjE,iBAAiB,GAAG;MAAEqE,CAAC;MAAEC,CAAC;MAAEC,KAAK;MAAEC;IAAO,CAAC,CAAC;EAC9C,CAAC,EACD,CAACxE,iBAAiB,CACpB,CAAC;EAED,MAAMgF,kBAAkB,GAAGjH,WAAW,CACnC8F,CAA4C,IAAK;IAChDzD,cAAc,GAAGyD,CAAC,CAACI,WAAW,CAAC;EACjC,CAAC,EACD,CAAC7D,cAAc,CACjB,CAAC;EAED,MAAM6E,mBAAmB,GAAGlH,WAAW,CACpC8F,CAA6C,IAAK;IACjDxD,eAAe,GAAGwD,CAAC,CAACI,WAAW,CAAC;EAClC,CAAC,EACD,CAAC5D,eAAe,CAClB,CAAC;EAED,MAAM6E,gBAAgB,GAAGnH,WAAW,CACjC8F,CAA0C,IAAK;IAC9CvD,YAAY,GAAGuD,CAAC,CAACI,WAAW,CAAC;EAC/B,CAAC,EACD,CAAC3D,YAAY,CACf,CAAC;EAED,MAAM6E,WAAW,GAAGpH,WAAW,CAAC,MAAM;IACpCwC,OAAO,GAAG,CAAC;EACb,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,MAAM6E,UAAU,GAAGrH,WAAW,CAAC,MAAM;IACnCyC,MAAM,GAAG,CAAC;EACZ,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,MAAM6E,2BAA2B,GAAGtH,WAAW,CAC5C8F,CAAqD,IAAK;IACzD,MAAM;MAAEyB,SAAS;MAAEC;IAAS,CAAC,GAAG1B,CAAC,CAACI,WAAW;IAC7C,MAAMhC,OAAO,GAAGd,eAAe,CAACtC,OAAO,CAAC2G,GAAG,CAACF,SAAS,CAAC;IACtD,IAAI,CAACrD,OAAO,EAAE;IAEdA,OAAO,CAACwD,OAAO,CAACF,QAAQ,CAAC;IACzBpE,eAAe,CAACtC,OAAO,CAAC6G,MAAM,CAACJ,SAAS,CAAC;EAC3C,CAAC,EACD,EACF,CAAC;EAED,MAAMK,4BAA4B,GAAG5H,WAAW,CAC7C8F,CAAsD,IAAK;IAC1D,MAAM;MAAEyB,SAAS;MAAEjB,CAAC;MAAEC,CAAC;MAAEC,KAAK;MAAEC;IAAO,CAAC,GAAGX,CAAC,CAACI,WAAW;IACxD,MAAMhC,OAAO,GAAGZ,wBAAwB,CAACxC,OAAO,CAAC2G,GAAG,CAACF,SAAS,CAAC;IAC/D,IAAI,CAACrD,OAAO,EAAE;IAEdA,OAAO,CAACwD,OAAO,CAAC;MAAEpB,CAAC;MAAEC,CAAC;MAAEC,KAAK;MAAEC;IAAO,CAAC,CAAC;IACxCnD,wBAAwB,CAACxC,OAAO,CAAC6G,MAAM,CAACJ,SAAS,CAAC;EACpD,CAAC,EACD,EACF,CAAC;EAED,MAAMM,0BAA0B,GAAG7H,WAAW,CAC3C8F,CAAoD,IAAK;IACxD,MAAM;MACJgC,QAAQ;MACRC,YAAY;MACZC,cAAc;MACdC,YAAY;MACZC;IACF,CAAC,GAAGpC,CAAC,CAACI,WAAW;IACjB,MAAMiC,QAAQ,GAAG5E,uBAAuB,CAACzC,OAAO,CAAC2G,GAAG,CAACK,QAAQ,CAAC;IAC9DK,QAAQ,GAAG;MACTxE,IAAI,EAAEoE,YAAY;MAClBK,SAAS,EAAE;QAAEpC,KAAK,EAAEgC,cAAc;QAAE/B,GAAG,EAAEgC;MAAa,CAAC;MACvDC;IACF,CAAC,CAAC;EACJ,CAAC,EACD,EACF,CAAC;EAEDhI,mBAAmB,CAACW,GAAG,EAAE,MAAM;IAC7B,MAAMwH,IAAI,GAAGzH,YAAY,CAACqC,SAAS,CAAC;IACpC;IACA;IACA,MAAMqF,UAAU,GAAGD,IAAiD;IACpE,OAAO;MACLE,OAAO,EAAGJ,QAAQ,IAAKE,IAAI,CAACE,OAAO,CAACJ,QAAQ,CAAC;MAC7CK,eAAe,EAAGL,QAAQ,IAAKE,IAAI,CAACG,eAAe,CAACL,QAAQ,CAAC;MAC7DM,aAAa,EAAEA,CAACC,oBAAoB,EAAEC,SAAS,EAAEC,MAAM,KACrDP,IAAI,CAACI,aAAa,CAACC,oBAAoB,EAAEC,SAAS,EAAEC,MAAM,CAAC;MAC7DC,KAAK,EAAEA,CAAA,KAAMvI,QAAQ,CAACuI,KAAK,CAACP,UAAU,CAAC;MACvCQ,IAAI,EAAEA,CAAA,KAAMxI,QAAQ,CAACwI,IAAI,CAACR,UAAU,CAAC;MACrCS,QAAQ,EAAGvB,QAAQ,IAAKlH,QAAQ,CAACyI,QAAQ,CAACT,UAAU,EAAEd,QAAQ,CAAC;MAC/DwB,YAAY,EAAEA,CAAChD,KAAK,EAAEC,GAAG,KACvB3F,QAAQ,CAAC0I,YAAY,CAACV,UAAU,EAAEtC,KAAK,EAAEC,GAAG,CAAC;MAC/CgD,UAAU,EAAEA,CAAA,KAAM3I,QAAQ,CAAC2I,UAAU,CAACX,UAAU,CAAC;MACjDY,YAAY,EAAEA,CAAA,KAAM5I,QAAQ,CAAC4I,YAAY,CAACZ,UAAU,CAAC;MACrDa,eAAe,EAAEA,CAAA,KAAM7I,QAAQ,CAAC6I,eAAe,CAACb,UAAU,CAAC;MAC3Dc,mBAAmB,EAAEA,CAAA,KAAM9I,QAAQ,CAAC8I,mBAAmB,CAACd,UAAU,CAAC;MACnEe,aAAa,EAAEA,CAAA,KAAM/I,QAAQ,CAAC+I,aAAa,CAACf,UAAU,CAAC;MACvDgB,OAAO,EAAGvD,GAAG,IAAKzF,QAAQ,CAACgJ,OAAO,CAAChB,UAAU,EAAEvC,GAAG,CAAC;MACnDwD,UAAU,EAAEA,CAAC5F,IAAI,EAAEoC,GAAG,KAAKzF,QAAQ,CAACiJ,UAAU,CAACjB,UAAU,EAAE3E,IAAI,EAAEoC,GAAG,CAAC;MACrEyD,aAAa,EAAEA,CAACC,WAAW,EAAE1D,GAAG,KAC9BzF,QAAQ,CAACkJ,aAAa,CAAClB,UAAU,EAAEmB,WAAW,EAAE1D,GAAG,CAAC;MACtD2D,YAAY,EAAGC,SAAS,IAAKrJ,QAAQ,CAACoJ,YAAY,CAACpB,UAAU,EAAEqB,SAAS,CAAC;MACzEC,UAAU,EAAEA,CAAA,KAAMtJ,QAAQ,CAACsJ,UAAU,CAACtB,UAAU,CAAC;MACjDuB,UAAU,EAAEA,CAACzD,KAAK,EAAE0D,OAAO,KACzBxJ,QAAQ,CAACuJ,UAAU,CAACvB,UAAU,EAAElC,KAAK,EAAE0D,OAAO,EAAEC,OAAO,IAAI,KAAK,CAAC;MACnEC,UAAU,EAAEA,CAAChE,KAAK,EAAEI,KAAK,EAAE0D,OAAO,KAChCxJ,QAAQ,CAAC0J,UAAU,CACjB1B,UAAU,EACVtC,KAAK,EACLI,KAAK,EACL0D,OAAO,EAAEC,OAAO,IAAI,KACtB,CAAC;MACHE,UAAU,EAAGjE,KAAK,IAAK1F,QAAQ,CAAC2J,UAAU,CAAC3B,UAAU,EAAEtC,KAAK,CAAC;MAC7DkE,eAAe,EAAEA,CAAA,KAAM5J,QAAQ,CAAC4J,eAAe,CAAC5B,UAAU,CAAC;MAC3D6B,WAAW,EAAEA,CAAA,KACX,IAAIC,OAAO,CAAS,CAAC1C,OAAO,EAAEpD,MAAM,KAAK;QACvC,MAAMiD,SAAS,GAAGpE,aAAa,CAACrC,OAAO,EAAE;QACzCsC,eAAe,CAACtC,OAAO,CAAC4C,GAAG,CAAC6D,SAAS,EAAE;UAAEG,OAAO;UAAEpD;QAAO,CAAC,CAAC;QAC3DhE,QAAQ,CAAC+J,eAAe,CAAC/B,UAAU,EAAEf,SAAS,CAAC;MACjD,CAAC,CAAC;MACJ+C,YAAY,EAAEA,CAAA,KACZ,IAAIF,OAAO,CAAY,CAAC1C,OAAO,EAAEpD,MAAM,KAAK;QAC1C,MAAMiD,SAAS,GAAGpE,aAAa,CAACrC,OAAO,EAAE;QACzCwC,wBAAwB,CAACxC,OAAO,CAAC4C,GAAG,CAAC6D,SAAS,EAAE;UAC9CG,OAAO;UACPpD;QACF,CAAC,CAAC;QACFhE,QAAQ,CAACiK,gBAAgB,CAACjC,UAAU,EAAEf,SAAS,CAAC;MAClD,CAAC;IACL,CAAC;EACH,CAAC,CAAC;EAEF,oBACE5G,IAAA,CAACN,wCAAwC;IACvCQ,GAAG,EAAEoC,SAAU;IACf/B,KAAK,EAAEA,KAAM;IACbD,aAAa,EAAEuD,eAAgB;IAC/BrD,YAAY,EAAE+B,mBAAoB;IAClC9B,WAAW,EAAEA,WAAY;IACzBC,oBAAoB,EAAEA,oBAAqB;IAC3CC,QAAQ,EAAEA,QAAS;IACnBC,SAAS,EAAEA,SAAU;IACrBC,aAAa,EAAEA,aAAc;IAC7BC,cAAc,EAAEA,cAAe;IAC/BC,SAAS,EAAEA,SAAU;IACrBC,WAAW,EAAEA,WAAY;IACzBC,cAAc,EAAEA,cAAe;IAC/B4I,qBAAqB,EAAE1I,gBAAgB,KAAK2I,SAAU;IACtD5I,YAAY,EAAE8E,gBAAgD;IAC9D7E,gBAAgB,EAAE+E,oBAAwD;IAC1E9E,iBAAiB,EACf+E,qBACD;IACD9E,aAAa,EAAE+E,iBAAkD;IACjE7E,cAAc,EAAE2D,kBAAoD;IACpE1D,WAAW,EAAEgE,eAA8C;IAC3DuE,YAAY,EAAEtD,WAA2C;IACzDuD,WAAW,EAAEtD,UAAyC;IACtDuD,uBAAuB,EACrBtD,2BACD;IACDuD,wBAAwB,EACtBjD,4BACD;IACD3F,iBAAiB,EACf+E,qBACD;IACDtE,gBAAgB,EAAEmB,sBAAuB;IACzClB,mBAAmB,EAAE8B,6BAA8B;IACnD7B,gBAAgB,EAAEoC,0BAA2B;IAC7C5C,iBAAiB,EAAEA,iBAAkB;IACrC0I,sBAAsB,EACpBjD,0BACD;IACDhF,SAAS,EAAEA,SAAU;IACrBE,gBAAgB,EAAEA,gBAAiB;IACnCV,cAAc,EAAE4E,kBAAoD;IACpE3E,eAAe,EAAE4E,mBAAsD;IACvE3E,YAAY,EAAE4E,gBAAgD;IAAA,GAC1DnE;EAAI,CACT,CAAC;AAEN,CAAC;AAED,eAAehC,yBAAyB","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useImperativeHandle","useMemo","useRef","EnrichedMarkdownTextInputNativeComponent","Commands","normalizeMarkdownTextInputStyle","normalizeMenuItem","toNativeRegexConfig","jsx","_jsx","getNativeRef","ref","current","Error","EnrichedMarkdownTextInput","markdownStyle","style","defaultValue","placeholder","placeholderTextColor","editable","autoFocus","scrollEnabled","blockSyntax","autoCapitalize","multiline","cursorColor","selectionColor","onChangeText","onChangeMarkdown","onChangeSelection","onChangeState","onCaretRectChange","onLinkDetected","onMathPress","mentionIndicators","onStartMention","onChangeMention","onEndMention","onFocus","onBlur","contextMenuItems","selectionMenuConfig","formatMenuConfig","linkRegex","_linkRegex","writingDirection","rest","nativeRef","initialDefaultValue","nextRequestId","pendingRequests","Map","pendingCaretRectRequests","contextMenuCallbacksRef","callbacksMap","item","set","text","onPress","nativeContextMenuItems","filter","visible","map","icon","pending","pendingCaretRect","err","forEach","reject","clear","normalizedStyle","normalizedSelectionMenuConfig","format","copyAsMarkdown","enabled","formatLabel","label","copyAsMarkdownLabel","normalizedFormatMenuConfig","bold","italic","underline","strikethrough","spoiler","link","boldLabel","italicLabel","underlineLabel","strikethroughLabel","spoilerLabel","linkLabel","handleLinkDetected","e","url","start","end","nativeEvent","handleMathPress","latex","displayMode","x","y","width","height","rect","handleChangeText","value","handleChangeMarkdown","handleChangeSelection","handleChangeState","handleCaretRectChange","handleStartMention","handleChangeMention","handleEndMention","handleFocus","handleBlur","handleRequestMarkdownResult","requestId","markdown","get","resolve","delete","handleRequestCaretRectResult","handleContextMenuItemPress","itemText","selectedText","selectionStart","selectionEnd","styleState","callback","selection","node","commandRef","measure","measureInWindow","measureLayout","relativeToNativeNode","onSuccess","onFail","focus","blur","setValue","setSelection","toggleBold","toggleItalic","toggleUnderline","toggleStrikethrough","toggleSpoiler","setLink","insertLink","insertMention","displayText","startMention","indicator","removeLink","insertMath","options","display","updateMath","removeMath","copyToClipboard","getMarkdown","Promise","requestMarkdown","getCaretRect","requestCaretRect","isOnChangeMarkdownSet","undefined","onInputFocus","onInputBlur","onRequestMarkdownResult","onRequestCaretRectResult","onContextMenuItemPress"],"sourceRoot":"../../src","sources":["EnrichedMarkdownTextInput.tsx"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,7 @@ interface MathStyleInternal {
19
19
  paddingVertical: CodegenTypes.Float;
20
20
  selectedBackgroundColor: ColorValue;
21
21
  selectedBorderColor: ColorValue;
22
+ fontWeight: string;
22
23
  }
23
24
 
24
25
  interface MathBlockStyleInternal extends MathStyleInternal {
@@ -210,6 +211,17 @@ export interface NativeProps extends ViewProps {
210
211
  * @default true
211
212
  */
212
213
  scrollEnabled?: boolean;
214
+ /**
215
+ * Whether block-level markdown syntax is interpreted.
216
+ *
217
+ * When `false`, list markers, headings, blockquotes, tables, code blocks and
218
+ * thematic breaks stay in the text verbatim instead of being consumed as
219
+ * structure, so the markdown round-trips byte-for-byte. Inline syntax
220
+ * (`**bold**`, links, `$math$`) still applies. `\r\n` is normalized to `\n`
221
+ * and `U+000B` is stripped from the input.
222
+ * @default true
223
+ */
224
+ blockSyntax?: boolean;
213
225
  /**
214
226
  * Auto-capitalization behavior.
215
227
  */
@@ -141,11 +141,13 @@ interface MathStyleInternal {
141
141
  marginTop: CodegenTypes.Float;
142
142
  marginBottom: CodegenTypes.Float;
143
143
  textAlign: string;
144
+ fontWeight: string;
144
145
  }
145
146
 
146
147
  interface InlineMathStyleInternal {
147
148
  color: ColorValue;
148
149
  paddingVertical: CodegenTypes.Float;
150
+ fontWeight: string;
149
151
  }
150
152
 
151
153
  interface SpoilerParticlesStyleInternal {
@@ -237,11 +237,13 @@ const DEFAULT_NORMALIZED_STYLE = Object.freeze({
237
237
  padding: 12,
238
238
  marginTop: 0,
239
239
  marginBottom: 16,
240
- textAlign: 'center'
240
+ textAlign: 'center',
241
+ fontWeight: 'normal'
241
242
  },
242
243
  inlineMath: {
243
244
  color: defaultTextColor,
244
- paddingVertical: 4
245
+ paddingVertical: 4,
246
+ fontWeight: 'normal'
245
247
  },
246
248
  taskList: {
247
249
  checkedColor: Platform.select({