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