react-native-enriched-markdown-scaffold 0.7.4-scaffold.8 → 1.0.2-scaffold.1
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/README.md +54 -8
- package/ReactNativeEnrichedMarkdown.podspec +82 -73
- package/android/build.gradle +191 -1
- package/android/consumer-rules.pro +1 -1
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerDelegate.java +9 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerInterface.java +3 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerDelegate.java +27 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerInterface.java +9 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerDelegate.java +9 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerInterface.java +3 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/EventEmitters.cpp +75 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/EventEmitters.h +63 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.cpp +40 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.h +839 -23
- package/android/src/main/baseline-prof.txt +1 -1
- package/android/src/main/cpp/jni-adapter.cpp +74 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdown.kt +175 -11
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownInternalText.kt +17 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownManager.kt +50 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownText.kt +48 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownTextLayoutManager.kt +10 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownTextManager.kt +42 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/MeasurementStore.kt +82 -4
- package/android/src/main/java/com/swmansion/enriched/markdown/events/CopyPressEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputManager.kt +62 -4
- package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputView.kt +911 -460
- package/android/src/main/java/com/swmansion/enriched/markdown/input/MarkdownClipboard.kt +42 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/BlockEditCoordinator.kt +196 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/ClipboardCoordinator.kt +73 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/EditContext.kt +19 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/EditPipeline.kt +248 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/EditSession.kt +52 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/InputConnectionWrapper.kt +101 -7
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/LinkCoordinator.kt +69 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/MarkdownTextWatcher.kt +3 -3
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/MentionCoordinator.kt +118 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnChangeStateEvent.kt +26 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnContextMenuItemPressEvent.kt +26 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnInputKeyPressEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnPasteEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/BlockStore.kt +254 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/BlockSyntaxSentinel.kt +69 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/FormattingStore.kt +80 -87
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputFormatter.kt +109 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputParser.kt +180 -27
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/MarkdownSerializer.kt +167 -38
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/RangeEditAdjustment.kt +149 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/layout/InputEventEmitter.kt +66 -5
- package/android/src/main/java/com/swmansion/enriched/markdown/input/layout/InputMeasurementStore.kt +7 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/BlockRange.kt +27 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/BlockType.kt +48 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/FormattingRange.kt +9 -4
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/InputFormatterStyle.kt +39 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/MathAtom.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/MathChipStyle.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/MutableRangeBounds.kt +11 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/spans/InputBulletSpan.kt +82 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/spans/InputHeadingSpan.kt +58 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/spans/InputListItemSpacingSpan.kt +37 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/spans/InputOrderedListMarkerSpan.kt +63 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/BlockHandler.kt +54 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/HeadingBlockHandler.kt +27 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/OrderedListBlockHandler.kt +38 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/UnorderedListBlockHandler.kt +37 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/toolbar/InputContextMenu.kt +8 -26
- package/android/src/main/java/com/swmansion/enriched/markdown/parser/MarkdownASTNode.kt +1 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/parser/Parser.kt +1 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/BlockStyleContext.kt +9 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/BlockquoteRenderer.kt +100 -12
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/CodeBlockRenderer.kt +16 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/HeadingRenderer.kt +4 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ListContextManager.kt +2 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ListItemRenderer.kt +74 -18
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ListRenderer.kt +43 -4
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/NodeRenderer.kt +9 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/SoftBreakRenderer.kt +16 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/SpanStyleCache.kt +30 -27
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/BaseListSpan.kt +24 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/BlockquoteSpan.kt +174 -24
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/CodeBackgroundSpan.kt +27 -3
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/CodeBlockSpan.kt +13 -16
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/CodeSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/EmphasisSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/ImageSpan.kt +182 -46
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/ListItemSpacingSpan.kt +33 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/ListMarkerAnchorSpan.kt +38 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/OrderedListSpan.kt +2 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/StrongSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/TaskListSpan.kt +3 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/UnorderedListSpan.kt +3 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/BlockquoteStyle.kt +6 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/CodeBlockStyle.kt +26 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/ImageStyle.kt +7 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/ListStyle.kt +4 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/StyleConfig.kt +13 -4
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/TableStyle.kt +6 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/CodeBlockHighlighter.kt +90 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/CodeBlockNode.kt +57 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/FeatureFlags.kt +1 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/MarkdownSegment.kt +9 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/MarkdownViewManagerUtils.kt +33 -7
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/ReadableMapExtensions.kt +3 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/RenderedSegment.kt +10 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/SegmentSignature.kt +1 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/StreamingMarkdownFilter.kt +83 -5
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/serialization/MarkdownASTSerializer.kt +4 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/input/MarkdownStyleParser.kt +74 -44
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/input/PasteTextUtils.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/ImageCache.kt +26 -3
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/ImageDownloader.kt +22 -9
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/LocalImageLoader.kt +161 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/extensions/TextPaintExtensions.kt +23 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/interaction/CheckboxTouchHelper.kt +7 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/interaction/TaskListTapUtils.kt +41 -21
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/span/BlockSpacing.kt +15 -8
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/LinkLongPressMovementMethod.kt +58 -27
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/SelectionActionMode.kt +19 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/views/CodeBlockContainerView.kt +388 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/views/ContextMenuPopup.kt +9 -6
- package/android/src/main/java/com/swmansion/enriched/markdown/views/CopyGlyph.kt +101 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/views/TableContainerView.kt +32 -5
- package/android/src/main/jni/CMakeLists.txt +53 -0
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownContainerShadowNode.cpp +10 -0
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownContainerShadowNode.h +11 -2
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextShadowNode.cpp +10 -0
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextShadowNode.h +12 -2
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextState.cpp +9 -0
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextState.h +24 -0
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/conversions.h +16 -0
- package/android/src/math/java/com/swmansion/enriched/markdown/input/math/MathChipControllerImpl.kt +21 -4
- package/android/src/math/java/com/swmansion/enriched/markdown/renderer/MathInlineRenderer.kt +7 -2
- package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathChipSpan.kt +1 -1
- package/android/src/math/java/com/swmansion/enriched/markdown/views/MathContainerView.kt +2 -0
- package/cpp/highlight/CodeBlockHighlighter.cpp +284 -0
- package/cpp/highlight/CodeBlockHighlighter.hpp +66 -0
- package/cpp/highlight/CodeBlockLanguages.cpp +138 -0
- package/cpp/highlight/CodeBlockLanguages.hpp +25 -0
- package/cpp/highlight/HighlightGrammars.hpp +28 -0
- package/cpp/highlight/code_highlight_podspec.rb +211 -0
- package/cpp/highlight/gen-registry.mjs +155 -0
- package/cpp/highlight/grammar-versions.json +159 -0
- package/cpp/highlight/vendor/generated/generated_queries.h +1665 -0
- package/cpp/highlight/vendor/generated/generated_registry.cpp +59 -0
- package/cpp/parser/MD4CParser.cpp +173 -61
- package/cpp/parser/MD4CParser.hpp +1 -0
- package/cpp/parser/MarkdownASTNode.hpp +2 -1
- package/cpp/wasm/ASTSerializer.cpp +2 -0
- package/cpp/wasm/build.sh +1 -0
- package/cpp/wasm/md4c_wasm.cpp +3 -1
- package/docs/ACCESSIBILITY.md +14 -2
- package/docs/API_REFERENCE.md +231 -8
- package/docs/BREAKING_CHANGES.md +129 -0
- package/docs/CODE_HIGHLIGHT.md +133 -0
- package/docs/COPY_OPTIONS.md +21 -3
- package/docs/ELEMENTS_STRUCTURE.md +52 -4
- package/docs/IMAGE_CACHING.md +30 -0
- package/docs/INPUT.md +146 -5
- package/docs/LATEX_MATH.md +87 -45
- package/docs/MACOS.md +1 -1
- package/docs/MARKDOWN_STREAMING.md +27 -1
- package/docs/NATIVE_ASSETS.md +127 -0
- package/docs/RTL.md +1 -1
- package/docs/STYLES.md +46 -6
- package/docs/TESTING.md +112 -0
- package/docs/TEXT.md +16 -6
- package/docs/WEB.md +3 -1
- package/ios/EnrichedMarkdown.h +7 -0
- package/ios/EnrichedMarkdown.mm +262 -67
- package/ios/EnrichedMarkdownText.h +7 -0
- package/ios/EnrichedMarkdownText.mm +97 -68
- package/ios/attachments/ENRMImageAttachment.h +9 -0
- package/ios/attachments/ENRMImageAttachment.m +143 -40
- package/ios/attachments/ENRMMathInlineAttachment.h +2 -0
- package/ios/attachments/ENRMMathInlineAttachment.m +48 -81
- package/ios/attachments/ENRMMathInlineAttachmentShared.h +2 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/EventEmitters.cpp +75 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/EventEmitters.h +63 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.cpp +40 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.h +839 -23
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/RCTComponentViewHelpers.h +131 -0
- package/ios/input/ENRMAutoLinkDetector.h +2 -1
- package/ios/input/ENRMAutoLinkDetector.mm +79 -41
- package/ios/input/ENRMBlockEditCoordinator.h +71 -0
- package/ios/input/ENRMBlockEditCoordinator.mm +195 -0
- package/ios/input/ENRMBlockRange.h +28 -0
- package/ios/input/ENRMBlockRange.mm +30 -0
- package/ios/input/ENRMBlockStore.h +56 -0
- package/ios/input/ENRMBlockStore.mm +275 -0
- package/ios/input/ENRMBlockSyntaxSentinel.h +25 -0
- package/ios/input/ENRMBlockSyntaxSentinel.mm +80 -0
- package/ios/input/ENRMClipboardCoordinator.h +45 -0
- package/ios/input/ENRMClipboardCoordinator.mm +120 -0
- package/ios/input/ENRMDetectorPipeline.h +2 -1
- package/ios/input/ENRMEditPipeline.h +76 -0
- package/ios/input/ENRMEditPipeline.mm +228 -0
- package/ios/input/ENRMEditSession.h +36 -0
- package/ios/input/ENRMEditSession.mm +63 -0
- package/ios/input/ENRMFormattingStore.h +17 -0
- package/ios/input/ENRMFormattingStore.mm +95 -105
- package/ios/input/ENRMInputBlockType.h +91 -0
- package/ios/input/ENRMInputBlockType.mm +5 -0
- package/ios/input/ENRMInputDecorationDrawer.h +18 -0
- package/ios/input/ENRMInputEventEmitter.h +56 -0
- package/ios/input/ENRMInputEventEmitter.mm +308 -0
- package/ios/input/ENRMInputFormatter.h +29 -69
- package/ios/input/ENRMInputFormatter.mm +216 -124
- package/ios/input/ENRMInputFormatterStyle.h +99 -0
- package/ios/input/ENRMInputFormatterStyle.mm +188 -0
- package/ios/input/ENRMInputLayoutManager.h +9 -0
- package/ios/input/ENRMInputLayoutManager.mm +30 -0
- package/ios/input/ENRMInputListMarkerDrawer.h +32 -0
- package/ios/input/ENRMInputListMarkerDrawer.mm +426 -0
- package/ios/input/ENRMInputParser.h +10 -6
- package/ios/input/ENRMInputParser.mm +527 -171
- package/ios/input/ENRMInputRemend.mm +2 -2
- package/ios/input/ENRMInputStyleStateBuilder.h +40 -0
- package/ios/input/ENRMInputStyleStateBuilder.mm +60 -0
- package/ios/input/ENRMInputTextView.mm +103 -8
- package/ios/input/ENRMInputTypingAttributesController.h +42 -0
- package/ios/input/ENRMInputTypingAttributesController.mm +203 -0
- package/ios/input/ENRMLinkCoordinator.h +41 -0
- package/ios/input/ENRMLinkCoordinator.mm +89 -0
- package/ios/input/ENRMMarkdownSerializer.h +29 -5
- package/ios/input/ENRMMarkdownSerializer.mm +170 -48
- package/ios/input/ENRMMathAtom.h +26 -0
- package/ios/input/ENRMMathAtom.mm +12 -0
- package/ios/input/ENRMMentionCoordinator.h +45 -0
- package/ios/input/ENRMMentionCoordinator.mm +167 -0
- package/ios/input/ENRMRangeEditAdjustment.h +38 -0
- package/ios/input/ENRMRangeEditAdjustment.mm +91 -0
- package/ios/input/ENRMRangeStoreUtils.h +39 -0
- package/ios/input/EnrichedMarkdownTextInput+ContextMenu.mm +6 -6
- package/ios/input/EnrichedMarkdownTextInput+Internal.h +11 -3
- package/ios/input/EnrichedMarkdownTextInput.h +7 -1
- package/ios/input/EnrichedMarkdownTextInput.mm +1104 -1024
- package/ios/input/InputStylePropsUtils.h +109 -68
- package/ios/input/internals/EnrichedMarkdownTextInputShadowNode.mm +2 -1
- package/ios/input/styles/ENRMBlockHandler.h +46 -0
- package/ios/input/styles/ENRMHeadingBlockHandler.h +15 -0
- package/ios/input/styles/ENRMHeadingBlockHandler.mm +38 -0
- package/ios/input/styles/ENRMOrderedListBlockHandler.h +14 -0
- package/ios/input/styles/ENRMOrderedListBlockHandler.mm +48 -0
- package/ios/input/styles/ENRMUnorderedListBlockHandler.h +15 -0
- package/ios/input/styles/ENRMUnorderedListBlockHandler.mm +51 -0
- package/ios/internals/ENRMViewFreeMeasurement.h +331 -0
- package/ios/internals/EnrichedMarkdownShadowNode.h +1 -3
- package/ios/internals/EnrichedMarkdownShadowNode.mm +16 -20
- package/ios/internals/EnrichedMarkdownTextShadowNode.h +1 -3
- package/ios/internals/EnrichedMarkdownTextShadowNode.mm +15 -20
- package/ios/internals/MeasurementCache.h +33 -7
- package/ios/internals/ShadowMeasurementUtils.h +63 -58
- package/ios/math/ENRMMathChipController.h +74 -0
- package/ios/math/ENRMMathChipController.mm +476 -0
- package/ios/math/ENRMRaTeXBridge.swift +4 -1
- package/ios/parser/ENRMMarkdownParser.h +1 -8
- package/ios/parser/ENRMMarkdownParser.mm +2 -11
- package/ios/parser/MarkdownASTNode.h +2 -1
- package/ios/parser/MarkdownParserBridge.mm +4 -0
- package/ios/renderer/AttributedRenderer.m +20 -2
- package/ios/renderer/BaseRenderer.h +17 -2
- package/ios/renderer/BaseRenderer.m +30 -0
- package/ios/renderer/BlockquoteRenderer.h +1 -1
- package/ios/renderer/BlockquoteRenderer.m +144 -35
- package/ios/renderer/CodeBlockRenderer.h +1 -1
- package/ios/renderer/CodeBlockRenderer.m +27 -23
- package/ios/renderer/CodeRenderer.h +1 -1
- package/ios/renderer/CodeRenderer.m +3 -1
- package/ios/renderer/ENRMImageRenderer.h +1 -1
- package/ios/renderer/ENRMImageRenderer.m +5 -1
- package/ios/renderer/ENRMMathInlineRenderer.h +1 -1
- package/ios/renderer/ENRMMathInlineRenderer.m +5 -1
- package/ios/renderer/ENRMSpoilerRenderer.h +1 -1
- package/ios/renderer/ENRMSpoilerRenderer.m +3 -1
- package/ios/renderer/EmphasisRenderer.h +1 -1
- package/ios/renderer/EmphasisRenderer.m +3 -1
- package/ios/renderer/HeadingRenderer.h +1 -1
- package/ios/renderer/HeadingRenderer.m +13 -6
- package/ios/renderer/HighlightRenderer.h +1 -1
- package/ios/renderer/HighlightRenderer.m +3 -1
- package/ios/renderer/LinkRenderer.h +1 -1
- package/ios/renderer/LinkRenderer.m +3 -1
- package/ios/renderer/ListItemRenderer.h +13 -1
- package/ios/renderer/ListItemRenderer.m +102 -44
- package/ios/renderer/ListRenderer.h +2 -2
- package/ios/renderer/ListRenderer.m +63 -25
- package/ios/renderer/ParagraphRenderer.h +1 -1
- package/ios/renderer/ParagraphRenderer.m +16 -8
- package/ios/renderer/RenderContext.h +10 -0
- package/ios/renderer/RenderContext.m +44 -0
- package/ios/renderer/RendererFactory.m +14 -0
- package/ios/renderer/StrikethroughRenderer.h +1 -1
- package/ios/renderer/StrikethroughRenderer.m +3 -1
- package/ios/renderer/StrongRenderer.h +1 -1
- package/ios/renderer/StrongRenderer.m +3 -1
- package/ios/renderer/SubscriptRenderer.h +1 -1
- package/ios/renderer/SubscriptRenderer.m +3 -1
- package/ios/renderer/SuperscriptRenderer.h +1 -1
- package/ios/renderer/SuperscriptRenderer.m +3 -1
- package/ios/renderer/TextRenderer.h +2 -2
- package/ios/renderer/TextRenderer.m +3 -1
- package/ios/renderer/ThematicBreakRenderer.h +1 -1
- package/ios/renderer/ThematicBreakRenderer.m +3 -1
- package/ios/renderer/UnderlineRenderer.h +1 -1
- package/ios/renderer/UnderlineRenderer.m +3 -1
- package/ios/styles/StyleConfig.h +22 -0
- package/ios/styles/StyleConfig.mm +132 -0
- package/ios/utils/BlockquoteBorder.h +6 -0
- package/ios/utils/BlockquoteBorder.m +249 -52
- package/ios/utils/CodeBlockBackground.m +16 -2
- package/ios/utils/ENRMAtomicSize.h +65 -0
- package/ios/utils/ENRMCodeBlockContent.h +37 -0
- package/ios/utils/ENRMCodeBlockContent.mm +79 -0
- package/ios/utils/ENRMCodeBlockHighlighter.h +37 -0
- package/ios/utils/ENRMCodeBlockHighlighter.mm +51 -0
- package/ios/utils/ENRMFeatureFlags.h +7 -0
- package/ios/utils/ENRMImageDownloader.h +11 -1
- package/ios/utils/ENRMImageDownloader.m +60 -16
- package/ios/utils/ENRMLocalImageLoader.h +31 -0
- package/ios/utils/ENRMLocalImageLoader.m +68 -0
- package/ios/utils/ENRMMathFallback.h +26 -0
- package/ios/utils/ENRMMathFallback.m +18 -0
- package/ios/utils/ENRMTextViewSetup.h +35 -17
- package/ios/utils/EditMenuUtils.m +22 -1
- package/ios/utils/ImageRequestHeaderUtils.h +35 -0
- package/ios/utils/LastElementUtils.h +1 -0
- package/ios/utils/ListMarkerDrawer.m +29 -42
- package/ios/utils/MarkdownASTSerializer.m +4 -0
- package/ios/utils/ParagraphStyleUtils.h +5 -0
- package/ios/utils/ParagraphStyleUtils.m +77 -17
- package/ios/utils/RenderedMarkdownSegment.h +13 -1
- package/ios/utils/RenderedMarkdownSegment.m +20 -0
- package/ios/utils/SegmentRenderer.m +17 -4
- package/ios/utils/StreamingMarkdownFilter.h +11 -1
- package/ios/utils/StreamingMarkdownFilter.m +98 -2
- package/ios/utils/StylePropsUtils.h +63 -0
- package/ios/utils/TaskListTapUtils.m +24 -0
- package/ios/views/ENRMCodeBlockContainerView.h +46 -0
- package/ios/views/ENRMCodeBlockContainerView.m +566 -0
- package/ios/views/ENRMMathContainerView.h +12 -0
- package/ios/views/ENRMMathContainerView.m +71 -1
- package/ios/views/TableContainerView.h +18 -0
- package/ios/views/TableContainerView.m +259 -159
- package/jest.d.ts +1 -0
- package/jest.js +5 -0
- package/lib/module/EnrichedMarkdownNativeComponent.ts +65 -0
- package/lib/module/EnrichedMarkdownTextInput.js +86 -5
- package/lib/module/EnrichedMarkdownTextInput.js.map +1 -1
- package/lib/module/EnrichedMarkdownTextInputNativeComponent.ts +89 -5
- package/lib/module/EnrichedMarkdownTextNativeComponent.ts +66 -0
- package/lib/module/headingDefaults.js +34 -0
- package/lib/module/headingDefaults.js.map +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/jest/index.js +191 -0
- package/lib/module/jest/index.js.map +1 -0
- package/lib/module/native/EnrichedMarkdownText.js +30 -4
- package/lib/module/native/EnrichedMarkdownText.js.map +1 -1
- package/lib/module/normalizeMarkdownStyle.js +81 -19
- package/lib/module/normalizeMarkdownStyle.js.map +1 -1
- package/lib/module/normalizeMarkdownStyle.web.js +56 -18
- package/lib/module/normalizeMarkdownStyle.web.js.map +1 -1
- package/lib/module/normalizeMarkdownTextInputStyle.js +62 -15
- package/lib/module/normalizeMarkdownTextInputStyle.js.map +1 -1
- package/lib/module/normalizeMenuItem.js +1 -1
- package/lib/module/utils/textInputState.js +26 -0
- package/lib/module/utils/textInputState.js.map +1 -0
- package/lib/module/web/EnrichedMarkdownText.js +9 -5
- package/lib/module/web/EnrichedMarkdownText.js.map +1 -1
- package/lib/module/web/parseMarkdown.js +4 -3
- package/lib/module/web/parseMarkdown.js.map +1 -1
- package/lib/module/web/renderers/InlineRenderers.js +6 -0
- package/lib/module/web/renderers/InlineRenderers.js.map +1 -1
- package/lib/module/web/renderers/ListRenderers.js +7 -2
- package/lib/module/web/renderers/ListRenderers.js.map +1 -1
- package/lib/module/web/renderers/index.js +7 -4
- package/lib/module/web/renderers/index.js.map +1 -1
- package/lib/module/web/styles.js +83 -6
- package/lib/module/web/styles.js.map +1 -1
- package/lib/module/web/utils.js +1 -0
- package/lib/module/web/utils.js.map +1 -1
- package/lib/module/web/wasm/md4c.js +0 -0
- package/lib/module/web/wasm/md4c.js.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts +62 -0
- package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts +95 -9
- package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts +80 -5
- package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts +62 -0
- package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/headingDefaults.d.ts +9 -0
- package/lib/typescript/src/headingDefaults.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/index.web.d.ts +1 -1
- package/lib/typescript/src/index.web.d.ts.map +1 -1
- package/lib/typescript/src/jest/index.d.ts +6 -0
- package/lib/typescript/src/jest/index.d.ts.map +1 -0
- package/lib/typescript/src/native/EnrichedMarkdownText.d.ts +3 -3
- package/lib/typescript/src/native/EnrichedMarkdownText.d.ts.map +1 -1
- package/lib/typescript/src/normalizeMarkdownStyle.d.ts.map +1 -1
- package/lib/typescript/src/normalizeMarkdownStyle.web.d.ts.map +1 -1
- package/lib/typescript/src/normalizeMarkdownTextInputStyle.d.ts +19 -5
- package/lib/typescript/src/normalizeMarkdownTextInputStyle.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownStyle.d.ts +72 -0
- package/lib/typescript/src/types/MarkdownStyle.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownStyleInternal.d.ts +27 -0
- package/lib/typescript/src/types/MarkdownStyleInternal.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownTextProps.d.ts +65 -1
- package/lib/typescript/src/types/MarkdownTextProps.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownTextProps.web.d.ts +19 -0
- package/lib/typescript/src/types/MarkdownTextProps.web.d.ts.map +1 -1
- package/lib/typescript/src/types/events.d.ts +19 -0
- package/lib/typescript/src/types/events.d.ts.map +1 -1
- package/lib/typescript/src/utils/textInputState.d.ts +24 -0
- package/lib/typescript/src/utils/textInputState.d.ts.map +1 -0
- package/lib/typescript/src/web/EnrichedMarkdownText.d.ts +1 -1
- package/lib/typescript/src/web/EnrichedMarkdownText.d.ts.map +1 -1
- package/lib/typescript/src/web/parseMarkdown.d.ts +1 -1
- package/lib/typescript/src/web/parseMarkdown.d.ts.map +1 -1
- package/lib/typescript/src/web/renderers/InlineRenderers.d.ts.map +1 -1
- package/lib/typescript/src/web/renderers/ListRenderers.d.ts.map +1 -1
- package/lib/typescript/src/web/renderers/index.d.ts +2 -1
- package/lib/typescript/src/web/renderers/index.d.ts.map +1 -1
- package/lib/typescript/src/web/styles.d.ts +2 -1
- package/lib/typescript/src/web/styles.d.ts.map +1 -1
- package/lib/typescript/src/web/types.d.ts +6 -2
- package/lib/typescript/src/web/types.d.ts.map +1 -1
- package/lib/typescript/src/web/utils.d.ts.map +1 -1
- package/package.json +36 -9
- package/postinstall.mjs +131 -0
- package/ratex-version.json +21 -0
- package/src/EnrichedMarkdownNativeComponent.ts +65 -0
- package/src/EnrichedMarkdownTextInput.tsx +162 -8
- package/src/EnrichedMarkdownTextInputNativeComponent.ts +89 -5
- package/src/EnrichedMarkdownTextNativeComponent.ts +66 -0
- package/src/headingDefaults.ts +21 -0
- package/src/index.tsx +9 -0
- package/src/index.web.tsx +1 -0
- package/src/jest/index.tsx +215 -0
- package/src/native/EnrichedMarkdownText.tsx +40 -2
- package/src/normalizeMarkdownStyle.ts +102 -16
- package/src/normalizeMarkdownStyle.web.ts +63 -15
- package/src/normalizeMarkdownTextInputStyle.ts +110 -35
- package/src/normalizeMenuItem.ts +1 -1
- package/src/types/MarkdownStyle.ts +74 -0
- package/src/types/MarkdownStyleInternal.ts +39 -0
- package/src/types/MarkdownTextProps.ts +65 -0
- package/src/types/MarkdownTextProps.web.ts +19 -0
- package/src/types/events.ts +21 -0
- package/src/utils/textInputState.ts +35 -0
- package/src/web/EnrichedMarkdownText.tsx +16 -2
- package/src/web/parseMarkdown.ts +6 -2
- package/src/web/renderers/InlineRenderers.tsx +5 -0
- package/src/web/renderers/ListRenderers.tsx +14 -2
- package/src/web/renderers/index.tsx +6 -2
- package/src/web/styles.ts +89 -5
- package/src/web/types.ts +6 -1
- package/src/web/utils.ts +1 -0
- package/src/web/wasm/md4c.js +0 -0
- package/vendor-grammars.mjs +511 -0
- package/vendor-ratex.mjs +173 -0
- package/app.plugin.js +0 -2
- package/plugin/build/withAndroidMath.js +0 -19
- package/plugin/build/withIosMath.js +0 -28
- package/plugin/build/withReactNativeEnrichedMarkdown.js +0 -11
- package/plugin/src/withAndroidMath.ts +0 -24
- package/plugin/src/withIosMath.ts +0 -35
- package/plugin/src/withReactNativeEnrichedMarkdown.ts +0 -17
- package/plugin/tsconfig.build.json +0 -16
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-enriched-markdown-scaffold",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Markdown Text
|
|
3
|
+
"version": "1.0.2-scaffold.1",
|
|
4
|
+
"description": "Markdown-based Rich Text solution for React Native",
|
|
5
5
|
"main": "./lib/module/index",
|
|
6
6
|
"module": "./lib/module/index",
|
|
7
7
|
"source": "./src/index.tsx",
|
|
@@ -13,8 +13,15 @@
|
|
|
13
13
|
"ios",
|
|
14
14
|
"cpp",
|
|
15
15
|
"*.podspec",
|
|
16
|
+
"jest.js",
|
|
17
|
+
"jest.d.ts",
|
|
16
18
|
"react-native.config.js",
|
|
19
|
+
"postinstall.mjs",
|
|
20
|
+
"vendor-grammars.mjs",
|
|
21
|
+
"vendor-ratex.mjs",
|
|
22
|
+
"ratex-version.json",
|
|
17
23
|
"!ios/build",
|
|
24
|
+
"!ios/vendor",
|
|
18
25
|
"!android/build",
|
|
19
26
|
"!android/gradle",
|
|
20
27
|
"!android/gradlew",
|
|
@@ -24,10 +31,11 @@
|
|
|
24
31
|
"!**/__fixtures__",
|
|
25
32
|
"!**/__mocks__",
|
|
26
33
|
"!**/.*",
|
|
27
|
-
"app.plugin.js",
|
|
28
|
-
"plugin",
|
|
29
34
|
"docs"
|
|
30
35
|
],
|
|
36
|
+
"scripts": {
|
|
37
|
+
"postinstall": "node postinstall.mjs"
|
|
38
|
+
},
|
|
31
39
|
"keywords": [
|
|
32
40
|
"react-native",
|
|
33
41
|
"expo",
|
|
@@ -45,29 +53,48 @@
|
|
|
45
53
|
"registry": "https://registry.npmjs.org/"
|
|
46
54
|
},
|
|
47
55
|
"peerDependencies": {
|
|
48
|
-
"@expo/config-plugins": ">=50.0.0",
|
|
49
56
|
"katex": ">=0.16.0",
|
|
50
57
|
"react": "*",
|
|
51
58
|
"react-native": "*"
|
|
52
59
|
},
|
|
53
60
|
"peerDependenciesMeta": {
|
|
54
|
-
"@expo/config-plugins": {
|
|
55
|
-
"optional": true
|
|
56
|
-
},
|
|
57
61
|
"katex": {
|
|
58
62
|
"optional": true
|
|
59
63
|
}
|
|
60
64
|
},
|
|
61
65
|
"devDependencies": {
|
|
62
|
-
"@
|
|
66
|
+
"@babel/core": "^7.25.0",
|
|
63
67
|
"@react-native/babel-preset": "0.85.0",
|
|
68
|
+
"@react-native/jest-preset": "0.85.0",
|
|
69
|
+
"@tree-sitter-grammars/tree-sitter-markdown": "0.3.2",
|
|
70
|
+
"@tree-sitter-grammars/tree-sitter-yaml": "0.7.1",
|
|
71
|
+
"@types/jest": "^29.5.0",
|
|
64
72
|
"@types/node": "^22.0.0",
|
|
65
73
|
"@types/react": "^19.2.0",
|
|
74
|
+
"babel-jest": "^29.7.0",
|
|
66
75
|
"clang-format": "^1.8.0",
|
|
67
76
|
"del-cli": "^7.0.0",
|
|
77
|
+
"jest": "^29.7.0",
|
|
68
78
|
"react": "19.2.3",
|
|
69
79
|
"react-native": "0.85.0",
|
|
70
80
|
"react-native-builder-bob": "^0.41.0",
|
|
81
|
+
"test-renderer": "^1.0.0",
|
|
82
|
+
"tree-sitter-bash": "0.23.3",
|
|
83
|
+
"tree-sitter-c": "0.23.5",
|
|
84
|
+
"tree-sitter-c-sharp": "0.23.1",
|
|
85
|
+
"tree-sitter-cpp": "0.23.4",
|
|
86
|
+
"tree-sitter-css": "0.23.2",
|
|
87
|
+
"tree-sitter-go": "0.23.4",
|
|
88
|
+
"tree-sitter-html": "0.23.2",
|
|
89
|
+
"tree-sitter-java": "0.23.5",
|
|
90
|
+
"tree-sitter-javascript": "0.23.1",
|
|
91
|
+
"tree-sitter-json": "0.24.8",
|
|
92
|
+
"tree-sitter-php": "0.24.2",
|
|
93
|
+
"tree-sitter-python": "0.23.6",
|
|
94
|
+
"tree-sitter-ruby": "0.23.1",
|
|
95
|
+
"tree-sitter-rust": "0.23.2",
|
|
96
|
+
"tree-sitter-swift": "0.7.0",
|
|
97
|
+
"tree-sitter-typescript": "0.23.2",
|
|
71
98
|
"typescript": "^6.0.2"
|
|
72
99
|
},
|
|
73
100
|
"react-native-builder-bob": {
|
package/postinstall.mjs
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Thin wrapper that invokes vendor-grammars.mjs and vendor-ratex.mjs in
|
|
3
|
+
// consumer mode (--from-npm) to download vendored native assets after install.
|
|
4
|
+
//
|
|
5
|
+
// In the monorepo, grammar-versions.json is not present at the expected path
|
|
6
|
+
// (it is only copied during prepack), so this script is a no-op -- the
|
|
7
|
+
// `prepare` script handles vendoring via the same scripts with monorepo paths.
|
|
8
|
+
|
|
9
|
+
import fs from 'node:fs';
|
|
10
|
+
import path from 'node:path';
|
|
11
|
+
import { fileURLToPath } from 'node:url';
|
|
12
|
+
import { spawnSync } from 'node:child_process';
|
|
13
|
+
|
|
14
|
+
const PKG_ROOT = path.dirname(fileURLToPath(import.meta.url));
|
|
15
|
+
const LOG = '[react-native-enriched-markdown-scaffold]';
|
|
16
|
+
|
|
17
|
+
const grammarManifest = path.join(PKG_ROOT, 'cpp/highlight/grammar-versions.json');
|
|
18
|
+
if (!fs.existsSync(grammarManifest)) {
|
|
19
|
+
console.log(`${LOG} grammar-versions.json not found; skipping postinstall.`);
|
|
20
|
+
console.log(`${LOG} This is expected in monorepo development (use \`yarn prepare\`).`);
|
|
21
|
+
process.exit(0);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Consumer opt-out. npm/yarn/pnpm set INIT_CWD to the project root running the
|
|
25
|
+
// install, so the consumer declares which heavy native assets to skip downloading
|
|
26
|
+
// via an `enriched-markdown` block in their own package.json:
|
|
27
|
+
//
|
|
28
|
+
// { "enriched-markdown": { "enableCodeHighlight": false, "enableMath": false } }
|
|
29
|
+
//
|
|
30
|
+
// Both features default to enabled (opt-out, not opt-in). Any resolution failure
|
|
31
|
+
// (INIT_CWD unset, unreadable/malformed JSON, absent key) falls back to downloading
|
|
32
|
+
// everything -- a skipped download is far cheaper to recover from than a silently
|
|
33
|
+
// missing feature. In a monorepo INIT_CWD is the workspace root where the install
|
|
34
|
+
// ran, so the download opt-out lives in the root package.json (one shared node_modules).
|
|
35
|
+
//
|
|
36
|
+
// The native build reads the *app* package.json directly (via the podspec's
|
|
37
|
+
// installation root / gradle's build root -- see the podspecs and android/build.gradle),
|
|
38
|
+
// which is a separate per-app decision. It reconciles that flag with asset presence on
|
|
39
|
+
// disk: an explicit opt-in with the asset missing fails loud, a default-on with it
|
|
40
|
+
// missing degrades to a clean build.
|
|
41
|
+
function resolveConsumerConfig() {
|
|
42
|
+
const initCwd = process.env.INIT_CWD;
|
|
43
|
+
if (!initCwd) {
|
|
44
|
+
return {};
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(initCwd, 'package.json'), 'utf8'));
|
|
48
|
+
const config = pkg['enriched-markdown'];
|
|
49
|
+
return config && typeof config === 'object' ? config : {};
|
|
50
|
+
} catch {
|
|
51
|
+
return {};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const consumerConfig = resolveConsumerConfig();
|
|
56
|
+
|
|
57
|
+
// This script only decides what to DOWNLOAD into node_modules. The native build
|
|
58
|
+
// (podspec + build.gradle) reads the app package.json directly to decide what to
|
|
59
|
+
// compile/link, so nothing is written here for it to consume. The `codeHighlightLanguages`
|
|
60
|
+
// subset is a build-time concern (a language subset is selected from the full downloaded
|
|
61
|
+
// grammar set), so it is intentionally not read here. ENV vars are a deprecated fallback,
|
|
62
|
+
// honored only when package.json has no explicit value.
|
|
63
|
+
let enableCodeHighlight = consumerConfig.enableCodeHighlight;
|
|
64
|
+
let enableMath = consumerConfig.enableMath;
|
|
65
|
+
|
|
66
|
+
if (enableCodeHighlight === undefined && process.env.ENRICHED_MARKDOWN_ENABLE_CODE_HIGHLIGHT) {
|
|
67
|
+
console.warn(`${LOG} DEPRECATED: ENRICHED_MARKDOWN_ENABLE_CODE_HIGHLIGHT env var will be removed in a future version. Configure via "enriched-markdown".enableCodeHighlight in your package.json instead.`);
|
|
68
|
+
enableCodeHighlight = process.env.ENRICHED_MARKDOWN_ENABLE_CODE_HIGHLIGHT !== '0';
|
|
69
|
+
}
|
|
70
|
+
if (enableMath === undefined && process.env.ENRICHED_MARKDOWN_ENABLE_MATH) {
|
|
71
|
+
console.warn(`${LOG} DEPRECATED: ENRICHED_MARKDOWN_ENABLE_MATH env var will be removed in a future version. Configure via "enriched-markdown".enableMath in your package.json instead.`);
|
|
72
|
+
enableMath = process.env.ENRICHED_MARKDOWN_ENABLE_MATH !== '0';
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
enableCodeHighlight = enableCodeHighlight !== false;
|
|
76
|
+
enableMath = enableMath !== false;
|
|
77
|
+
|
|
78
|
+
if (!enableCodeHighlight && !enableMath) {
|
|
79
|
+
console.log(`${LOG} both code highlighting and math are disabled via package.json ("enriched-markdown"); skipping postinstall.`);
|
|
80
|
+
process.exit(0);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
console.log(`${LOG} restoring vendored native assets ...`);
|
|
84
|
+
|
|
85
|
+
const vendorGrammars = path.join(PKG_ROOT, 'vendor-grammars.mjs');
|
|
86
|
+
const vendorRatex = path.join(PKG_ROOT, 'vendor-ratex.mjs');
|
|
87
|
+
const vendorDir = path.join(PKG_ROOT, 'cpp/highlight/vendor');
|
|
88
|
+
const ratexManifest = path.join(PKG_ROOT, 'ratex-version.json');
|
|
89
|
+
const iosVendor = path.join(PKG_ROOT, 'ios/vendor');
|
|
90
|
+
|
|
91
|
+
let failed = false;
|
|
92
|
+
|
|
93
|
+
// Tree-sitter runtime + grammar C sources
|
|
94
|
+
if (enableCodeHighlight) {
|
|
95
|
+
const r1 = spawnSync(process.execPath, [
|
|
96
|
+
vendorGrammars,
|
|
97
|
+
'--from-npm',
|
|
98
|
+
'--vendor-dir', vendorDir,
|
|
99
|
+
'--manifest', grammarManifest,
|
|
100
|
+
], { stdio: 'inherit' });
|
|
101
|
+
if (r1.status !== 0) {
|
|
102
|
+
console.warn(`${LOG} WARNING: vendor-grammars failed. Code highlighting may not work.`);
|
|
103
|
+
failed = true;
|
|
104
|
+
}
|
|
105
|
+
} else {
|
|
106
|
+
console.log(`${LOG} code highlighting disabled via package.json ("enriched-markdown".enableCodeHighlight = false); skipping tree-sitter grammars.`);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// RaTeX XCFramework + Swift sources + fonts (iOS math)
|
|
110
|
+
if (!enableMath) {
|
|
111
|
+
console.log(`${LOG} math disabled via package.json ("enriched-markdown".enableMath = false); skipping RaTeX.`);
|
|
112
|
+
} else if (fs.existsSync(ratexManifest) && fs.existsSync(vendorRatex)) {
|
|
113
|
+
const r2 = spawnSync(process.execPath, [
|
|
114
|
+
vendorRatex,
|
|
115
|
+
'--manifest', ratexManifest,
|
|
116
|
+
'--output', iosVendor,
|
|
117
|
+
], { stdio: 'inherit' });
|
|
118
|
+
if (r2.status !== 0) {
|
|
119
|
+
console.warn(`${LOG} WARNING: vendor-ratex failed. iOS math rendering may not work.`);
|
|
120
|
+
failed = true;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if (failed) {
|
|
125
|
+
console.warn(
|
|
126
|
+
`${LOG} Some downloads failed. Ensure network access to registry.npmjs.org and github.com, ` +
|
|
127
|
+
`then re-run: node node_modules/react-native-enriched-markdown-scaffold/postinstall.mjs`
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
console.log(`${LOG} postinstall complete.`);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "Pins the RaTeX Apple integration for vendor-ratex.mjs. Instead of React Native's spm_dependency (which builds/signs RaTeX's Swift wrapper from SPM source at build time and caused #491/#527), we vendor the prebuilt static XCFramework plus RaTeX's four core Swift sources and KaTeX fonts into packages/react-native-enriched-markdown/ios/vendor/ (gitignored, reproduced on demand, shipped in the npm tarball via prepack). Same mechanism as the tree-sitter runtime pin in grammar-versions.json. To re-pin: bump tag, download the two assets, run `node vendor/vendor-ratex.mjs --force`, and paste the sha256 it prints on mismatch. The swiftSources list mirrors erweixin/RaTeX's RaTeXCore.podspec; PlatformCompat.swift and RaTeXView.swift are intentionally omitted (the four files typecheck standalone and pull in no React Native/UI surface).",
|
|
3
|
+
"tag": "v0.1.14",
|
|
4
|
+
"xcframework": {
|
|
5
|
+
"url": "https://github.com/erweixin/RaTeX/releases/download/v0.1.14/RaTeX.xcframework.zip",
|
|
6
|
+
"sha256": "16b84a5e9b9f80ed4910c490f96dda047662e9bdd0934817ecf4464cf02581f2"
|
|
7
|
+
},
|
|
8
|
+
"source": {
|
|
9
|
+
"url": "https://github.com/erweixin/RaTeX/archive/refs/tags/v0.1.14.tar.gz",
|
|
10
|
+
"sha256": "2da907eb5dfcb464c7eef3b4c657fbdee144e3c6633e81efb1e56dcf1c76e01b",
|
|
11
|
+
"prefix": "RaTeX-0.1.14",
|
|
12
|
+
"swiftSources": [
|
|
13
|
+
"platforms/ios/Sources/Ratex/DisplayList.swift",
|
|
14
|
+
"platforms/ios/Sources/Ratex/RaTeXEngine.swift",
|
|
15
|
+
"platforms/ios/Sources/Ratex/RaTeXFontLoader.swift",
|
|
16
|
+
"platforms/ios/Sources/Ratex/RaTeXRenderer.swift"
|
|
17
|
+
],
|
|
18
|
+
"fontsDir": "platforms/ios/Sources/Ratex/Fonts",
|
|
19
|
+
"license": "LICENSE"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -29,6 +29,8 @@ interface BlockquoteStyleInternal extends BaseBlockStyleInternal {
|
|
|
29
29
|
borderWidth: CodegenTypes.Float;
|
|
30
30
|
gapWidth: CodegenTypes.Float;
|
|
31
31
|
backgroundColor: ColorValue;
|
|
32
|
+
borderRadius: CodegenTypes.Float;
|
|
33
|
+
padding: CodegenTypes.Float;
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
interface ListStyleInternal extends BaseBlockStyleInternal {
|
|
@@ -39,6 +41,24 @@ interface ListStyleInternal extends BaseBlockStyleInternal {
|
|
|
39
41
|
markerFontWeight: string;
|
|
40
42
|
gapWidth: CodegenTypes.Float;
|
|
41
43
|
marginLeft: CodegenTypes.Float;
|
|
44
|
+
itemSpacing: CodegenTypes.Float;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
interface CodeBlockSyntaxColorsInternal {
|
|
48
|
+
keyword: ColorValue;
|
|
49
|
+
operatorColor: ColorValue;
|
|
50
|
+
punctuation: ColorValue;
|
|
51
|
+
string: ColorValue;
|
|
52
|
+
number: ColorValue;
|
|
53
|
+
constant: ColorValue;
|
|
54
|
+
comment: ColorValue;
|
|
55
|
+
function: ColorValue;
|
|
56
|
+
type: ColorValue;
|
|
57
|
+
variable: ColorValue;
|
|
58
|
+
property: ColorValue;
|
|
59
|
+
tag: ColorValue;
|
|
60
|
+
attribute: ColorValue;
|
|
61
|
+
embedded: ColorValue;
|
|
42
62
|
}
|
|
43
63
|
|
|
44
64
|
interface CodeBlockStyleInternal extends BaseBlockStyleInternal {
|
|
@@ -47,6 +67,7 @@ interface CodeBlockStyleInternal extends BaseBlockStyleInternal {
|
|
|
47
67
|
borderRadius: CodegenTypes.Float;
|
|
48
68
|
borderWidth: CodegenTypes.Float;
|
|
49
69
|
padding: CodegenTypes.Float;
|
|
70
|
+
syntaxColors: CodeBlockSyntaxColorsInternal;
|
|
50
71
|
}
|
|
51
72
|
|
|
52
73
|
interface LinkStyleInternal {
|
|
@@ -94,6 +115,9 @@ interface CodeStyleInternal {
|
|
|
94
115
|
|
|
95
116
|
interface ImageStyleInternal {
|
|
96
117
|
height: CodegenTypes.Float;
|
|
118
|
+
maxHeight: CodegenTypes.Float;
|
|
119
|
+
aspectRatio: CodegenTypes.Float;
|
|
120
|
+
resizeMode: string;
|
|
97
121
|
borderRadius: CodegenTypes.Float;
|
|
98
122
|
marginTop: CodegenTypes.Float;
|
|
99
123
|
marginBottom: CodegenTypes.Float;
|
|
@@ -121,6 +145,8 @@ interface TableStyleInternal extends BaseBlockStyleInternal {
|
|
|
121
145
|
borderRadius: CodegenTypes.Float;
|
|
122
146
|
cellPaddingHorizontal: CodegenTypes.Float;
|
|
123
147
|
cellPaddingVertical: CodegenTypes.Float;
|
|
148
|
+
horizontalOverflow: CodegenTypes.Float;
|
|
149
|
+
align: string;
|
|
124
150
|
}
|
|
125
151
|
|
|
126
152
|
interface TaskListStyleInternal {
|
|
@@ -225,11 +251,21 @@ export interface TaskListItemPressEvent {
|
|
|
225
251
|
text: string;
|
|
226
252
|
}
|
|
227
253
|
|
|
254
|
+
export interface CopyPressEvent {
|
|
255
|
+
code: string;
|
|
256
|
+
language: string;
|
|
257
|
+
}
|
|
258
|
+
|
|
228
259
|
export interface ContextMenuItemConfig {
|
|
229
260
|
text: string;
|
|
230
261
|
icon?: string;
|
|
231
262
|
}
|
|
232
263
|
|
|
264
|
+
export interface ImageRequestHeaderInternal {
|
|
265
|
+
name: string;
|
|
266
|
+
value: string;
|
|
267
|
+
}
|
|
268
|
+
|
|
233
269
|
export interface SelectionMenuConfig {
|
|
234
270
|
copyAsMarkdown: boolean;
|
|
235
271
|
copyImageUrl: boolean;
|
|
@@ -311,10 +347,16 @@ export interface Md4cFlagsInternal {
|
|
|
311
347
|
* @default false
|
|
312
348
|
*/
|
|
313
349
|
highlight: boolean;
|
|
350
|
+
/**
|
|
351
|
+
* Treat soft breaks (single newlines) as hard breaks (visible line breaks).
|
|
352
|
+
* @default false
|
|
353
|
+
*/
|
|
354
|
+
hardSoftBreaks: boolean;
|
|
314
355
|
}
|
|
315
356
|
|
|
316
357
|
interface StreamingConfigInternal {
|
|
317
358
|
tableMode: string;
|
|
359
|
+
codeBlockMode: string;
|
|
318
360
|
}
|
|
319
361
|
|
|
320
362
|
export interface NativeProps extends ViewProps {
|
|
@@ -345,6 +387,21 @@ export interface NativeProps extends ViewProps {
|
|
|
345
387
|
* Receives the 0-based task index, current checked state, and the item's plain text.
|
|
346
388
|
*/
|
|
347
389
|
onTaskListItemPress?: CodegenTypes.BubblingEventHandler<TaskListItemPressEvent>;
|
|
390
|
+
/**
|
|
391
|
+
* Controls whether tapping a task list checkbox toggles its checked state.
|
|
392
|
+
*
|
|
393
|
+
* When `false`, the tap is fully inert: no visual toggle and no
|
|
394
|
+
* `onTaskListItemPress` emission. Text selection and links are unaffected.
|
|
395
|
+
*
|
|
396
|
+
* @default true
|
|
397
|
+
*/
|
|
398
|
+
enableTaskListItemToggle?: CodegenTypes.WithDefault<boolean, true>;
|
|
399
|
+
/**
|
|
400
|
+
* Callback fired when code is copied from a fenced code block's header copy
|
|
401
|
+
* button, its long-press context-menu "Copy" action, or the VoiceOver copy
|
|
402
|
+
* action. Receives the copied code and its language.
|
|
403
|
+
*/
|
|
404
|
+
onCopyPress?: CodegenTypes.BubblingEventHandler<CopyPressEvent>;
|
|
348
405
|
/**
|
|
349
406
|
* Controls whether the system link preview is shown on long press (iOS only).
|
|
350
407
|
*
|
|
@@ -425,10 +482,18 @@ export interface NativeProps extends ViewProps {
|
|
|
425
482
|
*/
|
|
426
483
|
spoilerOverlay?: CodegenTypes.WithDefault<string, 'particles'>;
|
|
427
484
|
|
|
485
|
+
/**
|
|
486
|
+
* Hides the text selection context menu while keeping text selectable.
|
|
487
|
+
*/
|
|
488
|
+
contextMenuHidden?: CodegenTypes.WithDefault<boolean, false>;
|
|
428
489
|
/**
|
|
429
490
|
* Custom items to show in the text selection context menu.
|
|
430
491
|
*/
|
|
431
492
|
contextMenuItems?: ReadonlyArray<Readonly<ContextMenuItemConfig>>;
|
|
493
|
+
/**
|
|
494
|
+
* HTTP headers attached to remote image requests, as name/value pairs.
|
|
495
|
+
*/
|
|
496
|
+
imageRequestHeaders?: ReadonlyArray<Readonly<ImageRequestHeaderInternal>>;
|
|
432
497
|
/**
|
|
433
498
|
* Built-in items to show in the text selection context menu.
|
|
434
499
|
*/
|