@mathers101/react-native-render-rich-text 0.1.10 → 0.1.14
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.
- package/LICENSE +20 -20
- package/README.md +140 -140
- package/ReactNativeRenderRichText.podspec +23 -23
- package/android/build.gradle +86 -86
- package/android/consumer-rules.pro +3 -3
- package/android/src/main/AndroidManifest.xml +2 -2
- package/android/src/main/java/com/renderrichtext/EnrichedTiptapTextLayoutManager.kt +24 -24
- package/android/src/main/java/com/renderrichtext/EnrichedTiptapTextPackage.kt +13 -13
- package/android/src/main/java/com/renderrichtext/MeasurementStore.kt +644 -644
- package/android/src/main/java/com/renderrichtext/accessibility/AccessibilityLabels.kt +17 -17
- package/android/src/main/java/com/renderrichtext/accessibility/AccessibleTiptapTextView.kt +112 -112
- package/android/src/main/java/com/renderrichtext/accessibility/TiptapAccessibilityHelper.kt +576 -576
- package/android/src/main/java/com/renderrichtext/events/CodeBlockPressEvent.kt +24 -24
- package/android/src/main/java/com/renderrichtext/events/ContextMenuItemPressEvent.kt +28 -28
- package/android/src/main/java/com/renderrichtext/events/CopyPressEvent.kt +24 -24
- package/android/src/main/java/com/renderrichtext/events/ImagePressEvent.kt +25 -25
- package/android/src/main/java/com/renderrichtext/events/LatexErrorEvent.kt +29 -29
- package/android/src/main/java/com/renderrichtext/events/LinkLongPressEvent.kt +23 -23
- package/android/src/main/java/com/renderrichtext/events/LinkPressEvent.kt +23 -23
- package/android/src/main/java/com/renderrichtext/events/MentionLongPressEvent.kt +25 -25
- package/android/src/main/java/com/renderrichtext/events/MentionPressEvent.kt +25 -25
- package/android/src/main/java/com/renderrichtext/events/TaskListItemPressEvent.kt +26 -26
- package/android/src/main/java/com/renderrichtext/math/LatexErrorReporter.kt +9 -9
- package/android/src/main/java/com/renderrichtext/parser/Parser.kt +59 -59
- package/android/src/main/java/com/renderrichtext/parser/TextLinkMatching.kt +35 -35
- package/android/src/main/java/com/renderrichtext/renderer/BaselineShiftRenderer.kt +45 -45
- package/android/src/main/java/com/renderrichtext/renderer/BlankLineRenderer.kt +39 -39
- package/android/src/main/java/com/renderrichtext/renderer/BlockquoteRenderer.kt +243 -243
- package/android/src/main/java/com/renderrichtext/renderer/BlockquoteTextRenderer.kt +56 -56
- package/android/src/main/java/com/renderrichtext/renderer/CodeBlockRenderer.kt +135 -135
- package/android/src/main/java/com/renderrichtext/renderer/CodeRenderer.kt +37 -37
- package/android/src/main/java/com/renderrichtext/renderer/EmphasisRenderer.kt +28 -28
- package/android/src/main/java/com/renderrichtext/renderer/HeadingRenderer.kt +81 -81
- package/android/src/main/java/com/renderrichtext/renderer/HighlightRenderer.kt +26 -26
- package/android/src/main/java/com/renderrichtext/renderer/LineBreakRenderer.kt +17 -17
- package/android/src/main/java/com/renderrichtext/renderer/LinkRenderer.kt +90 -90
- package/android/src/main/java/com/renderrichtext/renderer/ListContextManager.kt +109 -109
- package/android/src/main/java/com/renderrichtext/renderer/ListItemRenderer.kt +211 -211
- package/android/src/main/java/com/renderrichtext/renderer/ListRenderer.kt +133 -133
- package/android/src/main/java/com/renderrichtext/renderer/MentionRenderer.kt +85 -85
- package/android/src/main/java/com/renderrichtext/renderer/ParagraphRenderer.kt +91 -91
- package/android/src/main/java/com/renderrichtext/renderer/Renderer.kt +148 -148
- package/android/src/main/java/com/renderrichtext/renderer/SoftBreakRenderer.kt +17 -17
- package/android/src/main/java/com/renderrichtext/renderer/SpanStyleCache.kt +143 -143
- package/android/src/main/java/com/renderrichtext/renderer/StrikethroughRenderer.kt +28 -28
- package/android/src/main/java/com/renderrichtext/renderer/StrongRenderer.kt +28 -28
- package/android/src/main/java/com/renderrichtext/renderer/TextRenderer.kt +31 -31
- package/android/src/main/java/com/renderrichtext/renderer/ThematicBreakRenderer.kt +46 -46
- package/android/src/main/java/com/renderrichtext/renderer/UnderlineRenderer.kt +28 -28
- package/android/src/main/java/com/renderrichtext/spans/BaseListSpan.kt +164 -164
- package/android/src/main/java/com/renderrichtext/spans/BaselineShiftSpan.kt +27 -27
- package/android/src/main/java/com/renderrichtext/spans/BlockquoteSpan.kt +302 -302
- package/android/src/main/java/com/renderrichtext/spans/CodeBackgroundSpan.kt +205 -205
- package/android/src/main/java/com/renderrichtext/spans/CodeBlockSpan.kt +216 -216
- package/android/src/main/java/com/renderrichtext/spans/CodeSpan.kt +32 -32
- package/android/src/main/java/com/renderrichtext/spans/EmphasisSpan.kt +42 -42
- package/android/src/main/java/com/renderrichtext/spans/FadeInSpan.kt +29 -29
- package/android/src/main/java/com/renderrichtext/spans/HeadingSpan.kt +38 -38
- package/android/src/main/java/com/renderrichtext/spans/HighlightSpan.kt +80 -80
- package/android/src/main/java/com/renderrichtext/spans/ImageSpan.kt +481 -481
- package/android/src/main/java/com/renderrichtext/spans/InlineBackgroundGeometry.kt +42 -42
- package/android/src/main/java/com/renderrichtext/spans/LineHeightSpan.kt +39 -39
- package/android/src/main/java/com/renderrichtext/spans/LinkPillIconCache.kt +154 -154
- package/android/src/main/java/com/renderrichtext/spans/LinkPillSpan.kt +381 -381
- package/android/src/main/java/com/renderrichtext/spans/LinkSpan.kt +68 -68
- package/android/src/main/java/com/renderrichtext/spans/ListItemSpacingSpan.kt +33 -33
- package/android/src/main/java/com/renderrichtext/spans/ListMarkerAnchorSpan.kt +38 -38
- package/android/src/main/java/com/renderrichtext/spans/MarginBottomSpan.kt +76 -76
- package/android/src/main/java/com/renderrichtext/spans/MentionChipSpan.kt +132 -132
- package/android/src/main/java/com/renderrichtext/spans/MentionSpan.kt +46 -46
- package/android/src/main/java/com/renderrichtext/spans/OrderedListSpan.kt +127 -127
- package/android/src/main/java/com/renderrichtext/spans/SpoilerSpan.kt +33 -33
- package/android/src/main/java/com/renderrichtext/spans/StrikethroughSpan.kt +12 -12
- package/android/src/main/java/com/renderrichtext/spans/StrongSpan.kt +39 -39
- package/android/src/main/java/com/renderrichtext/spans/TaskListSpan.kt +143 -143
- package/android/src/main/java/com/renderrichtext/spans/TextSpan.kt +26 -26
- package/android/src/main/java/com/renderrichtext/spans/ThematicBreakSpan.kt +69 -69
- package/android/src/main/java/com/renderrichtext/spans/UnorderedListSpan.kt +96 -96
- package/android/src/main/java/com/renderrichtext/spoiler/SpoilerStubs.kt +46 -46
- package/android/src/main/java/com/renderrichtext/styles/BaseBlockStyle.kt +11 -11
- package/android/src/main/java/com/renderrichtext/styles/BlockquoteStyle.kt +83 -83
- package/android/src/main/java/com/renderrichtext/styles/CodeBlockStyle.kt +80 -80
- package/android/src/main/java/com/renderrichtext/styles/CodeStyle.kt +26 -26
- package/android/src/main/java/com/renderrichtext/styles/EmphasisStyle.kt +21 -21
- package/android/src/main/java/com/renderrichtext/styles/FactoidStyle.kt +21 -21
- package/android/src/main/java/com/renderrichtext/styles/HeadingStyle.kt +33 -33
- package/android/src/main/java/com/renderrichtext/styles/HighlightStyle.kt +19 -19
- package/android/src/main/java/com/renderrichtext/styles/ImageStyle.kt +29 -29
- package/android/src/main/java/com/renderrichtext/styles/InlineImageStyle.kt +17 -17
- package/android/src/main/java/com/renderrichtext/styles/InlineMathStyle.kt +17 -17
- package/android/src/main/java/com/renderrichtext/styles/LinkPillContent.kt +36 -36
- package/android/src/main/java/com/renderrichtext/styles/LinkPillStyle.kt +44 -44
- package/android/src/main/java/com/renderrichtext/styles/LinkStyle.kt +23 -23
- package/android/src/main/java/com/renderrichtext/styles/LinkVariantEntry.kt +34 -34
- package/android/src/main/java/com/renderrichtext/styles/ListStyle.kt +65 -65
- package/android/src/main/java/com/renderrichtext/styles/MathStyle.kt +29 -29
- package/android/src/main/java/com/renderrichtext/styles/MentionStyle.kt +19 -19
- package/android/src/main/java/com/renderrichtext/styles/ParagraphStyle.kt +33 -33
- package/android/src/main/java/com/renderrichtext/styles/SpoilerStyle.kt +27 -27
- package/android/src/main/java/com/renderrichtext/styles/StrikethroughStyle.kt +17 -17
- package/android/src/main/java/com/renderrichtext/styles/StrongStyle.kt +21 -21
- package/android/src/main/java/com/renderrichtext/styles/StyleConfig.kt +411 -411
- package/android/src/main/java/com/renderrichtext/styles/StyleParser.kt +92 -92
- package/android/src/main/java/com/renderrichtext/styles/SubscriptStyle.kt +16 -16
- package/android/src/main/java/com/renderrichtext/styles/SuperscriptStyle.kt +16 -16
- package/android/src/main/java/com/renderrichtext/styles/TableStyle.kt +75 -75
- package/android/src/main/java/com/renderrichtext/styles/TaskListStyle.kt +29 -29
- package/android/src/main/java/com/renderrichtext/styles/TextAlignment.kt +32 -32
- package/android/src/main/java/com/renderrichtext/styles/ThematicBreakStyle.kt +23 -23
- package/android/src/main/java/com/renderrichtext/styles/UnderlineStyle.kt +17 -17
- package/android/src/main/java/com/renderrichtext/styles/VideoStyle.kt +31 -31
- package/android/src/main/java/com/renderrichtext/utils/common/BorderStyleUtils.kt +86 -86
- package/android/src/main/java/com/renderrichtext/utils/common/BreakStrategyUtils.kt +32 -32
- package/android/src/main/java/com/renderrichtext/utils/common/CodeBlockHighlighter.kt +36 -36
- package/android/src/main/java/com/renderrichtext/utils/common/CodeBlockNode.kt +42 -42
- package/android/src/main/java/com/renderrichtext/utils/common/EllipsizeUtils.kt +27 -27
- package/android/src/main/java/com/renderrichtext/utils/common/EnrichedTiptapAncestorUtils.kt +10 -10
- package/android/src/main/java/com/renderrichtext/utils/common/FeatureFlags.kt +9 -9
- package/android/src/main/java/com/renderrichtext/utils/common/LinkRecognitionProps.kt +31 -31
- package/android/src/main/java/com/renderrichtext/utils/common/LinkRegexConfig.kt +56 -56
- package/android/src/main/java/com/renderrichtext/utils/common/MotionPreferences.kt +18 -18
- package/android/src/main/java/com/renderrichtext/utils/common/ReadableMapExtensions.kt +28 -28
- package/android/src/main/java/com/renderrichtext/utils/common/layout/RTLUtils.kt +6 -6
- package/android/src/main/java/com/renderrichtext/utils/common/serialization/TiptapASTSerializer.kt +368 -368
- package/android/src/main/java/com/renderrichtext/utils/text/ImageCache.kt +88 -88
- package/android/src/main/java/com/renderrichtext/utils/text/ImageDownloader.kt +203 -203
- package/android/src/main/java/com/renderrichtext/utils/text/LocalImageLoader.kt +167 -167
- package/android/src/main/java/com/renderrichtext/utils/text/TailFadeInAnimator.kt +84 -84
- package/android/src/main/java/com/renderrichtext/utils/text/conversion/HTMLGenerator.kt +1105 -1105
- package/android/src/main/java/com/renderrichtext/utils/text/conversion/TiptapExtractor.kt +423 -423
- package/android/src/main/java/com/renderrichtext/utils/text/extensions/ParagraphUtils.kt +9 -9
- package/android/src/main/java/com/renderrichtext/utils/text/extensions/SpannableExtensions.kt +9 -9
- package/android/src/main/java/com/renderrichtext/utils/text/extensions/TextPaintExtensions.kt +76 -76
- package/android/src/main/java/com/renderrichtext/utils/text/interaction/CheckboxTouchHelper.kt +61 -61
- package/android/src/main/java/com/renderrichtext/utils/text/interaction/TaskListTapUtils.kt +286 -286
- package/android/src/main/java/com/renderrichtext/utils/text/span/ApplyLineHeight.kt +39 -39
- package/android/src/main/java/com/renderrichtext/utils/text/span/BlockSpacing.kt +142 -142
- package/android/src/main/java/com/renderrichtext/utils/text/span/SpanFlags.kt +43 -43
- package/android/src/main/java/com/renderrichtext/utils/text/span/WidthAwareSpans.kt +30 -30
- package/android/src/main/java/com/renderrichtext/utils/text/view/CodeBlockPressHost.kt +15 -15
- package/android/src/main/java/com/renderrichtext/utils/text/view/ImagePressHost.kt +19 -19
- package/android/src/main/java/com/renderrichtext/utils/text/view/SelectionActionMode.kt +235 -235
- package/android/src/main/java/com/renderrichtext/utils/text/view/TextSelectionColors.kt +48 -48
- package/android/src/main/java/com/renderrichtext/utils/text/view/TextViewSetup.kt +119 -119
- package/android/src/main/java/com/renderrichtext/views/ContextMenuPopup.kt +217 -217
- package/android/src/main/java/com/renderrichtext/views/CopyGlyph.kt +101 -101
- package/android/src/main/java/com/renderrichtext/views/WrapGlyph.kt +40 -40
- package/android/src/main/jni/CMakeLists.txt +52 -52
- package/android/src/main/jni/react/renderer/components/RichTextSpec/ComponentDescriptors.h +30 -30
- package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextComponentDescriptor.h +29 -29
- package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextMeasurementManager.cpp +45 -45
- package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextMeasurementManager.h +21 -21
- package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextShadowNode.cpp +38 -38
- package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextShadowNode.h +53 -53
- package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextState.cpp +9 -9
- package/android/src/main/jni/react/renderer/components/RichTextSpec/TiptapTextState.h +24 -24
- package/android/src/main/jni/react/renderer/components/RichTextSpec/conversions.h +40 -40
- package/cpp/parser/TiptapParser.hpp +13 -13
- package/cpp/vendor/nlohmann/json.hpp +24765 -24765
- package/ios/EnrichedTiptapText.h +27 -27
- package/ios/attachments/ENRMImageAttachment.h +51 -51
- package/ios/attachments/ENRMImageAttachment.m +398 -398
- package/ios/attachments/ENRMLinkPillAttachment.h +47 -47
- package/ios/attachments/ENRMLinkPillAttachment.m +324 -324
- package/ios/attachments/ENRMLinkPillIconCache.h +28 -28
- package/ios/attachments/ENRMLinkPillIconCache.m +181 -181
- package/ios/attachments/ENRMLinkPillText.h +27 -27
- package/ios/attachments/ENRMLinkPillText.m +118 -118
- package/ios/attachments/ENRMMathInlineAttachment.h +7 -7
- package/ios/attachments/ENRMMathInlineAttachment.m +4 -4
- package/ios/attachments/ThematicBreakAttachment.h +15 -15
- package/ios/attachments/ThematicBreakAttachment.m +33 -33
- package/ios/internals/ENRMViewFreeMeasurement.h +208 -208
- package/ios/internals/EnrichedTiptapTextComponentDescriptor.h +19 -19
- package/ios/internals/EnrichedTiptapTextShadowNode.h +43 -43
- package/ios/internals/EnrichedTiptapTextShadowNode.mm +69 -69
- package/ios/internals/EnrichedTiptapTextState.h +24 -24
- package/ios/internals/MeasurementCache.h +308 -308
- package/ios/internals/ShadowMeasurementUtils.h +145 -145
- package/ios/parser/ENRMTextLinkAttributes.h +7 -7
- package/ios/parser/ENRMTiptapParser.h +33 -33
- package/ios/parser/ENRMTiptapParser.mm +73 -73
- package/ios/parser/TiptapASTNode.m +52 -52
- package/ios/renderer/AttributedRenderer.h +23 -23
- package/ios/renderer/AttributedRenderer.m +229 -229
- package/ios/renderer/BaseRenderer.h +33 -33
- package/ios/renderer/BaseRenderer.m +46 -46
- package/ios/renderer/BaselineShiftTextAttributes.h +10 -10
- package/ios/renderer/BaselineShiftTextAttributes.m +26 -26
- package/ios/renderer/BlankLineRenderer.h +4 -4
- package/ios/renderer/BlankLineRenderer.m +51 -51
- package/ios/renderer/BlockquoteRenderer.h +6 -6
- package/ios/renderer/BlockquoteRenderer.m +258 -258
- package/ios/renderer/CodeBlockRenderer.h +9 -9
- package/ios/renderer/CodeBlockRenderer.m +99 -99
- package/ios/renderer/CodeRenderer.h +9 -9
- package/ios/renderer/CodeRenderer.m +69 -69
- package/ios/renderer/ENRMBlockquoteTextRenderer.h +25 -25
- package/ios/renderer/ENRMBlockquoteTextRenderer.m +48 -48
- package/ios/renderer/EmphasisRenderer.h +5 -5
- package/ios/renderer/EmphasisRenderer.m +99 -99
- package/ios/renderer/HeadingRenderer.h +6 -6
- package/ios/renderer/HeadingRenderer.m +102 -102
- package/ios/renderer/HighlightRenderer.h +7 -7
- package/ios/renderer/HighlightRenderer.m +33 -33
- package/ios/renderer/LinkRenderer.h +6 -6
- package/ios/renderer/LinkRenderer.m +157 -157
- package/ios/renderer/ListItemRenderer.h +24 -24
- package/ios/renderer/ListItemRenderer.m +283 -283
- package/ios/renderer/ListRenderer.h +13 -13
- package/ios/renderer/ListRenderer.m +126 -126
- package/ios/renderer/MentionRenderer.h +9 -9
- package/ios/renderer/MentionRenderer.m +96 -96
- package/ios/renderer/NodeRenderer.h +8 -8
- package/ios/renderer/ParagraphRenderer.h +6 -6
- package/ios/renderer/ParagraphRenderer.m +85 -85
- package/ios/renderer/RenderContext.h +145 -145
- package/ios/renderer/RenderContext.m +402 -402
- package/ios/renderer/RendererFactory.h +12 -12
- package/ios/renderer/StrikethroughRenderer.h +5 -5
- package/ios/renderer/StrikethroughRenderer.m +30 -30
- package/ios/renderer/StrongRenderer.h +5 -5
- package/ios/renderer/StrongRenderer.m +87 -87
- package/ios/renderer/TextRenderer.h +6 -6
- package/ios/renderer/TextRenderer.m +18 -18
- package/ios/renderer/ThematicBreakRenderer.h +4 -4
- package/ios/renderer/ThematicBreakRenderer.m +41 -41
- package/ios/renderer/UnderlineRenderer.h +4 -4
- package/ios/renderer/UnderlineRenderer.m +41 -41
- package/ios/styles/ENRMFontSlot.h +12 -12
- package/ios/styles/ENRMFontSlot.m +24 -24
- package/ios/styles/StyleConfig.h +488 -488
- package/ios/styles/StyleConfig.mm +2820 -2820
- package/ios/utils/AccessibilityInfo.h +35 -35
- package/ios/utils/AccessibilityInfo.m +24 -24
- package/ios/utils/BlockquoteBorder.h +26 -26
- package/ios/utils/BlockquoteBorder.m +294 -294
- package/ios/utils/CodeBackground.h +19 -19
- package/ios/utils/CodeBackground.m +196 -196
- package/ios/utils/CodeBlockBackground.h +17 -17
- package/ios/utils/CodeBlockBackground.m +102 -102
- package/ios/utils/ContextMenuUtils.h +76 -76
- package/ios/utils/ContextMenuUtils.mm +75 -75
- package/ios/utils/ENRMAccessibilityLabels.h +40 -40
- package/ios/utils/ENRMAccessibilityLabels.m +5 -5
- package/ios/utils/ENRMAsyncRenderCoordinator.h +24 -24
- package/ios/utils/ENRMAsyncRenderCoordinator.m +37 -37
- package/ios/utils/ENRMAtomicSize.h +65 -65
- package/ios/utils/ENRMCodeBlockContent.h +37 -37
- package/ios/utils/ENRMCodeBlockContent.mm +89 -89
- package/ios/utils/ENRMFeatureFlags.h +25 -25
- package/ios/utils/ENRMImageDownloader.h +30 -30
- package/ios/utils/ENRMImageDownloader.m +168 -168
- package/ios/utils/ENRMLatexErrorCoordinator.h +27 -27
- package/ios/utils/ENRMLatexErrorCoordinator.mm +75 -75
- package/ios/utils/ENRMLatexErrorReporting.h +13 -13
- package/ios/utils/ENRMLinkContextMenus.h +93 -93
- package/ios/utils/ENRMLinkContextMenus.m +178 -178
- package/ios/utils/ENRMLinkRegexConfig.h +30 -30
- package/ios/utils/ENRMLinkRegexConfig.mm +104 -104
- package/ios/utils/ENRMLinkRegexProps.h +23 -23
- package/ios/utils/ENRMLocalImageLoader.h +35 -35
- package/ios/utils/ENRMLocalImageLoader.m +111 -111
- package/ios/utils/ENRMMenuAction.h +27 -27
- package/ios/utils/ENRMMenuAction.m +33 -33
- package/ios/utils/ENRMSpoilerOverlayManager.h +15 -15
- package/ios/utils/ENRMSpoilerOverlayManager.m +19 -19
- package/ios/utils/ENRMSpoilerTapUtils.h +6 -6
- package/ios/utils/ENRMSpoilerTapUtils.m +11 -11
- package/ios/utils/ENRMTailFadeInAnimator.h +16 -16
- package/ios/utils/ENRMTailFadeInAnimator.m +161 -161
- package/ios/utils/ENRMTextHitTest.h +23 -23
- package/ios/utils/ENRMTextHitTest.m +20 -20
- package/ios/utils/ENRMTextInteractionUtils.h +20 -20
- package/ios/utils/ENRMTextInteractionUtils.m +15 -15
- package/ios/utils/ENRMTextRenderer.h +38 -38
- package/ios/utils/ENRMTextRenderer.m +54 -54
- package/ios/utils/ENRMTextViewSetup.h +132 -132
- package/ios/utils/ENRMUIKit.h +429 -429
- package/ios/utils/EditMenuUtils.h +105 -105
- package/ios/utils/EditMenuUtils.m +143 -143
- package/ios/utils/FontScaleObserver.h +10 -10
- package/ios/utils/FontScaleObserver.m +55 -55
- package/ios/utils/FontUtils.h +31 -31
- package/ios/utils/FontUtils.m +63 -63
- package/ios/utils/HTMLGenerator.h +25 -25
- package/ios/utils/HTMLGenerator.m +1041 -1041
- package/ios/utils/HeightUpdateUtils.h +25 -25
- package/ios/utils/ImageRequestHeaderUtils.h +35 -35
- package/ios/utils/LastElementUtils.h +97 -97
- package/ios/utils/LinkContextMenuUtils.h +55 -55
- package/ios/utils/LinkPillContentUtils.h +46 -46
- package/ios/utils/ListMarkerDrawer.h +15 -15
- package/ios/utils/ListMarkerDrawer.m +239 -239
- package/ios/utils/MentionBackground.h +26 -26
- package/ios/utils/MentionBackground.m +86 -86
- package/ios/utils/ParagraphStyleUtils.h +87 -87
- package/ios/utils/ParagraphStyleUtils.m +484 -484
- package/ios/utils/PasteboardUtils.h +48 -48
- package/ios/utils/PasteboardUtils.m +166 -166
- package/ios/utils/RTFExportUtils.h +24 -24
- package/ios/utils/RTFExportUtils.m +299 -299
- package/ios/utils/SelectionColorUtils.h +14 -14
- package/ios/utils/StylePropsUtils.h +1340 -1340
- package/ios/utils/TaskListTapUtils.h +6 -6
- package/ios/utils/TaskListTapUtils.m +14 -14
- package/ios/utils/TextViewLayoutManager.h +14 -14
- package/ios/utils/TiptapAccessibilityElementBuilder.h +43 -43
- package/ios/utils/TiptapAccessibilityElementBuilder.m +432 -432
- package/ios/utils/TiptapExtractor.h +17 -17
- package/ios/utils/TiptapExtractor.m +367 -367
- package/ios/views/ENRMTiptapTextView.h +25 -25
- package/ios/views/ENRMTiptapTextView.m +247 -247
- package/package.json +65 -70
- package/react-native.config.js +10 -10
- package/src/admonitionDefaults.ts +58 -58
- package/src/darkModeTextStyle.ts +99 -99
- package/src/headingDefaults.ts +21 -21
- package/src/index.tsx +4 -4
- package/src/linkVariantUtils.ts +120 -120
- package/src/normalizeTiptapStyle.ts +397 -397
- package/src/rn-globals.d.ts +1 -1
- package/src/styleUtils.ts +107 -107
- package/src/types/TiptapStyle.ts +532 -532
- package/src/types/TiptapStyleInternal.ts +299 -299
- package/src/types/linkPill.ts +9 -9
- package/src/utils/isDev.ts +4 -4
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
package com.renderrichtext.spans
|
|
2
|
-
|
|
3
|
-
import android.content.Context
|
|
4
|
-
import android.graphics.Canvas
|
|
5
|
-
import android.graphics.Paint
|
|
6
|
-
import android.text.Layout
|
|
7
|
-
import com.renderrichtext.renderer.BlockStyle
|
|
8
|
-
import com.renderrichtext.renderer.SpanStyleCache
|
|
9
|
-
import com.renderrichtext.styles.ListStyle
|
|
10
|
-
|
|
11
|
-
class UnorderedListSpan(
|
|
12
|
-
private val listStyle: ListStyle,
|
|
13
|
-
depth: Int,
|
|
14
|
-
context: Context,
|
|
15
|
-
styleCache: SpanStyleCache,
|
|
16
|
-
drawsMarker: Boolean = true,
|
|
17
|
-
ancestorMarkerOffset: Float = 0f,
|
|
18
|
-
parentMarkerWidth: Float? = null,
|
|
19
|
-
) : BaseListSpan(
|
|
20
|
-
depth = depth,
|
|
21
|
-
context = context,
|
|
22
|
-
styleCache = styleCache,
|
|
23
|
-
blockStyle =
|
|
24
|
-
BlockStyle(
|
|
25
|
-
fontSize = listStyle.fontSize,
|
|
26
|
-
fontFamily = listStyle.fontFamily,
|
|
27
|
-
fontWeight = listStyle.fontWeight,
|
|
28
|
-
color = listStyle.color,
|
|
29
|
-
),
|
|
30
|
-
marginLeft = listStyle.marginLeft,
|
|
31
|
-
gapWidth = listStyle.gapWidth,
|
|
32
|
-
drawsMarker = drawsMarker,
|
|
33
|
-
ancestorMarkerOffset = ancestorMarkerOffset,
|
|
34
|
-
parentMarkerWidth = parentMarkerWidth,
|
|
35
|
-
) {
|
|
36
|
-
companion object {
|
|
37
|
-
private val sharedBulletPaint =
|
|
38
|
-
Paint(Paint.ANTI_ALIAS_FLAG).apply {
|
|
39
|
-
style = Paint.Style.FILL
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
private val radius: Float = listStyle.bulletSize / 2f
|
|
44
|
-
private val ringStrokeWidth: Float = radius * 0.3f
|
|
45
|
-
// Same column an ordered list reserves for `99.`, so both lists indent equally.
|
|
46
|
-
private val markerColumnWidth: Float = OrderedListSpan.defaultMarkerColumnWidth(listStyle, context)
|
|
47
|
-
|
|
48
|
-
private fun configureBulletPaint(): Paint =
|
|
49
|
-
sharedBulletPaint.apply {
|
|
50
|
-
color = listStyle.bulletColor
|
|
51
|
-
style = Paint.Style.FILL
|
|
52
|
-
strokeWidth = 0f
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
override fun getMarkerWidth(): Float = markerColumnWidth
|
|
56
|
-
|
|
57
|
-
override fun drawMarker(
|
|
58
|
-
canvas: Canvas,
|
|
59
|
-
paint: Paint,
|
|
60
|
-
x: Int,
|
|
61
|
-
dir: Int,
|
|
62
|
-
top: Int,
|
|
63
|
-
baseline: Int,
|
|
64
|
-
bottom: Int,
|
|
65
|
-
layout: Layout?,
|
|
66
|
-
start: Int,
|
|
67
|
-
) {
|
|
68
|
-
val bulletPaint = configureBulletPaint()
|
|
69
|
-
// Right-align the bullet in the same column as a number, so its right edge
|
|
70
|
-
// meets the gap instead of sitting halfway into it.
|
|
71
|
-
val bulletX = x + (depth * marginLeft + ancestorMarkerOffset + markerColumnWidth - radius) * dir
|
|
72
|
-
val bulletY = baseline + (markerFontMetrics.ascent + markerFontMetrics.descent) / 2f
|
|
73
|
-
|
|
74
|
-
when (depth) {
|
|
75
|
-
0 -> {
|
|
76
|
-
canvas.drawCircle(bulletX, bulletY, radius, bulletPaint)
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
1 -> {
|
|
80
|
-
bulletPaint.style = Paint.Style.STROKE
|
|
81
|
-
bulletPaint.strokeWidth = ringStrokeWidth
|
|
82
|
-
canvas.drawCircle(bulletX, bulletY, radius - ringStrokeWidth / 2f, bulletPaint)
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
else -> {
|
|
86
|
-
canvas.drawRect(
|
|
87
|
-
bulletX - radius,
|
|
88
|
-
bulletY - radius,
|
|
89
|
-
bulletX + radius,
|
|
90
|
-
bulletY + radius,
|
|
91
|
-
bulletPaint,
|
|
92
|
-
)
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
1
|
+
package com.renderrichtext.spans
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.graphics.Canvas
|
|
5
|
+
import android.graphics.Paint
|
|
6
|
+
import android.text.Layout
|
|
7
|
+
import com.renderrichtext.renderer.BlockStyle
|
|
8
|
+
import com.renderrichtext.renderer.SpanStyleCache
|
|
9
|
+
import com.renderrichtext.styles.ListStyle
|
|
10
|
+
|
|
11
|
+
class UnorderedListSpan(
|
|
12
|
+
private val listStyle: ListStyle,
|
|
13
|
+
depth: Int,
|
|
14
|
+
context: Context,
|
|
15
|
+
styleCache: SpanStyleCache,
|
|
16
|
+
drawsMarker: Boolean = true,
|
|
17
|
+
ancestorMarkerOffset: Float = 0f,
|
|
18
|
+
parentMarkerWidth: Float? = null,
|
|
19
|
+
) : BaseListSpan(
|
|
20
|
+
depth = depth,
|
|
21
|
+
context = context,
|
|
22
|
+
styleCache = styleCache,
|
|
23
|
+
blockStyle =
|
|
24
|
+
BlockStyle(
|
|
25
|
+
fontSize = listStyle.fontSize,
|
|
26
|
+
fontFamily = listStyle.fontFamily,
|
|
27
|
+
fontWeight = listStyle.fontWeight,
|
|
28
|
+
color = listStyle.color,
|
|
29
|
+
),
|
|
30
|
+
marginLeft = listStyle.marginLeft,
|
|
31
|
+
gapWidth = listStyle.gapWidth,
|
|
32
|
+
drawsMarker = drawsMarker,
|
|
33
|
+
ancestorMarkerOffset = ancestorMarkerOffset,
|
|
34
|
+
parentMarkerWidth = parentMarkerWidth,
|
|
35
|
+
) {
|
|
36
|
+
companion object {
|
|
37
|
+
private val sharedBulletPaint =
|
|
38
|
+
Paint(Paint.ANTI_ALIAS_FLAG).apply {
|
|
39
|
+
style = Paint.Style.FILL
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
private val radius: Float = listStyle.bulletSize / 2f
|
|
44
|
+
private val ringStrokeWidth: Float = radius * 0.3f
|
|
45
|
+
// Same column an ordered list reserves for `99.`, so both lists indent equally.
|
|
46
|
+
private val markerColumnWidth: Float = OrderedListSpan.defaultMarkerColumnWidth(listStyle, context)
|
|
47
|
+
|
|
48
|
+
private fun configureBulletPaint(): Paint =
|
|
49
|
+
sharedBulletPaint.apply {
|
|
50
|
+
color = listStyle.bulletColor
|
|
51
|
+
style = Paint.Style.FILL
|
|
52
|
+
strokeWidth = 0f
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
override fun getMarkerWidth(): Float = markerColumnWidth
|
|
56
|
+
|
|
57
|
+
override fun drawMarker(
|
|
58
|
+
canvas: Canvas,
|
|
59
|
+
paint: Paint,
|
|
60
|
+
x: Int,
|
|
61
|
+
dir: Int,
|
|
62
|
+
top: Int,
|
|
63
|
+
baseline: Int,
|
|
64
|
+
bottom: Int,
|
|
65
|
+
layout: Layout?,
|
|
66
|
+
start: Int,
|
|
67
|
+
) {
|
|
68
|
+
val bulletPaint = configureBulletPaint()
|
|
69
|
+
// Right-align the bullet in the same column as a number, so its right edge
|
|
70
|
+
// meets the gap instead of sitting halfway into it.
|
|
71
|
+
val bulletX = x + (depth * marginLeft + ancestorMarkerOffset + markerColumnWidth - radius) * dir
|
|
72
|
+
val bulletY = baseline + (markerFontMetrics.ascent + markerFontMetrics.descent) / 2f
|
|
73
|
+
|
|
74
|
+
when (depth) {
|
|
75
|
+
0 -> {
|
|
76
|
+
canvas.drawCircle(bulletX, bulletY, radius, bulletPaint)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
1 -> {
|
|
80
|
+
bulletPaint.style = Paint.Style.STROKE
|
|
81
|
+
bulletPaint.strokeWidth = ringStrokeWidth
|
|
82
|
+
canvas.drawCircle(bulletX, bulletY, radius - ringStrokeWidth / 2f, bulletPaint)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
else -> {
|
|
86
|
+
canvas.drawRect(
|
|
87
|
+
bulletX - radius,
|
|
88
|
+
bulletY - radius,
|
|
89
|
+
bulletX + radius,
|
|
90
|
+
bulletY + radius,
|
|
91
|
+
bulletPaint,
|
|
92
|
+
)
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
package com.renderrichtext.spoiler
|
|
2
|
-
|
|
3
|
-
import android.graphics.Canvas
|
|
4
|
-
import android.text.Spanned
|
|
5
|
-
import android.view.View
|
|
6
|
-
import com.renderrichtext.spans.SpoilerSpan
|
|
7
|
-
|
|
8
|
-
enum class SpoilerOverlay {
|
|
9
|
-
NONE,
|
|
10
|
-
PARTICLES,
|
|
11
|
-
;
|
|
12
|
-
|
|
13
|
-
companion object {
|
|
14
|
-
fun fromString(value: String?): SpoilerOverlay = NONE
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
class SpoilerOverlayDrawer {
|
|
19
|
-
fun draw(canvas: Canvas) {}
|
|
20
|
-
|
|
21
|
-
fun stop() {}
|
|
22
|
-
|
|
23
|
-
fun revealSpan(
|
|
24
|
-
span: SpoilerSpan,
|
|
25
|
-
onDone: () -> Unit,
|
|
26
|
-
) {
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
companion object {
|
|
30
|
-
fun setupIfNeeded(
|
|
31
|
-
view: View,
|
|
32
|
-
text: CharSequence?,
|
|
33
|
-
current: SpoilerOverlayDrawer?,
|
|
34
|
-
overlay: SpoilerOverlay,
|
|
35
|
-
): SpoilerOverlayDrawer? = null
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
interface SpoilerCapable {
|
|
40
|
-
val spoilerOverlayDrawer: SpoilerOverlayDrawer?
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
fun Spanned.isConcealedBySpoiler(
|
|
44
|
-
start: Int,
|
|
45
|
-
end: Int,
|
|
46
|
-
): Boolean = false
|
|
1
|
+
package com.renderrichtext.spoiler
|
|
2
|
+
|
|
3
|
+
import android.graphics.Canvas
|
|
4
|
+
import android.text.Spanned
|
|
5
|
+
import android.view.View
|
|
6
|
+
import com.renderrichtext.spans.SpoilerSpan
|
|
7
|
+
|
|
8
|
+
enum class SpoilerOverlay {
|
|
9
|
+
NONE,
|
|
10
|
+
PARTICLES,
|
|
11
|
+
;
|
|
12
|
+
|
|
13
|
+
companion object {
|
|
14
|
+
fun fromString(value: String?): SpoilerOverlay = NONE
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
class SpoilerOverlayDrawer {
|
|
19
|
+
fun draw(canvas: Canvas) {}
|
|
20
|
+
|
|
21
|
+
fun stop() {}
|
|
22
|
+
|
|
23
|
+
fun revealSpan(
|
|
24
|
+
span: SpoilerSpan,
|
|
25
|
+
onDone: () -> Unit,
|
|
26
|
+
) {
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
companion object {
|
|
30
|
+
fun setupIfNeeded(
|
|
31
|
+
view: View,
|
|
32
|
+
text: CharSequence?,
|
|
33
|
+
current: SpoilerOverlayDrawer?,
|
|
34
|
+
overlay: SpoilerOverlay,
|
|
35
|
+
): SpoilerOverlayDrawer? = null
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
interface SpoilerCapable {
|
|
40
|
+
val spoilerOverlayDrawer: SpoilerOverlayDrawer?
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
fun Spanned.isConcealedBySpoiler(
|
|
44
|
+
start: Int,
|
|
45
|
+
end: Int,
|
|
46
|
+
): Boolean = false
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
package com.renderrichtext.styles
|
|
2
|
-
|
|
3
|
-
interface BaseBlockStyle {
|
|
4
|
-
val fontSize: Float
|
|
5
|
-
val fontFamily: String
|
|
6
|
-
val fontWeight: String
|
|
7
|
-
val color: Int
|
|
8
|
-
val marginTop: Float
|
|
9
|
-
val marginBottom: Float
|
|
10
|
-
val lineHeight: Float
|
|
11
|
-
}
|
|
1
|
+
package com.renderrichtext.styles
|
|
2
|
+
|
|
3
|
+
interface BaseBlockStyle {
|
|
4
|
+
val fontSize: Float
|
|
5
|
+
val fontFamily: String
|
|
6
|
+
val fontWeight: String
|
|
7
|
+
val color: Int
|
|
8
|
+
val marginTop: Float
|
|
9
|
+
val marginBottom: Float
|
|
10
|
+
val lineHeight: Float
|
|
11
|
+
}
|
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
package com.renderrichtext.styles
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.ReadableMap
|
|
4
|
-
|
|
5
|
-
/** Per-admonition-type colors. [color] tints border/title/icon; [backgroundColor] null = transparent. */
|
|
6
|
-
data class AdmonitionColors(
|
|
7
|
-
val color: Int,
|
|
8
|
-
val backgroundColor: Int?,
|
|
9
|
-
)
|
|
10
|
-
|
|
11
|
-
data class BlockquoteStyle(
|
|
12
|
-
override val fontSize: Float,
|
|
13
|
-
override val fontFamily: String,
|
|
14
|
-
override val fontWeight: String,
|
|
15
|
-
override val color: Int,
|
|
16
|
-
override val marginTop: Float,
|
|
17
|
-
override val marginBottom: Float,
|
|
18
|
-
override val lineHeight: Float,
|
|
19
|
-
val borderColor: Int,
|
|
20
|
-
val borderWidth: Float,
|
|
21
|
-
val gapWidth: Float,
|
|
22
|
-
val backgroundColor: Int?,
|
|
23
|
-
val borderRadius: Float,
|
|
24
|
-
val padding: Float,
|
|
25
|
-
val admonitions: Map<String, AdmonitionColors>,
|
|
26
|
-
) : BaseBlockStyle {
|
|
27
|
-
companion object {
|
|
28
|
-
private fun parseAdmonitions(
|
|
29
|
-
map: ReadableMap,
|
|
30
|
-
parser: StyleParser,
|
|
31
|
-
): Map<String, AdmonitionColors> {
|
|
32
|
-
val admonitionsMap = map.getMap("admonitions") ?: return emptyMap()
|
|
33
|
-
val result = mutableMapOf<String, AdmonitionColors>()
|
|
34
|
-
for (type in listOf("note", "tip", "important", "warning", "caution")) {
|
|
35
|
-
val typeMap = admonitionsMap.getMap(type) ?: continue
|
|
36
|
-
result[type] =
|
|
37
|
-
AdmonitionColors(
|
|
38
|
-
parser.parseColor(typeMap, "color"),
|
|
39
|
-
parser.parseOptionalColor(typeMap, "backgroundColor"),
|
|
40
|
-
)
|
|
41
|
-
}
|
|
42
|
-
return result
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
fun fromReadableMap(
|
|
46
|
-
map: ReadableMap,
|
|
47
|
-
parser: StyleParser,
|
|
48
|
-
): BlockquoteStyle {
|
|
49
|
-
val fontSize = parser.toPixelFromSP(map.getDouble("fontSize").toFloat())
|
|
50
|
-
val fontFamily = parser.parseString(map, "fontFamily")
|
|
51
|
-
val fontWeight = parser.parseString(map, "fontWeight", "normal")
|
|
52
|
-
val color = parser.parseColor(map, "color")
|
|
53
|
-
val marginTop = parser.toPixelFromDIP(map.getDouble("marginTop").toFloat())
|
|
54
|
-
val marginBottom = parser.toPixelFromDIP(map.getDouble("marginBottom").toFloat())
|
|
55
|
-
val lineHeightRaw = map.getDouble("lineHeight").toFloat()
|
|
56
|
-
val lineHeight = parser.toPixelFromSP(lineHeightRaw)
|
|
57
|
-
val borderColor = parser.parseColor(map, "borderColor")
|
|
58
|
-
val borderWidth = parser.toPixelFromDIP(map.getDouble("borderWidth").toFloat())
|
|
59
|
-
val gapWidth = parser.toPixelFromDIP(map.getDouble("gapWidth").toFloat())
|
|
60
|
-
val backgroundColor = parser.parseOptionalColor(map, "backgroundColor")
|
|
61
|
-
val borderRadius = parser.toPixelFromDIP(map.getDouble("borderRadius").toFloat())
|
|
62
|
-
val padding = parser.toPixelFromDIP(map.getDouble("padding").toFloat())
|
|
63
|
-
val admonitions = parseAdmonitions(map, parser)
|
|
64
|
-
|
|
65
|
-
return BlockquoteStyle(
|
|
66
|
-
fontSize,
|
|
67
|
-
fontFamily,
|
|
68
|
-
fontWeight,
|
|
69
|
-
color,
|
|
70
|
-
marginTop,
|
|
71
|
-
marginBottom,
|
|
72
|
-
lineHeight,
|
|
73
|
-
borderColor,
|
|
74
|
-
borderWidth,
|
|
75
|
-
gapWidth,
|
|
76
|
-
backgroundColor,
|
|
77
|
-
borderRadius,
|
|
78
|
-
padding,
|
|
79
|
-
admonitions,
|
|
80
|
-
)
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
1
|
+
package com.renderrichtext.styles
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableMap
|
|
4
|
+
|
|
5
|
+
/** Per-admonition-type colors. [color] tints border/title/icon; [backgroundColor] null = transparent. */
|
|
6
|
+
data class AdmonitionColors(
|
|
7
|
+
val color: Int,
|
|
8
|
+
val backgroundColor: Int?,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
data class BlockquoteStyle(
|
|
12
|
+
override val fontSize: Float,
|
|
13
|
+
override val fontFamily: String,
|
|
14
|
+
override val fontWeight: String,
|
|
15
|
+
override val color: Int,
|
|
16
|
+
override val marginTop: Float,
|
|
17
|
+
override val marginBottom: Float,
|
|
18
|
+
override val lineHeight: Float,
|
|
19
|
+
val borderColor: Int,
|
|
20
|
+
val borderWidth: Float,
|
|
21
|
+
val gapWidth: Float,
|
|
22
|
+
val backgroundColor: Int?,
|
|
23
|
+
val borderRadius: Float,
|
|
24
|
+
val padding: Float,
|
|
25
|
+
val admonitions: Map<String, AdmonitionColors>,
|
|
26
|
+
) : BaseBlockStyle {
|
|
27
|
+
companion object {
|
|
28
|
+
private fun parseAdmonitions(
|
|
29
|
+
map: ReadableMap,
|
|
30
|
+
parser: StyleParser,
|
|
31
|
+
): Map<String, AdmonitionColors> {
|
|
32
|
+
val admonitionsMap = map.getMap("admonitions") ?: return emptyMap()
|
|
33
|
+
val result = mutableMapOf<String, AdmonitionColors>()
|
|
34
|
+
for (type in listOf("note", "tip", "important", "warning", "caution")) {
|
|
35
|
+
val typeMap = admonitionsMap.getMap(type) ?: continue
|
|
36
|
+
result[type] =
|
|
37
|
+
AdmonitionColors(
|
|
38
|
+
parser.parseColor(typeMap, "color"),
|
|
39
|
+
parser.parseOptionalColor(typeMap, "backgroundColor"),
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
return result
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
fun fromReadableMap(
|
|
46
|
+
map: ReadableMap,
|
|
47
|
+
parser: StyleParser,
|
|
48
|
+
): BlockquoteStyle {
|
|
49
|
+
val fontSize = parser.toPixelFromSP(map.getDouble("fontSize").toFloat())
|
|
50
|
+
val fontFamily = parser.parseString(map, "fontFamily")
|
|
51
|
+
val fontWeight = parser.parseString(map, "fontWeight", "normal")
|
|
52
|
+
val color = parser.parseColor(map, "color")
|
|
53
|
+
val marginTop = parser.toPixelFromDIP(map.getDouble("marginTop").toFloat())
|
|
54
|
+
val marginBottom = parser.toPixelFromDIP(map.getDouble("marginBottom").toFloat())
|
|
55
|
+
val lineHeightRaw = map.getDouble("lineHeight").toFloat()
|
|
56
|
+
val lineHeight = parser.toPixelFromSP(lineHeightRaw)
|
|
57
|
+
val borderColor = parser.parseColor(map, "borderColor")
|
|
58
|
+
val borderWidth = parser.toPixelFromDIP(map.getDouble("borderWidth").toFloat())
|
|
59
|
+
val gapWidth = parser.toPixelFromDIP(map.getDouble("gapWidth").toFloat())
|
|
60
|
+
val backgroundColor = parser.parseOptionalColor(map, "backgroundColor")
|
|
61
|
+
val borderRadius = parser.toPixelFromDIP(map.getDouble("borderRadius").toFloat())
|
|
62
|
+
val padding = parser.toPixelFromDIP(map.getDouble("padding").toFloat())
|
|
63
|
+
val admonitions = parseAdmonitions(map, parser)
|
|
64
|
+
|
|
65
|
+
return BlockquoteStyle(
|
|
66
|
+
fontSize,
|
|
67
|
+
fontFamily,
|
|
68
|
+
fontWeight,
|
|
69
|
+
color,
|
|
70
|
+
marginTop,
|
|
71
|
+
marginBottom,
|
|
72
|
+
lineHeight,
|
|
73
|
+
borderColor,
|
|
74
|
+
borderWidth,
|
|
75
|
+
gapWidth,
|
|
76
|
+
backgroundColor,
|
|
77
|
+
borderRadius,
|
|
78
|
+
padding,
|
|
79
|
+
admonitions,
|
|
80
|
+
)
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
package com.renderrichtext.styles
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.ReadableMap
|
|
4
|
-
|
|
5
|
-
data class CodeBlockStyle(
|
|
6
|
-
override val fontSize: Float,
|
|
7
|
-
override val fontFamily: String,
|
|
8
|
-
override val fontWeight: String,
|
|
9
|
-
override val color: Int,
|
|
10
|
-
override val marginTop: Float,
|
|
11
|
-
override val marginBottom: Float,
|
|
12
|
-
override val lineHeight: Float,
|
|
13
|
-
val backgroundColor: Int,
|
|
14
|
-
val borderColor: Int,
|
|
15
|
-
val borderRadius: Float,
|
|
16
|
-
val borderWidth: Float,
|
|
17
|
-
val padding: Float,
|
|
18
|
-
val syntaxColors: List<Int>,
|
|
19
|
-
) : BaseBlockStyle {
|
|
20
|
-
companion object {
|
|
21
|
-
private val SYNTAX_COLOR_KEYS =
|
|
22
|
-
listOf(
|
|
23
|
-
"keyword",
|
|
24
|
-
"operatorColor",
|
|
25
|
-
"punctuation",
|
|
26
|
-
"string",
|
|
27
|
-
"number",
|
|
28
|
-
"constant",
|
|
29
|
-
"comment",
|
|
30
|
-
"function",
|
|
31
|
-
"type",
|
|
32
|
-
"variable",
|
|
33
|
-
"property",
|
|
34
|
-
"tag",
|
|
35
|
-
"attribute",
|
|
36
|
-
"embedded",
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
fun fromReadableMap(
|
|
40
|
-
map: ReadableMap,
|
|
41
|
-
parser: StyleParser,
|
|
42
|
-
): CodeBlockStyle {
|
|
43
|
-
val fontSize = parser.toPixelFromSP(map.getDouble("fontSize").toFloat())
|
|
44
|
-
val fontFamily = parser.parseString(map, "fontFamily")
|
|
45
|
-
val fontWeight = parser.parseString(map, "fontWeight", "normal")
|
|
46
|
-
val color = parser.parseColor(map, "color")
|
|
47
|
-
val marginTop = parser.toPixelFromDIP(map.getDouble("marginTop").toFloat())
|
|
48
|
-
val marginBottom = parser.toPixelFromDIP(map.getDouble("marginBottom").toFloat())
|
|
49
|
-
val lineHeightRaw = map.getDouble("lineHeight").toFloat()
|
|
50
|
-
val lineHeight = parser.toPixelFromSP(lineHeightRaw)
|
|
51
|
-
val backgroundColor = parser.parseColor(map, "backgroundColor")
|
|
52
|
-
val borderColor = parser.parseColor(map, "borderColor")
|
|
53
|
-
val borderRadius = parser.toPixelFromDIP(map.getDouble("borderRadius").toFloat())
|
|
54
|
-
val borderWidth = parser.toPixelFromDIP(map.getDouble("borderWidth").toFloat())
|
|
55
|
-
val padding = parser.toPixelFromDIP(map.getDouble("padding").toFloat())
|
|
56
|
-
|
|
57
|
-
val syntaxMap = map.getMap("syntaxColors")
|
|
58
|
-
val syntaxColors =
|
|
59
|
-
SYNTAX_COLOR_KEYS.map { key ->
|
|
60
|
-
syntaxMap?.let { parser.parseOptionalColor(it, key) } ?: color
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return CodeBlockStyle(
|
|
64
|
-
fontSize,
|
|
65
|
-
fontFamily,
|
|
66
|
-
fontWeight,
|
|
67
|
-
color,
|
|
68
|
-
marginTop,
|
|
69
|
-
marginBottom,
|
|
70
|
-
lineHeight,
|
|
71
|
-
backgroundColor,
|
|
72
|
-
borderColor,
|
|
73
|
-
borderRadius,
|
|
74
|
-
borderWidth,
|
|
75
|
-
padding,
|
|
76
|
-
syntaxColors,
|
|
77
|
-
)
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
1
|
+
package com.renderrichtext.styles
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableMap
|
|
4
|
+
|
|
5
|
+
data class CodeBlockStyle(
|
|
6
|
+
override val fontSize: Float,
|
|
7
|
+
override val fontFamily: String,
|
|
8
|
+
override val fontWeight: String,
|
|
9
|
+
override val color: Int,
|
|
10
|
+
override val marginTop: Float,
|
|
11
|
+
override val marginBottom: Float,
|
|
12
|
+
override val lineHeight: Float,
|
|
13
|
+
val backgroundColor: Int,
|
|
14
|
+
val borderColor: Int,
|
|
15
|
+
val borderRadius: Float,
|
|
16
|
+
val borderWidth: Float,
|
|
17
|
+
val padding: Float,
|
|
18
|
+
val syntaxColors: List<Int>,
|
|
19
|
+
) : BaseBlockStyle {
|
|
20
|
+
companion object {
|
|
21
|
+
private val SYNTAX_COLOR_KEYS =
|
|
22
|
+
listOf(
|
|
23
|
+
"keyword",
|
|
24
|
+
"operatorColor",
|
|
25
|
+
"punctuation",
|
|
26
|
+
"string",
|
|
27
|
+
"number",
|
|
28
|
+
"constant",
|
|
29
|
+
"comment",
|
|
30
|
+
"function",
|
|
31
|
+
"type",
|
|
32
|
+
"variable",
|
|
33
|
+
"property",
|
|
34
|
+
"tag",
|
|
35
|
+
"attribute",
|
|
36
|
+
"embedded",
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
fun fromReadableMap(
|
|
40
|
+
map: ReadableMap,
|
|
41
|
+
parser: StyleParser,
|
|
42
|
+
): CodeBlockStyle {
|
|
43
|
+
val fontSize = parser.toPixelFromSP(map.getDouble("fontSize").toFloat())
|
|
44
|
+
val fontFamily = parser.parseString(map, "fontFamily")
|
|
45
|
+
val fontWeight = parser.parseString(map, "fontWeight", "normal")
|
|
46
|
+
val color = parser.parseColor(map, "color")
|
|
47
|
+
val marginTop = parser.toPixelFromDIP(map.getDouble("marginTop").toFloat())
|
|
48
|
+
val marginBottom = parser.toPixelFromDIP(map.getDouble("marginBottom").toFloat())
|
|
49
|
+
val lineHeightRaw = map.getDouble("lineHeight").toFloat()
|
|
50
|
+
val lineHeight = parser.toPixelFromSP(lineHeightRaw)
|
|
51
|
+
val backgroundColor = parser.parseColor(map, "backgroundColor")
|
|
52
|
+
val borderColor = parser.parseColor(map, "borderColor")
|
|
53
|
+
val borderRadius = parser.toPixelFromDIP(map.getDouble("borderRadius").toFloat())
|
|
54
|
+
val borderWidth = parser.toPixelFromDIP(map.getDouble("borderWidth").toFloat())
|
|
55
|
+
val padding = parser.toPixelFromDIP(map.getDouble("padding").toFloat())
|
|
56
|
+
|
|
57
|
+
val syntaxMap = map.getMap("syntaxColors")
|
|
58
|
+
val syntaxColors =
|
|
59
|
+
SYNTAX_COLOR_KEYS.map { key ->
|
|
60
|
+
syntaxMap?.let { parser.parseOptionalColor(it, key) } ?: color
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return CodeBlockStyle(
|
|
64
|
+
fontSize,
|
|
65
|
+
fontFamily,
|
|
66
|
+
fontWeight,
|
|
67
|
+
color,
|
|
68
|
+
marginTop,
|
|
69
|
+
marginBottom,
|
|
70
|
+
lineHeight,
|
|
71
|
+
backgroundColor,
|
|
72
|
+
borderColor,
|
|
73
|
+
borderRadius,
|
|
74
|
+
borderWidth,
|
|
75
|
+
padding,
|
|
76
|
+
syntaxColors,
|
|
77
|
+
)
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|