@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,92 +1,92 @@
|
|
|
1
|
-
package com.renderrichtext.styles
|
|
2
|
-
|
|
3
|
-
import android.content.Context
|
|
4
|
-
import com.facebook.react.bridge.ColorPropConverter
|
|
5
|
-
import com.facebook.react.bridge.ReadableMap
|
|
6
|
-
import com.facebook.react.uimanager.PixelUtil
|
|
7
|
-
|
|
8
|
-
class StyleParser(
|
|
9
|
-
private val context: Context,
|
|
10
|
-
private val allowFontScaling: Boolean,
|
|
11
|
-
private val maxFontSizeMultiplier: Float,
|
|
12
|
-
) {
|
|
13
|
-
fun parseOptionalColor(
|
|
14
|
-
map: ReadableMap,
|
|
15
|
-
key: String,
|
|
16
|
-
): Int? {
|
|
17
|
-
if (!map.hasKey(key) || map.isNull(key)) {
|
|
18
|
-
return null
|
|
19
|
-
}
|
|
20
|
-
val colorValue = map.getDouble(key)
|
|
21
|
-
return ColorPropConverter.getColor(colorValue, context)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
fun parseColor(
|
|
25
|
-
map: ReadableMap,
|
|
26
|
-
key: String,
|
|
27
|
-
): Int =
|
|
28
|
-
parseOptionalColor(map, key)
|
|
29
|
-
?: throw IllegalArgumentException("Color key '$key' is missing, null, or invalid")
|
|
30
|
-
|
|
31
|
-
fun parseOptionalDouble(
|
|
32
|
-
map: ReadableMap,
|
|
33
|
-
key: String,
|
|
34
|
-
default: Double = 0.0,
|
|
35
|
-
): Double =
|
|
36
|
-
if (map.hasKey(key) && !map.isNull(key)) {
|
|
37
|
-
map.getDouble(key)
|
|
38
|
-
} else {
|
|
39
|
-
default
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
fun parseOptionalInt(
|
|
43
|
-
map: ReadableMap,
|
|
44
|
-
key: String,
|
|
45
|
-
default: Int = 0,
|
|
46
|
-
): Int =
|
|
47
|
-
if (map.hasKey(key) && !map.isNull(key)) {
|
|
48
|
-
map.getInt(key)
|
|
49
|
-
} else {
|
|
50
|
-
default
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
fun parseString(
|
|
54
|
-
map: ReadableMap,
|
|
55
|
-
key: String,
|
|
56
|
-
default: String = "",
|
|
57
|
-
): String = map.getString(key) ?: default
|
|
58
|
-
|
|
59
|
-
fun parseBoolean(
|
|
60
|
-
map: ReadableMap,
|
|
61
|
-
key: String,
|
|
62
|
-
default: Boolean = false,
|
|
63
|
-
): Boolean =
|
|
64
|
-
if (map.hasKey(key) && !map.isNull(key)) {
|
|
65
|
-
map.getBoolean(key)
|
|
66
|
-
} else {
|
|
67
|
-
default
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
fun toPixelFromSP(value: Float): Float {
|
|
71
|
-
val metrics = context.resources.displayMetrics
|
|
72
|
-
val baseDensity = metrics.density
|
|
73
|
-
|
|
74
|
-
if (!allowFontScaling) {
|
|
75
|
-
return value * baseDensity
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
var fontScale = metrics.scaledDensity / baseDensity
|
|
79
|
-
if (maxFontSizeMultiplier >= 1.0f && fontScale > maxFontSizeMultiplier) {
|
|
80
|
-
fontScale = maxFontSizeMultiplier
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
return value * baseDensity * fontScale
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
fun toPixelFromDIP(value: Float): Float = PixelUtil.toPixelFromDIP(value)
|
|
87
|
-
|
|
88
|
-
fun parseTextAlign(
|
|
89
|
-
map: ReadableMap,
|
|
90
|
-
key: String,
|
|
91
|
-
): TextAlignment = TextAlignment.fromString(parseString(map, key, "left"))
|
|
92
|
-
}
|
|
1
|
+
package com.renderrichtext.styles
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import com.facebook.react.bridge.ColorPropConverter
|
|
5
|
+
import com.facebook.react.bridge.ReadableMap
|
|
6
|
+
import com.facebook.react.uimanager.PixelUtil
|
|
7
|
+
|
|
8
|
+
class StyleParser(
|
|
9
|
+
private val context: Context,
|
|
10
|
+
private val allowFontScaling: Boolean,
|
|
11
|
+
private val maxFontSizeMultiplier: Float,
|
|
12
|
+
) {
|
|
13
|
+
fun parseOptionalColor(
|
|
14
|
+
map: ReadableMap,
|
|
15
|
+
key: String,
|
|
16
|
+
): Int? {
|
|
17
|
+
if (!map.hasKey(key) || map.isNull(key)) {
|
|
18
|
+
return null
|
|
19
|
+
}
|
|
20
|
+
val colorValue = map.getDouble(key)
|
|
21
|
+
return ColorPropConverter.getColor(colorValue, context)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
fun parseColor(
|
|
25
|
+
map: ReadableMap,
|
|
26
|
+
key: String,
|
|
27
|
+
): Int =
|
|
28
|
+
parseOptionalColor(map, key)
|
|
29
|
+
?: throw IllegalArgumentException("Color key '$key' is missing, null, or invalid")
|
|
30
|
+
|
|
31
|
+
fun parseOptionalDouble(
|
|
32
|
+
map: ReadableMap,
|
|
33
|
+
key: String,
|
|
34
|
+
default: Double = 0.0,
|
|
35
|
+
): Double =
|
|
36
|
+
if (map.hasKey(key) && !map.isNull(key)) {
|
|
37
|
+
map.getDouble(key)
|
|
38
|
+
} else {
|
|
39
|
+
default
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
fun parseOptionalInt(
|
|
43
|
+
map: ReadableMap,
|
|
44
|
+
key: String,
|
|
45
|
+
default: Int = 0,
|
|
46
|
+
): Int =
|
|
47
|
+
if (map.hasKey(key) && !map.isNull(key)) {
|
|
48
|
+
map.getInt(key)
|
|
49
|
+
} else {
|
|
50
|
+
default
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
fun parseString(
|
|
54
|
+
map: ReadableMap,
|
|
55
|
+
key: String,
|
|
56
|
+
default: String = "",
|
|
57
|
+
): String = map.getString(key) ?: default
|
|
58
|
+
|
|
59
|
+
fun parseBoolean(
|
|
60
|
+
map: ReadableMap,
|
|
61
|
+
key: String,
|
|
62
|
+
default: Boolean = false,
|
|
63
|
+
): Boolean =
|
|
64
|
+
if (map.hasKey(key) && !map.isNull(key)) {
|
|
65
|
+
map.getBoolean(key)
|
|
66
|
+
} else {
|
|
67
|
+
default
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
fun toPixelFromSP(value: Float): Float {
|
|
71
|
+
val metrics = context.resources.displayMetrics
|
|
72
|
+
val baseDensity = metrics.density
|
|
73
|
+
|
|
74
|
+
if (!allowFontScaling) {
|
|
75
|
+
return value * baseDensity
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
var fontScale = metrics.scaledDensity / baseDensity
|
|
79
|
+
if (maxFontSizeMultiplier >= 1.0f && fontScale > maxFontSizeMultiplier) {
|
|
80
|
+
fontScale = maxFontSizeMultiplier
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return value * baseDensity * fontScale
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
fun toPixelFromDIP(value: Float): Float = PixelUtil.toPixelFromDIP(value)
|
|
87
|
+
|
|
88
|
+
fun parseTextAlign(
|
|
89
|
+
map: ReadableMap,
|
|
90
|
+
key: String,
|
|
91
|
+
): TextAlignment = TextAlignment.fromString(parseString(map, key, "left"))
|
|
92
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
package com.renderrichtext.styles
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.ReadableMap
|
|
4
|
-
|
|
5
|
-
data class SubscriptStyle(
|
|
6
|
-
val fontScale: Float,
|
|
7
|
-
val baselineOffsetScale: Float,
|
|
8
|
-
) {
|
|
9
|
-
companion object {
|
|
10
|
-
fun fromReadableMap(map: ReadableMap): SubscriptStyle =
|
|
11
|
-
SubscriptStyle(
|
|
12
|
-
fontScale = map.getDouble("fontScale").toFloat(),
|
|
13
|
-
baselineOffsetScale = map.getDouble("baselineOffsetScale").toFloat(),
|
|
14
|
-
)
|
|
15
|
-
}
|
|
16
|
-
}
|
|
1
|
+
package com.renderrichtext.styles
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableMap
|
|
4
|
+
|
|
5
|
+
data class SubscriptStyle(
|
|
6
|
+
val fontScale: Float,
|
|
7
|
+
val baselineOffsetScale: Float,
|
|
8
|
+
) {
|
|
9
|
+
companion object {
|
|
10
|
+
fun fromReadableMap(map: ReadableMap): SubscriptStyle =
|
|
11
|
+
SubscriptStyle(
|
|
12
|
+
fontScale = map.getDouble("fontScale").toFloat(),
|
|
13
|
+
baselineOffsetScale = map.getDouble("baselineOffsetScale").toFloat(),
|
|
14
|
+
)
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
package com.renderrichtext.styles
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.ReadableMap
|
|
4
|
-
|
|
5
|
-
data class SuperscriptStyle(
|
|
6
|
-
val fontScale: Float,
|
|
7
|
-
val baselineOffsetScale: Float,
|
|
8
|
-
) {
|
|
9
|
-
companion object {
|
|
10
|
-
fun fromReadableMap(map: ReadableMap): SuperscriptStyle =
|
|
11
|
-
SuperscriptStyle(
|
|
12
|
-
fontScale = map.getDouble("fontScale").toFloat(),
|
|
13
|
-
baselineOffsetScale = map.getDouble("baselineOffsetScale").toFloat(),
|
|
14
|
-
)
|
|
15
|
-
}
|
|
16
|
-
}
|
|
1
|
+
package com.renderrichtext.styles
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableMap
|
|
4
|
+
|
|
5
|
+
data class SuperscriptStyle(
|
|
6
|
+
val fontScale: Float,
|
|
7
|
+
val baselineOffsetScale: Float,
|
|
8
|
+
) {
|
|
9
|
+
companion object {
|
|
10
|
+
fun fromReadableMap(map: ReadableMap): SuperscriptStyle =
|
|
11
|
+
SuperscriptStyle(
|
|
12
|
+
fontScale = map.getDouble("fontScale").toFloat(),
|
|
13
|
+
baselineOffsetScale = map.getDouble("baselineOffsetScale").toFloat(),
|
|
14
|
+
)
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
package com.renderrichtext.styles
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.ReadableMap
|
|
4
|
-
|
|
5
|
-
data class TableStyle(
|
|
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 headerFontFamily: String,
|
|
14
|
-
val headerBackgroundColor: Int,
|
|
15
|
-
val headerTextColor: Int,
|
|
16
|
-
val rowEvenBackgroundColor: Int,
|
|
17
|
-
val rowOddBackgroundColor: Int,
|
|
18
|
-
val borderColor: Int,
|
|
19
|
-
val borderWidth: Float,
|
|
20
|
-
val borderRadius: Float,
|
|
21
|
-
val cellPaddingHorizontal: Float,
|
|
22
|
-
val cellPaddingVertical: Float,
|
|
23
|
-
val horizontalOverflow: Float,
|
|
24
|
-
val align: String,
|
|
25
|
-
) : BaseBlockStyle {
|
|
26
|
-
companion object {
|
|
27
|
-
fun fromReadableMap(
|
|
28
|
-
map: ReadableMap,
|
|
29
|
-
parser: StyleParser,
|
|
30
|
-
): TableStyle {
|
|
31
|
-
val fontSize = parser.toPixelFromSP(map.getDouble("fontSize").toFloat())
|
|
32
|
-
val fontFamily = parser.parseString(map, "fontFamily")
|
|
33
|
-
val fontWeight = parser.parseString(map, "fontWeight", "normal")
|
|
34
|
-
val color = parser.parseColor(map, "color")
|
|
35
|
-
val marginTop = parser.toPixelFromDIP(map.getDouble("marginTop").toFloat())
|
|
36
|
-
val marginBottom = parser.toPixelFromDIP(map.getDouble("marginBottom").toFloat())
|
|
37
|
-
val lineHeightRaw = map.getDouble("lineHeight").toFloat()
|
|
38
|
-
val lineHeight = if (lineHeightRaw > 0f) parser.toPixelFromSP(lineHeightRaw) else 0f
|
|
39
|
-
val headerFontFamily = parser.parseString(map, "headerFontFamily")
|
|
40
|
-
val headerBackgroundColor = parser.parseColor(map, "headerBackgroundColor")
|
|
41
|
-
val headerTextColor = parser.parseColor(map, "headerTextColor")
|
|
42
|
-
val rowEvenBackgroundColor = parser.parseColor(map, "rowEvenBackgroundColor")
|
|
43
|
-
val rowOddBackgroundColor = parser.parseColor(map, "rowOddBackgroundColor")
|
|
44
|
-
val borderColor = parser.parseColor(map, "borderColor")
|
|
45
|
-
val borderWidth = parser.toPixelFromDIP(map.getDouble("borderWidth").toFloat())
|
|
46
|
-
val borderRadius = parser.toPixelFromDIP(map.getDouble("borderRadius").toFloat())
|
|
47
|
-
val cellPaddingHorizontal = parser.toPixelFromDIP(map.getDouble("cellPaddingHorizontal").toFloat())
|
|
48
|
-
val cellPaddingVertical = parser.toPixelFromDIP(map.getDouble("cellPaddingVertical").toFloat())
|
|
49
|
-
val horizontalOverflow = parser.toPixelFromDIP(map.getDouble("horizontalOverflow").toFloat())
|
|
50
|
-
val align = parser.parseString(map, "align")
|
|
51
|
-
|
|
52
|
-
return TableStyle(
|
|
53
|
-
fontSize = fontSize,
|
|
54
|
-
fontFamily = fontFamily,
|
|
55
|
-
fontWeight = fontWeight,
|
|
56
|
-
color = color,
|
|
57
|
-
marginTop = marginTop,
|
|
58
|
-
marginBottom = marginBottom,
|
|
59
|
-
lineHeight = lineHeight,
|
|
60
|
-
headerFontFamily = headerFontFamily,
|
|
61
|
-
headerBackgroundColor = headerBackgroundColor,
|
|
62
|
-
headerTextColor = headerTextColor,
|
|
63
|
-
rowEvenBackgroundColor = rowEvenBackgroundColor,
|
|
64
|
-
rowOddBackgroundColor = rowOddBackgroundColor,
|
|
65
|
-
borderColor = borderColor,
|
|
66
|
-
borderWidth = borderWidth,
|
|
67
|
-
borderRadius = borderRadius,
|
|
68
|
-
cellPaddingHorizontal = cellPaddingHorizontal,
|
|
69
|
-
cellPaddingVertical = cellPaddingVertical,
|
|
70
|
-
horizontalOverflow = horizontalOverflow,
|
|
71
|
-
align = align,
|
|
72
|
-
)
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
1
|
+
package com.renderrichtext.styles
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableMap
|
|
4
|
+
|
|
5
|
+
data class TableStyle(
|
|
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 headerFontFamily: String,
|
|
14
|
+
val headerBackgroundColor: Int,
|
|
15
|
+
val headerTextColor: Int,
|
|
16
|
+
val rowEvenBackgroundColor: Int,
|
|
17
|
+
val rowOddBackgroundColor: Int,
|
|
18
|
+
val borderColor: Int,
|
|
19
|
+
val borderWidth: Float,
|
|
20
|
+
val borderRadius: Float,
|
|
21
|
+
val cellPaddingHorizontal: Float,
|
|
22
|
+
val cellPaddingVertical: Float,
|
|
23
|
+
val horizontalOverflow: Float,
|
|
24
|
+
val align: String,
|
|
25
|
+
) : BaseBlockStyle {
|
|
26
|
+
companion object {
|
|
27
|
+
fun fromReadableMap(
|
|
28
|
+
map: ReadableMap,
|
|
29
|
+
parser: StyleParser,
|
|
30
|
+
): TableStyle {
|
|
31
|
+
val fontSize = parser.toPixelFromSP(map.getDouble("fontSize").toFloat())
|
|
32
|
+
val fontFamily = parser.parseString(map, "fontFamily")
|
|
33
|
+
val fontWeight = parser.parseString(map, "fontWeight", "normal")
|
|
34
|
+
val color = parser.parseColor(map, "color")
|
|
35
|
+
val marginTop = parser.toPixelFromDIP(map.getDouble("marginTop").toFloat())
|
|
36
|
+
val marginBottom = parser.toPixelFromDIP(map.getDouble("marginBottom").toFloat())
|
|
37
|
+
val lineHeightRaw = map.getDouble("lineHeight").toFloat()
|
|
38
|
+
val lineHeight = if (lineHeightRaw > 0f) parser.toPixelFromSP(lineHeightRaw) else 0f
|
|
39
|
+
val headerFontFamily = parser.parseString(map, "headerFontFamily")
|
|
40
|
+
val headerBackgroundColor = parser.parseColor(map, "headerBackgroundColor")
|
|
41
|
+
val headerTextColor = parser.parseColor(map, "headerTextColor")
|
|
42
|
+
val rowEvenBackgroundColor = parser.parseColor(map, "rowEvenBackgroundColor")
|
|
43
|
+
val rowOddBackgroundColor = parser.parseColor(map, "rowOddBackgroundColor")
|
|
44
|
+
val borderColor = parser.parseColor(map, "borderColor")
|
|
45
|
+
val borderWidth = parser.toPixelFromDIP(map.getDouble("borderWidth").toFloat())
|
|
46
|
+
val borderRadius = parser.toPixelFromDIP(map.getDouble("borderRadius").toFloat())
|
|
47
|
+
val cellPaddingHorizontal = parser.toPixelFromDIP(map.getDouble("cellPaddingHorizontal").toFloat())
|
|
48
|
+
val cellPaddingVertical = parser.toPixelFromDIP(map.getDouble("cellPaddingVertical").toFloat())
|
|
49
|
+
val horizontalOverflow = parser.toPixelFromDIP(map.getDouble("horizontalOverflow").toFloat())
|
|
50
|
+
val align = parser.parseString(map, "align")
|
|
51
|
+
|
|
52
|
+
return TableStyle(
|
|
53
|
+
fontSize = fontSize,
|
|
54
|
+
fontFamily = fontFamily,
|
|
55
|
+
fontWeight = fontWeight,
|
|
56
|
+
color = color,
|
|
57
|
+
marginTop = marginTop,
|
|
58
|
+
marginBottom = marginBottom,
|
|
59
|
+
lineHeight = lineHeight,
|
|
60
|
+
headerFontFamily = headerFontFamily,
|
|
61
|
+
headerBackgroundColor = headerBackgroundColor,
|
|
62
|
+
headerTextColor = headerTextColor,
|
|
63
|
+
rowEvenBackgroundColor = rowEvenBackgroundColor,
|
|
64
|
+
rowOddBackgroundColor = rowOddBackgroundColor,
|
|
65
|
+
borderColor = borderColor,
|
|
66
|
+
borderWidth = borderWidth,
|
|
67
|
+
borderRadius = borderRadius,
|
|
68
|
+
cellPaddingHorizontal = cellPaddingHorizontal,
|
|
69
|
+
cellPaddingVertical = cellPaddingVertical,
|
|
70
|
+
horizontalOverflow = horizontalOverflow,
|
|
71
|
+
align = align,
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
package com.renderrichtext.styles
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.ReadableMap
|
|
4
|
-
|
|
5
|
-
data class TaskListStyle(
|
|
6
|
-
val checkedColor: Int,
|
|
7
|
-
val borderColor: Int,
|
|
8
|
-
val checkboxSize: Float,
|
|
9
|
-
val checkboxBorderRadius: Float,
|
|
10
|
-
val checkmarkColor: Int,
|
|
11
|
-
val checkedTextColor: Int,
|
|
12
|
-
val checkedStrikethrough: Boolean,
|
|
13
|
-
) {
|
|
14
|
-
companion object {
|
|
15
|
-
fun fromReadableMap(
|
|
16
|
-
map: ReadableMap,
|
|
17
|
-
parser: StyleParser,
|
|
18
|
-
): TaskListStyle =
|
|
19
|
-
TaskListStyle(
|
|
20
|
-
checkedColor = parser.parseColor(map, "checkedColor"),
|
|
21
|
-
borderColor = parser.parseColor(map, "borderColor"),
|
|
22
|
-
checkboxSize = parser.toPixelFromDIP(map.getDouble("checkboxSize").toFloat()),
|
|
23
|
-
checkboxBorderRadius = parser.toPixelFromDIP(map.getDouble("checkboxBorderRadius").toFloat()),
|
|
24
|
-
checkmarkColor = parser.parseColor(map, "checkmarkColor"),
|
|
25
|
-
checkedTextColor = parser.parseColor(map, "checkedTextColor"),
|
|
26
|
-
checkedStrikethrough = map.getBoolean("checkedStrikethrough"),
|
|
27
|
-
)
|
|
28
|
-
}
|
|
29
|
-
}
|
|
1
|
+
package com.renderrichtext.styles
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableMap
|
|
4
|
+
|
|
5
|
+
data class TaskListStyle(
|
|
6
|
+
val checkedColor: Int,
|
|
7
|
+
val borderColor: Int,
|
|
8
|
+
val checkboxSize: Float,
|
|
9
|
+
val checkboxBorderRadius: Float,
|
|
10
|
+
val checkmarkColor: Int,
|
|
11
|
+
val checkedTextColor: Int,
|
|
12
|
+
val checkedStrikethrough: Boolean,
|
|
13
|
+
) {
|
|
14
|
+
companion object {
|
|
15
|
+
fun fromReadableMap(
|
|
16
|
+
map: ReadableMap,
|
|
17
|
+
parser: StyleParser,
|
|
18
|
+
): TaskListStyle =
|
|
19
|
+
TaskListStyle(
|
|
20
|
+
checkedColor = parser.parseColor(map, "checkedColor"),
|
|
21
|
+
borderColor = parser.parseColor(map, "borderColor"),
|
|
22
|
+
checkboxSize = parser.toPixelFromDIP(map.getDouble("checkboxSize").toFloat()),
|
|
23
|
+
checkboxBorderRadius = parser.toPixelFromDIP(map.getDouble("checkboxBorderRadius").toFloat()),
|
|
24
|
+
checkmarkColor = parser.parseColor(map, "checkmarkColor"),
|
|
25
|
+
checkedTextColor = parser.parseColor(map, "checkedTextColor"),
|
|
26
|
+
checkedStrikethrough = map.getBoolean("checkedStrikethrough"),
|
|
27
|
+
)
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
package com.renderrichtext.styles
|
|
2
|
-
|
|
3
|
-
import android.text.Layout
|
|
4
|
-
|
|
5
|
-
enum class TextAlignment(
|
|
6
|
-
val layoutAlignment: Layout.Alignment,
|
|
7
|
-
val needsJustify: Boolean,
|
|
8
|
-
) {
|
|
9
|
-
LEFT(Layout.Alignment.ALIGN_NORMAL, false),
|
|
10
|
-
CENTER(Layout.Alignment.ALIGN_CENTER, false),
|
|
11
|
-
RIGHT(Layout.Alignment.ALIGN_OPPOSITE, false),
|
|
12
|
-
JUSTIFY(Layout.Alignment.ALIGN_NORMAL, true),
|
|
13
|
-
AUTO(Layout.Alignment.ALIGN_NORMAL, false),
|
|
14
|
-
;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Whether an AlignmentSpan is needed.
|
|
18
|
-
* Only CENTER and RIGHT need explicit spans; LEFT/AUTO use default, JUSTIFY is handled at TextView level.
|
|
19
|
-
*/
|
|
20
|
-
val needsAlignmentSpan: Boolean get() = this == CENTER || this == RIGHT
|
|
21
|
-
|
|
22
|
-
companion object {
|
|
23
|
-
fun fromString(value: String): TextAlignment =
|
|
24
|
-
when (value.lowercase()) {
|
|
25
|
-
"center" -> CENTER
|
|
26
|
-
"right" -> RIGHT
|
|
27
|
-
"justify" -> JUSTIFY
|
|
28
|
-
"auto" -> AUTO
|
|
29
|
-
else -> LEFT
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
1
|
+
package com.renderrichtext.styles
|
|
2
|
+
|
|
3
|
+
import android.text.Layout
|
|
4
|
+
|
|
5
|
+
enum class TextAlignment(
|
|
6
|
+
val layoutAlignment: Layout.Alignment,
|
|
7
|
+
val needsJustify: Boolean,
|
|
8
|
+
) {
|
|
9
|
+
LEFT(Layout.Alignment.ALIGN_NORMAL, false),
|
|
10
|
+
CENTER(Layout.Alignment.ALIGN_CENTER, false),
|
|
11
|
+
RIGHT(Layout.Alignment.ALIGN_OPPOSITE, false),
|
|
12
|
+
JUSTIFY(Layout.Alignment.ALIGN_NORMAL, true),
|
|
13
|
+
AUTO(Layout.Alignment.ALIGN_NORMAL, false),
|
|
14
|
+
;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Whether an AlignmentSpan is needed.
|
|
18
|
+
* Only CENTER and RIGHT need explicit spans; LEFT/AUTO use default, JUSTIFY is handled at TextView level.
|
|
19
|
+
*/
|
|
20
|
+
val needsAlignmentSpan: Boolean get() = this == CENTER || this == RIGHT
|
|
21
|
+
|
|
22
|
+
companion object {
|
|
23
|
+
fun fromString(value: String): TextAlignment =
|
|
24
|
+
when (value.lowercase()) {
|
|
25
|
+
"center" -> CENTER
|
|
26
|
+
"right" -> RIGHT
|
|
27
|
+
"justify" -> JUSTIFY
|
|
28
|
+
"auto" -> AUTO
|
|
29
|
+
else -> LEFT
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
package com.renderrichtext.styles
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.ReadableMap
|
|
4
|
-
|
|
5
|
-
data class ThematicBreakStyle(
|
|
6
|
-
val color: Int,
|
|
7
|
-
val height: Float,
|
|
8
|
-
val marginTop: Float,
|
|
9
|
-
val marginBottom: Float,
|
|
10
|
-
) {
|
|
11
|
-
companion object {
|
|
12
|
-
fun fromReadableMap(
|
|
13
|
-
map: ReadableMap,
|
|
14
|
-
parser: StyleParser,
|
|
15
|
-
): ThematicBreakStyle {
|
|
16
|
-
val color = parser.parseColor(map, "color")
|
|
17
|
-
val height = parser.toPixelFromDIP(map.getDouble("height").toFloat())
|
|
18
|
-
val marginTop = parser.toPixelFromDIP(map.getDouble("marginTop").toFloat())
|
|
19
|
-
val marginBottom = parser.toPixelFromDIP(map.getDouble("marginBottom").toFloat())
|
|
20
|
-
return ThematicBreakStyle(color, height, marginTop, marginBottom)
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
1
|
+
package com.renderrichtext.styles
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableMap
|
|
4
|
+
|
|
5
|
+
data class ThematicBreakStyle(
|
|
6
|
+
val color: Int,
|
|
7
|
+
val height: Float,
|
|
8
|
+
val marginTop: Float,
|
|
9
|
+
val marginBottom: Float,
|
|
10
|
+
) {
|
|
11
|
+
companion object {
|
|
12
|
+
fun fromReadableMap(
|
|
13
|
+
map: ReadableMap,
|
|
14
|
+
parser: StyleParser,
|
|
15
|
+
): ThematicBreakStyle {
|
|
16
|
+
val color = parser.parseColor(map, "color")
|
|
17
|
+
val height = parser.toPixelFromDIP(map.getDouble("height").toFloat())
|
|
18
|
+
val marginTop = parser.toPixelFromDIP(map.getDouble("marginTop").toFloat())
|
|
19
|
+
val marginBottom = parser.toPixelFromDIP(map.getDouble("marginBottom").toFloat())
|
|
20
|
+
return ThematicBreakStyle(color, height, marginTop, marginBottom)
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
package com.renderrichtext.styles
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.ReadableMap
|
|
4
|
-
|
|
5
|
-
data class UnderlineStyle(
|
|
6
|
-
val color: Int,
|
|
7
|
-
) {
|
|
8
|
-
companion object {
|
|
9
|
-
fun fromReadableMap(
|
|
10
|
-
map: ReadableMap,
|
|
11
|
-
parser: StyleParser,
|
|
12
|
-
): UnderlineStyle {
|
|
13
|
-
val color = parser.parseColor(map, "color")
|
|
14
|
-
return UnderlineStyle(color)
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
1
|
+
package com.renderrichtext.styles
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableMap
|
|
4
|
+
|
|
5
|
+
data class UnderlineStyle(
|
|
6
|
+
val color: Int,
|
|
7
|
+
) {
|
|
8
|
+
companion object {
|
|
9
|
+
fun fromReadableMap(
|
|
10
|
+
map: ReadableMap,
|
|
11
|
+
parser: StyleParser,
|
|
12
|
+
): UnderlineStyle {
|
|
13
|
+
val color = parser.parseColor(map, "color")
|
|
14
|
+
return UnderlineStyle(color)
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|