react-native-enriched-markdown-scaffold 0.7.4-scaffold.9 → 1.0.2-scaffold.10
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 +188 -1
- package/android/consumer-rules.pro +1 -1
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerDelegate.java +27 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerInterface.java +7 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerDelegate.java +24 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerInterface.java +8 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerDelegate.java +27 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerInterface.java +7 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/EventEmitters.cpp +223 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/EventEmitters.h +183 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.cpp +65 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.h +1086 -61
- 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 +351 -13
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownInternalText.kt +62 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownManager.kt +85 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownText.kt +160 -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 +76 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/MeasurementStore.kt +126 -10
- package/android/src/main/java/com/swmansion/enriched/markdown/events/CopyPressEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/events/CopyRequestEvent.kt +28 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/events/LinkLayoutEvent.kt +36 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/events/SelectionChangeEvent.kt +43 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputManager.kt +54 -4
- package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputView.kt +923 -462
- 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 +108 -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/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 +116 -22
- 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 +4 -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/LinkRenderer.kt +37 -7
- 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 +35 -28
- 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 +20 -82
- 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/InlineChipPainter.kt +140 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/LinkChipSpans.kt +177 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/LinkSpan.kt +1 -6
- 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/InlineMathStyle.kt +16 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/LinkStyle.kt +36 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/LinkVariantEntry.kt +7 -3
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/ListStyle.kt +4 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/MathStyle.kt +3 -0
- 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 +84 -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 +52 -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/conversion/HTMLGenerator.kt +2 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/conversion/MarkdownExtractor.kt +6 -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/HeadlessActionMode.kt +88 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/LinkLayoutCollector.kt +100 -0
- 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 +72 -16
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/SelectionChangeReporter.kt +232 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/views/BlockMenuOptions.kt +64 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/views/CodeBlockContainerView.kt +414 -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 +61 -11
- 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 +8 -2
- package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathChipSpan.kt +1 -1
- package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathInlineSpan.kt +13 -6
- package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathMeasureHelper.kt +2 -1
- package/android/src/math/java/com/swmansion/enriched/markdown/views/MathContainerView.kt +26 -8
- 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 +405 -12
- package/docs/BREAKING_CHANGES.md +129 -0
- package/docs/CODE_HIGHLIGHT.md +133 -0
- package/docs/COPY_OPTIONS.md +61 -3
- package/docs/ELEMENTS_STRUCTURE.md +52 -4
- package/docs/IMAGE_CACHING.md +30 -0
- package/docs/INPUT.md +110 -11
- package/docs/LATEX_MATH.md +87 -45
- package/docs/MACOS.md +1 -1
- package/docs/MARKDOWN_STREAMING.md +27 -1
- package/docs/MENTIONS.md +8 -1
- package/docs/NATIVE_ASSETS.md +127 -0
- package/docs/RTL.md +1 -1
- package/docs/STYLES.md +73 -6
- package/docs/TESTING.md +112 -0
- package/docs/TEXT.md +18 -6
- package/docs/WEB.md +4 -1
- package/ios/EnrichedMarkdown.h +7 -0
- package/ios/EnrichedMarkdown.mm +583 -76
- package/ios/EnrichedMarkdownText.h +7 -0
- package/ios/EnrichedMarkdownText.mm +299 -73
- package/ios/attachments/ENRMImageAttachment.h +9 -0
- package/ios/attachments/ENRMImageAttachment.m +143 -40
- package/ios/attachments/ENRMMathInlineAttachment+macOS.m +2 -1
- package/ios/attachments/ENRMMathInlineAttachment.h +5 -0
- package/ios/attachments/ENRMMathInlineAttachment.m +50 -82
- package/ios/attachments/ENRMMathInlineAttachmentShared.h +2 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/EventEmitters.cpp +223 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/EventEmitters.h +183 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.cpp +65 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.h +1086 -61
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/RCTComponentViewHelpers.h +181 -2
- 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/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 +5 -6
- package/ios/input/ENRMInputParser.mm +461 -178
- 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 +1089 -1023
- 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 +41 -9
- 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 +27 -6
- 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 +6 -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 +50 -16
- 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 +42 -0
- package/ios/styles/StyleConfig.mm +216 -0
- package/ios/utils/BlockquoteBorder.h +6 -0
- package/ios/utils/BlockquoteBorder.m +249 -52
- package/ios/utils/CodeBackground.m +3 -65
- package/ios/utils/CodeBlockBackground.m +16 -2
- package/ios/utils/ENRMAtomicSize.h +65 -0
- package/ios/utils/ENRMBlockMenu.h +66 -0
- package/ios/utils/ENRMChipDrawing.h +24 -0
- package/ios/utils/ENRMChipDrawing.m +83 -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/ENRMLinkChip.h +70 -0
- package/ios/utils/ENRMLinkChip.m +213 -0
- package/ios/utils/ENRMLinkLayout.h +50 -0
- package/ios/utils/ENRMLinkLayout.m +45 -0
- 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/ENRMSelectionChange.h +120 -0
- package/ios/utils/ENRMSelectionChange.m +282 -0
- package/ios/utils/ENRMTextViewSetup.h +35 -17
- package/ios/utils/EditMenuUtils+macOS.m +4 -1
- package/ios/utils/EditMenuUtils.h +35 -6
- package/ios/utils/EditMenuUtils.m +188 -11
- package/ios/utils/HTMLGenerator.m +2 -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/MarkdownAccessibilityElementBuilder.m +3 -1
- package/ios/utils/MarkdownExtractor.m +2 -1
- package/ios/utils/ParagraphStyleUtils.h +5 -0
- package/ios/utils/ParagraphStyleUtils.m +77 -17
- package/ios/utils/RTFExportUtils.m +2 -0
- 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 +110 -1
- package/ios/utils/TaskListTapUtils.m +24 -0
- package/ios/utils/TextViewLayoutManager.mm +3 -0
- package/ios/views/ENRMCodeBlockContainerView.h +60 -0
- package/ios/views/ENRMCodeBlockContainerView.m +569 -0
- package/ios/views/ENRMMathContainerView.h +23 -0
- package/ios/views/ENRMMathContainerView.m +87 -20
- package/ios/views/TableContainerView.h +32 -0
- package/ios/views/TableContainerView.m +291 -175
- package/jest.d.ts +1 -0
- package/jest.js +5 -0
- package/lib/module/EnrichedMarkdownNativeComponent.ts +203 -1
- package/lib/module/EnrichedMarkdownTextInput.js +84 -5
- package/lib/module/EnrichedMarkdownTextInput.js.map +1 -1
- package/lib/module/EnrichedMarkdownTextInputNativeComponent.ts +78 -5
- package/lib/module/EnrichedMarkdownTextNativeComponent.ts +204 -1
- 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 +205 -0
- package/lib/module/jest/index.js.map +1 -0
- package/lib/module/native/EnrichedMarkdownText.js +199 -15
- package/lib/module/native/EnrichedMarkdownText.js.map +1 -1
- package/lib/module/normalizeMarkdownStyle.js +98 -23
- package/lib/module/normalizeMarkdownStyle.js.map +1 -1
- package/lib/module/normalizeMarkdownStyle.web.js +73 -22
- 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 +15 -8
- 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 +102 -3
- 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 +101 -6
- package/lib/module/web/styles.js.map +1 -1
- package/lib/module/web/utils.js +14 -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 +185 -2
- package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts +94 -9
- package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts +69 -5
- package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts +185 -2
- 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 +3 -3
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/index.web.d.ts +2 -2
- 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 +5 -5
- 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 +122 -5
- package/lib/typescript/src/types/MarkdownStyle.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownStyleInternal.d.ts +39 -0
- package/lib/typescript/src/types/MarkdownStyleInternal.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownTextProps.d.ts +207 -10
- package/lib/typescript/src/types/MarkdownTextProps.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownTextProps.web.d.ts +60 -1
- package/lib/typescript/src/types/MarkdownTextProps.web.d.ts.map +1 -1
- package/lib/typescript/src/types/events.d.ts +85 -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 +10 -2
- package/lib/typescript/src/web/types.d.ts.map +1 -1
- package/lib/typescript/src/web/utils.d.ts +4 -0
- 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 +203 -1
- package/src/EnrichedMarkdownTextInput.tsx +159 -8
- package/src/EnrichedMarkdownTextInputNativeComponent.ts +78 -5
- package/src/EnrichedMarkdownTextNativeComponent.ts +204 -1
- package/src/headingDefaults.ts +21 -0
- package/src/index.tsx +15 -0
- package/src/index.web.tsx +6 -1
- package/src/jest/index.tsx +236 -0
- package/src/native/EnrichedMarkdownText.tsx +260 -11
- package/src/normalizeMarkdownStyle.ts +117 -16
- package/src/normalizeMarkdownStyle.web.ts +76 -15
- package/src/normalizeMarkdownTextInputStyle.ts +110 -35
- package/src/normalizeMenuItem.ts +1 -1
- package/src/types/MarkdownStyle.ts +125 -5
- package/src/types/MarkdownStyleInternal.ts +51 -0
- package/src/types/MarkdownTextProps.ts +215 -10
- package/src/types/MarkdownTextProps.web.ts +62 -1
- package/src/types/events.ts +90 -0
- package/src/utils/textInputState.ts +35 -0
- package/src/web/EnrichedMarkdownText.tsx +26 -5
- package/src/web/parseMarkdown.ts +6 -2
- package/src/web/renderers/InlineRenderers.tsx +116 -3
- package/src/web/renderers/ListRenderers.tsx +14 -2
- package/src/web/renderers/index.tsx +6 -2
- package/src/web/styles.ts +114 -5
- package/src/web/types.ts +10 -1
- package/src/web/utils.ts +9 -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
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { processColor } from 'react-native';
|
|
4
4
|
import { normalizeLinkVariantEntries } from "./linkVariantUtils.js";
|
|
5
5
|
import { normalizeColor } from "./styleUtils.js";
|
|
6
|
+
import { DEFAULT_HEADING_FONT_WEIGHT, HEADING_DEFAULTS } from "./headingDefaults.js";
|
|
6
7
|
const DEFAULT_LINK_COLOR = '#2563EB';
|
|
7
8
|
const DEFAULT_LINK_BG_COLOR = 'transparent';
|
|
8
9
|
const DEFAULT_SPOILER_COLOR = '#374151';
|
|
@@ -11,7 +12,7 @@ const DEFAULT_MATH_COLOR = '#111827';
|
|
|
11
12
|
const DEFAULT_MATH_BG_COLOR = 'transparent';
|
|
12
13
|
const DEFAULT_MATH_BORDER_COLOR = 'transparent';
|
|
13
14
|
const TRANSPARENT = processColor('transparent');
|
|
14
|
-
const
|
|
15
|
+
const defaultInlineMathInternal = Object.freeze({
|
|
15
16
|
color: processColor(DEFAULT_MATH_COLOR),
|
|
16
17
|
fontSize: 16,
|
|
17
18
|
backgroundColor: processColor(DEFAULT_MATH_BG_COLOR),
|
|
@@ -24,7 +25,7 @@ const defaultMathInternal = Object.freeze({
|
|
|
24
25
|
selectedBorderColor: TRANSPARENT,
|
|
25
26
|
fontWeight: 'normal'
|
|
26
27
|
});
|
|
27
|
-
const
|
|
28
|
+
const defaultBlockMathInternal = Object.freeze({
|
|
28
29
|
color: processColor(DEFAULT_MATH_COLOR),
|
|
29
30
|
fontSize: 20,
|
|
30
31
|
backgroundColor: processColor(DEFAULT_MATH_BG_COLOR),
|
|
@@ -38,8 +39,19 @@ const defaultMathBlockInternal = Object.freeze({
|
|
|
38
39
|
fontWeight: 'normal',
|
|
39
40
|
marginTop: 8,
|
|
40
41
|
marginBottom: 8,
|
|
41
|
-
|
|
42
|
+
textAlign: 'center'
|
|
42
43
|
});
|
|
44
|
+
|
|
45
|
+
// Defaults shared with the read-only renderer via headingDefaults; consumers
|
|
46
|
+
// override per level via markdownStyle h1..h6.
|
|
47
|
+
const defaultHeadingInternal = key => {
|
|
48
|
+
const d = HEADING_DEFAULTS[key];
|
|
49
|
+
return {
|
|
50
|
+
fontSize: d.fontSize,
|
|
51
|
+
fontWeight: DEFAULT_HEADING_FONT_WEIGHT,
|
|
52
|
+
color: processColor(d.color)
|
|
53
|
+
};
|
|
54
|
+
};
|
|
43
55
|
const defaultInternal = Object.freeze({
|
|
44
56
|
strong: {
|
|
45
57
|
color: undefined
|
|
@@ -57,9 +69,26 @@ const defaultInternal = Object.freeze({
|
|
|
57
69
|
color: processColor(DEFAULT_SPOILER_COLOR),
|
|
58
70
|
backgroundColor: processColor(DEFAULT_SPOILER_BG_COLOR)
|
|
59
71
|
},
|
|
60
|
-
|
|
61
|
-
|
|
72
|
+
inlineMath: defaultInlineMathInternal,
|
|
73
|
+
math: defaultBlockMathInternal,
|
|
74
|
+
h1: defaultHeadingInternal('h1'),
|
|
75
|
+
h2: defaultHeadingInternal('h2'),
|
|
76
|
+
h3: defaultHeadingInternal('h3'),
|
|
77
|
+
h4: defaultHeadingInternal('h4'),
|
|
78
|
+
h5: defaultHeadingInternal('h5'),
|
|
79
|
+
h6: defaultHeadingInternal('h6'),
|
|
80
|
+
list: {
|
|
81
|
+
itemSpacing: 0
|
|
82
|
+
}
|
|
62
83
|
});
|
|
84
|
+
const normalizeHeadingStyle = (key, style) => {
|
|
85
|
+
const fallback = defaultInternal[key];
|
|
86
|
+
return {
|
|
87
|
+
fontSize: style?.fontSize ?? fallback.fontSize,
|
|
88
|
+
fontWeight: style?.fontWeight ?? fallback.fontWeight,
|
|
89
|
+
color: normalizeColor(style?.color) ?? fallback.color
|
|
90
|
+
};
|
|
91
|
+
};
|
|
63
92
|
let cachedInput;
|
|
64
93
|
let cachedResult;
|
|
65
94
|
function normalizeInputLinkStyle(style, fallback) {
|
|
@@ -69,7 +98,7 @@ function normalizeInputLinkStyle(style, fallback) {
|
|
|
69
98
|
backgroundColor: normalizeColor(style?.backgroundColor) ?? fallback.backgroundColor
|
|
70
99
|
};
|
|
71
100
|
}
|
|
72
|
-
function
|
|
101
|
+
function normalizeInlineMathStyle(style, fallback) {
|
|
73
102
|
const color = normalizeColor(style?.color) ?? fallback.color;
|
|
74
103
|
const backgroundColor = normalizeColor(style?.backgroundColor) ?? fallback.backgroundColor;
|
|
75
104
|
const borderColor = normalizeColor(style?.borderColor) ?? fallback.borderColor;
|
|
@@ -87,7 +116,10 @@ function normalizeMathStyle(style, fallback) {
|
|
|
87
116
|
fontWeight: style?.fontWeight ?? fallback.fontWeight
|
|
88
117
|
};
|
|
89
118
|
}
|
|
90
|
-
|
|
119
|
+
|
|
120
|
+
// Block math (`markdownStyle.math`). Inherits the chip look from the inline
|
|
121
|
+
// key so a single override styles both, then applies its own block-only fields.
|
|
122
|
+
function normalizeBlockMathStyle(style, baseInline, fallback) {
|
|
91
123
|
const merged = {
|
|
92
124
|
color: baseInline.color,
|
|
93
125
|
fontSize: fallback.fontSize,
|
|
@@ -101,16 +133,22 @@ function normalizeMathBlockStyle(style, baseInline, fallback) {
|
|
|
101
133
|
selectedBorderColor: baseInline.selectedBorderColor,
|
|
102
134
|
fontWeight: baseInline.fontWeight
|
|
103
135
|
};
|
|
104
|
-
const inheritedInline =
|
|
105
|
-
let
|
|
106
|
-
if (style?.
|
|
107
|
-
|
|
136
|
+
const inheritedInline = normalizeInlineMathStyle(style, merged);
|
|
137
|
+
let textAlign = fallback.textAlign;
|
|
138
|
+
if (style?.textAlign === 'left' || style?.textAlign === 'center' || style?.textAlign === 'right') {
|
|
139
|
+
textAlign = style.textAlign;
|
|
108
140
|
}
|
|
141
|
+
// `padding` is the renderer-compatible shorthand; the per-axis fields win
|
|
142
|
+
// when both are given. Resolved here so the bridge only ever carries the
|
|
143
|
+
// two axes and no native side has to know about the shorthand.
|
|
144
|
+
const padding = style?.padding;
|
|
109
145
|
return {
|
|
110
146
|
...inheritedInline,
|
|
147
|
+
paddingHorizontal: style?.paddingHorizontal ?? padding ?? inheritedInline.paddingHorizontal,
|
|
148
|
+
paddingVertical: style?.paddingVertical ?? padding ?? inheritedInline.paddingVertical,
|
|
111
149
|
marginTop: style?.marginTop ?? fallback.marginTop,
|
|
112
150
|
marginBottom: style?.marginBottom ?? fallback.marginBottom,
|
|
113
|
-
|
|
151
|
+
textAlign
|
|
114
152
|
};
|
|
115
153
|
}
|
|
116
154
|
export const normalizeMarkdownTextInputStyle = style => {
|
|
@@ -139,10 +177,19 @@ export const normalizeMarkdownTextInputStyle = style => {
|
|
|
139
177
|
color: normalizeColor(style.spoiler?.color) ?? defaultInternal.spoiler.color,
|
|
140
178
|
backgroundColor: normalizeColor(style.spoiler?.backgroundColor) ?? defaultInternal.spoiler.backgroundColor
|
|
141
179
|
},
|
|
142
|
-
|
|
143
|
-
|
|
180
|
+
inlineMath: normalizeInlineMathStyle(style.inlineMath, defaultInternal.inlineMath),
|
|
181
|
+
math: defaultInternal.math,
|
|
182
|
+
h1: normalizeHeadingStyle('h1', style.h1),
|
|
183
|
+
h2: normalizeHeadingStyle('h2', style.h2),
|
|
184
|
+
h3: normalizeHeadingStyle('h3', style.h3),
|
|
185
|
+
h4: normalizeHeadingStyle('h4', style.h4),
|
|
186
|
+
h5: normalizeHeadingStyle('h5', style.h5),
|
|
187
|
+
h6: normalizeHeadingStyle('h6', style.h6),
|
|
188
|
+
list: {
|
|
189
|
+
itemSpacing: style.list?.itemSpacing ?? defaultInternal.list.itemSpacing
|
|
190
|
+
}
|
|
144
191
|
};
|
|
145
|
-
result.
|
|
192
|
+
result.math = normalizeBlockMathStyle(style.math, result.inlineMath, defaultInternal.math);
|
|
146
193
|
cachedInput = style;
|
|
147
194
|
cachedResult = result;
|
|
148
195
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["processColor","normalizeLinkVariantEntries","normalizeColor","DEFAULT_LINK_COLOR","DEFAULT_LINK_BG_COLOR","DEFAULT_SPOILER_COLOR","DEFAULT_SPOILER_BG_COLOR","DEFAULT_MATH_COLOR","DEFAULT_MATH_BG_COLOR","DEFAULT_MATH_BORDER_COLOR","TRANSPARENT","
|
|
1
|
+
{"version":3,"names":["processColor","normalizeLinkVariantEntries","normalizeColor","DEFAULT_HEADING_FONT_WEIGHT","HEADING_DEFAULTS","DEFAULT_LINK_COLOR","DEFAULT_LINK_BG_COLOR","DEFAULT_SPOILER_COLOR","DEFAULT_SPOILER_BG_COLOR","DEFAULT_MATH_COLOR","DEFAULT_MATH_BG_COLOR","DEFAULT_MATH_BORDER_COLOR","TRANSPARENT","defaultInlineMathInternal","Object","freeze","color","fontSize","backgroundColor","borderColor","borderWidth","borderRadius","paddingHorizontal","paddingVertical","selectedBackgroundColor","selectedBorderColor","fontWeight","defaultBlockMathInternal","marginTop","marginBottom","textAlign","defaultHeadingInternal","key","d","defaultInternal","strong","undefined","em","link","underline","linkVariants","spoiler","inlineMath","math","h1","h2","h3","h4","h5","h6","list","itemSpacing","normalizeHeadingStyle","style","fallback","cachedInput","cachedResult","normalizeInputLinkStyle","normalizeInlineMathStyle","normalizeBlockMathStyle","baseInline","merged","inheritedInline","padding","normalizeMarkdownTextInputStyle","keys","length","linkBase","result","map","pattern","override"],"sourceRoot":"../../src","sources":["normalizeMarkdownTextInputStyle.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -27,7 +27,7 @@ export const normalizeMenuItem = (raw, defaultEnabled, defaultLabel) => {
|
|
|
27
27
|
};
|
|
28
28
|
export const normalizeLegacyBooleanMenuItem = (raw, parentProp, field, defaultEnabled, defaultLabel) => {
|
|
29
29
|
if (typeof raw === 'boolean') {
|
|
30
|
-
warnOnce(`${parentProp}.${field}`, `[react-native-enriched-markdown] ${parentProp}.${field} as a boolean is ` + `deprecated; use { enabled: ${raw} }. The boolean form will be removed in 0.8.`);
|
|
30
|
+
warnOnce(`${parentProp}.${field}`, `[react-native-enriched-markdown-scaffold] ${parentProp}.${field} as a boolean is ` + `deprecated; use { enabled: ${raw} }. The boolean form will be removed in 0.8.`);
|
|
31
31
|
return {
|
|
32
32
|
enabled: raw,
|
|
33
33
|
label: defaultLabel
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Bridges EnrichedMarkdownTextInput into React Native's TextInputState focus
|
|
5
|
+
* registry so it participates in RN's keyboard-dismiss behavior (issue #577).
|
|
6
|
+
*
|
|
7
|
+
* Registering a non-TextInput host component is safe: TextInputState's
|
|
8
|
+
* blurTextInput dispatches the built-in TextInput's "blur" command at the
|
|
9
|
+
* registered instance, and Fabric command dispatch is name-based — it works
|
|
10
|
+
* as long as the component ships a command with that name, which ours does.
|
|
11
|
+
*
|
|
12
|
+
* A deep import is required because the public TextInput.State API lacks the
|
|
13
|
+
* registerInput/focusInput/blurInput bookkeeping functions.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The internal module's export shape has changed across RN versions: newer
|
|
18
|
+
* versions use `export default` (surfacing as `.default` after Metro's CJS
|
|
19
|
+
* transform) while older ones assigned `module.exports` directly. A raw
|
|
20
|
+
* require bypasses Babel's import interop, so both shapes are handled here.
|
|
21
|
+
*/
|
|
22
|
+
const TextInputStateModuleImpl =
|
|
23
|
+
// eslint-disable-next-line @react-native/no-deep-imports
|
|
24
|
+
require('react-native/Libraries/Components/TextInput/TextInputState');
|
|
25
|
+
export const TextInputState = TextInputStateModuleImpl.default ?? TextInputStateModuleImpl;
|
|
26
|
+
//# sourceMappingURL=textInputState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TextInputStateModuleImpl","require","TextInputState","default"],"sourceRoot":"../../../src","sources":["utils/textInputState.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,wBAAwB;AAC5B;AACAC,OAAO,CAAC,4DAA4D,CAAC;AAEvE,OAAO,MAAMC,cAAc,GAAIF,wBAAwB,CAACG,OAAO,IAC7DH,wBAAiD","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { normalizeMarkdownStyle } from "../normalizeMarkdownStyle.web.js";
|
|
|
5
5
|
import { zeroTrailingMargins, parseErrorFallbackStyle, buildStyles } from "./styles.js";
|
|
6
6
|
import { parseMarkdown } from "./parseMarkdown.js";
|
|
7
7
|
import { RenderNode } from "./renderers/index.js";
|
|
8
|
-
import { indexTaskItems, markInlineImages } from "./utils.js";
|
|
8
|
+
import { indexLinks, indexTaskItems, markInlineImages } from "./utils.js";
|
|
9
9
|
import { loadKaTeX } from "./katex.js";
|
|
10
10
|
import { ENRM_TEXT_CLASS, ENRM_SELECTION_BG_VAR } from "./globalStyles.js";
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -16,11 +16,13 @@ export const EnrichedMarkdownText = ({
|
|
|
16
16
|
onLinkPress,
|
|
17
17
|
onLinkLongPress,
|
|
18
18
|
onTaskListItemPress,
|
|
19
|
+
enableTaskListItemToggle = true,
|
|
19
20
|
allowTrailingMargin = false,
|
|
20
21
|
containerStyle,
|
|
21
22
|
selectable = true,
|
|
22
23
|
dir,
|
|
23
24
|
selectionColor,
|
|
25
|
+
renderLinkDecoration,
|
|
24
26
|
...rest
|
|
25
27
|
}) => {
|
|
26
28
|
const normalizedStyle = useMemo(() => normalizeMarkdownStyle(markdownStyle), [markdownStyle]);
|
|
@@ -32,7 +34,8 @@ export const EnrichedMarkdownText = ({
|
|
|
32
34
|
latexMath = true,
|
|
33
35
|
superscript = false,
|
|
34
36
|
subscript = false,
|
|
35
|
-
highlight = false
|
|
37
|
+
highlight = false,
|
|
38
|
+
hardSoftBreaks = false
|
|
36
39
|
} = md4cFlags;
|
|
37
40
|
useEffect(() => {
|
|
38
41
|
let cancelled = false;
|
|
@@ -42,10 +45,12 @@ export const EnrichedMarkdownText = ({
|
|
|
42
45
|
latexMath,
|
|
43
46
|
superscript,
|
|
44
47
|
subscript,
|
|
45
|
-
highlight
|
|
48
|
+
highlight,
|
|
49
|
+
hardSoftBreaks
|
|
46
50
|
}), katexPromise]).then(([result, katexInstance]) => {
|
|
47
51
|
if (!cancelled) {
|
|
48
52
|
indexTaskItems(result);
|
|
53
|
+
indexLinks(result);
|
|
49
54
|
markInlineImages(result);
|
|
50
55
|
setParseError(false);
|
|
51
56
|
setKatex(katexInstance);
|
|
@@ -64,15 +69,17 @@ export const EnrichedMarkdownText = ({
|
|
|
64
69
|
return () => {
|
|
65
70
|
cancelled = true;
|
|
66
71
|
};
|
|
67
|
-
}, [markdown, underline, latexMath, superscript, subscript, highlight]);
|
|
72
|
+
}, [markdown, underline, latexMath, superscript, subscript, highlight, hardSoftBreaks]);
|
|
68
73
|
const callbacks = useMemo(() => ({
|
|
69
74
|
onLinkPress,
|
|
70
75
|
onLinkLongPress,
|
|
71
|
-
onTaskListItemPress
|
|
72
|
-
|
|
76
|
+
onTaskListItemPress,
|
|
77
|
+
renderLinkDecoration
|
|
78
|
+
}), [onLinkPress, onLinkLongPress, onTaskListItemPress, renderLinkDecoration]);
|
|
73
79
|
const capabilities = useMemo(() => ({
|
|
74
|
-
katex
|
|
75
|
-
|
|
80
|
+
katex,
|
|
81
|
+
enableTaskListItemToggle
|
|
82
|
+
}), [katex, enableTaskListItemToggle]);
|
|
76
83
|
const lastChildStyle = useMemo(() => allowTrailingMargin ? normalizedStyle : zeroTrailingMargins(normalizedStyle), [normalizedStyle, allowTrailingMargin]);
|
|
77
84
|
const styles = useMemo(() => buildStyles(normalizedStyle), [normalizedStyle]);
|
|
78
85
|
const lastChildStyles = useMemo(() => buildStyles(lastChildStyle), [lastChildStyle]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useEffect","useMemo","normalizeMarkdownStyle","zeroTrailingMargins","parseErrorFallbackStyle","buildStyles","parseMarkdown","RenderNode","indexTaskItems","markInlineImages","loadKaTeX","ENRM_TEXT_CLASS","ENRM_SELECTION_BG_VAR","jsx","_jsx","EnrichedMarkdownText","markdown","markdownStyle","md4cFlags","onLinkPress","onLinkLongPress","onTaskListItemPress","allowTrailingMargin","containerStyle","selectable","dir","selectionColor","rest","normalizedStyle","ast","setAst","katex","setKatex","parseError","setParseError","underline","latexMath","superscript","subscript","highlight","cancelled","katexPromise","Promise","resolve","all","then","result","katexInstance","catch","error","__DEV__","console","callbacks","capabilities","lastChildStyle","styles","lastChildStyles","wrapperStyle","display","flexDirection","undefined","userSelect","className","style","children","lastIdx","length","map","child","index","node","type"],"sourceRoot":"../../../src","sources":["web/EnrichedMarkdownText.tsx"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,SAAS,EAAEC,OAAO,QAA4B,OAAO;AAExE,SAASC,sBAAsB,QAAQ,kCAA+B;AACtE,SACEC,mBAAmB,EACnBC,uBAAuB,EACvBC,WAAW,QACN,aAAU;AACjB,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,UAAU,QAAQ,sBAAa;AAExC,SAASC,cAAc,EAAEC,gBAAgB,QAAQ,YAAS;
|
|
1
|
+
{"version":3,"names":["useState","useEffect","useMemo","normalizeMarkdownStyle","zeroTrailingMargins","parseErrorFallbackStyle","buildStyles","parseMarkdown","RenderNode","indexLinks","indexTaskItems","markInlineImages","loadKaTeX","ENRM_TEXT_CLASS","ENRM_SELECTION_BG_VAR","jsx","_jsx","EnrichedMarkdownText","markdown","markdownStyle","md4cFlags","onLinkPress","onLinkLongPress","onTaskListItemPress","enableTaskListItemToggle","allowTrailingMargin","containerStyle","selectable","dir","selectionColor","renderLinkDecoration","rest","normalizedStyle","ast","setAst","katex","setKatex","parseError","setParseError","underline","latexMath","superscript","subscript","highlight","hardSoftBreaks","cancelled","katexPromise","Promise","resolve","all","then","result","katexInstance","catch","error","__DEV__","console","callbacks","capabilities","lastChildStyle","styles","lastChildStyles","wrapperStyle","display","flexDirection","undefined","userSelect","className","style","children","lastIdx","length","map","child","index","node","type"],"sourceRoot":"../../../src","sources":["web/EnrichedMarkdownText.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@ let parserPromise = null;
|
|
|
8
8
|
// network fetch is needed — only a one-time decode + compile on first call.
|
|
9
9
|
function initializeParser() {
|
|
10
10
|
if (!parserPromise) {
|
|
11
|
-
parserPromise = import('./wasm/md4c').then(module => module.default()).then(wasmModule => wasmModule.cwrap('parseMarkdown', 'string', ['string', 'number', 'number', 'number', 'number', 'number'])).catch(error => {
|
|
11
|
+
parserPromise = import('./wasm/md4c').then(module => module.default()).then(wasmModule => wasmModule.cwrap('parseMarkdown', 'string', ['string', 'number', 'number', 'number', 'number', 'number', 'number'])).catch(error => {
|
|
12
12
|
parserPromise = null;
|
|
13
13
|
throw error;
|
|
14
14
|
});
|
|
@@ -23,10 +23,11 @@ export async function parseMarkdown(markdown, {
|
|
|
23
23
|
latexMath = true,
|
|
24
24
|
superscript = false,
|
|
25
25
|
subscript = false,
|
|
26
|
-
highlight = false
|
|
26
|
+
highlight = false,
|
|
27
|
+
hardSoftBreaks = false
|
|
27
28
|
} = {}) {
|
|
28
29
|
const parse = await initializeParser();
|
|
29
|
-
const result = JSON.parse(parse(markdown, underline ? 1 : 0, latexMath ? 1 : 0, superscript ? 1 : 0, subscript ? 1 : 0, highlight ? 1 : 0));
|
|
30
|
+
const result = JSON.parse(parse(markdown, underline ? 1 : 0, latexMath ? 1 : 0, superscript ? 1 : 0, subscript ? 1 : 0, highlight ? 1 : 0, hardSoftBreaks ? 1 : 0));
|
|
30
31
|
if (!isASTNode(result)) {
|
|
31
32
|
throw new Error('WASM parser returned invalid AST');
|
|
32
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["parserPromise","initializeParser","then","module","default","wasmModule","cwrap","catch","error","isASTNode","value","type","parseMarkdown","markdown","underline","latexMath","superscript","subscript","highlight","parse","result","JSON","Error"],"sourceRoot":"../../../src","sources":["web/parseMarkdown.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["parserPromise","initializeParser","then","module","default","wasmModule","cwrap","catch","error","isASTNode","value","type","parseMarkdown","markdown","underline","latexMath","superscript","subscript","highlight","hardSoftBreaks","parse","result","JSON","Error"],"sourceRoot":"../../../src","sources":["web/parseMarkdown.ts"],"mappings":";;AAaA;AACA;AACA,IAAIA,aAAsC,GAAG,IAAI;;AAEjD;AACA;AACA,SAASC,gBAAgBA,CAAA,EAAqB;EAC5C,IAAI,CAACD,aAAa,EAAE;IAClBA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAClCE,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACC,OAAO,CAAC,CAAC,CAAC,CAClCF,IAAI,CAAEG,UAAU,IACfA,UAAU,CAACC,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,CAC1C,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,CACT,CACH,CAAC,CACAC,KAAK,CAAEC,KAAK,IAAK;MAChBR,aAAa,GAAG,IAAI;MACpB,MAAMQ,KAAK;IACb,CAAC,CAAqB;EAC1B;EACA,OAAOR,aAAa;AACtB;AAEA,SAASS,SAASA,CAACC,KAAc,EAAoB;EACnD,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACd,MAAM,IAAIA,KAAK,IACf,OAAQA,KAAK,CAAaC,IAAI,KAAK,QAAQ;AAE/C;AAEA,OAAO,eAAeC,aAAaA,CACjCC,QAAgB,EAChB;EACEC,SAAS,GAAG,KAAK;EACjBC,SAAS,GAAG,IAAI;EAChBC,WAAW,GAAG,KAAK;EACnBC,SAAS,GAAG,KAAK;EACjBC,SAAS,GAAG,KAAK;EACjBC,cAAc,GAAG;AACR,CAAC,GAAG,CAAC,CAAC,EACC;EAClB,MAAMC,KAAK,GAAG,MAAMnB,gBAAgB,CAAC,CAAC;EAEtC,MAAMoB,MAAe,GAAGC,IAAI,CAACF,KAAK,CAChCA,KAAK,CACHP,QAAQ,EACRC,SAAS,GAAG,CAAC,GAAG,CAAC,EACjBC,SAAS,GAAG,CAAC,GAAG,CAAC,EACjBC,WAAW,GAAG,CAAC,GAAG,CAAC,EACnBC,SAAS,GAAG,CAAC,GAAG,CAAC,EACjBC,SAAS,GAAG,CAAC,GAAG,CAAC,EACjBC,cAAc,GAAG,CAAC,GAAG,CACvB,CACF,CAAC;EAED,IAAI,CAACV,SAAS,CAACY,MAAM,CAAC,EAAE;IACtB,MAAM,IAAIE,KAAK,CAAC,kCAAkC,CAAC;EACrD;EAEA,OAAOF,MAAM;AACf","ignoreList":[]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { useLayoutEffect, useRef, useState } from 'react';
|
|
3
4
|
import { extractNodeText } from "../utils.js";
|
|
4
5
|
import { KaTeXRenderer } from "./KaTeXRenderer.js";
|
|
5
6
|
import { linkStyleForUrl } from "../styles.js";
|
|
6
|
-
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
8
|
function TextRenderer({
|
|
8
9
|
node
|
|
9
10
|
}) {
|
|
@@ -14,6 +15,11 @@ function TextRenderer({
|
|
|
14
15
|
function LineBreakRenderer(_props) {
|
|
15
16
|
return /*#__PURE__*/_jsx("br", {});
|
|
16
17
|
}
|
|
18
|
+
function SoftBreakRenderer(_props) {
|
|
19
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
20
|
+
children: " "
|
|
21
|
+
});
|
|
22
|
+
}
|
|
17
23
|
function StrongRenderer({
|
|
18
24
|
node,
|
|
19
25
|
styles,
|
|
@@ -120,14 +126,106 @@ function LinkRenderer({
|
|
|
120
126
|
});
|
|
121
127
|
}
|
|
122
128
|
};
|
|
129
|
+
const linkStyle = linkStyleForUrl(style, url);
|
|
130
|
+
const children = renderChildren(node);
|
|
131
|
+
if (callbacks.renderLinkDecoration) {
|
|
132
|
+
return /*#__PURE__*/_jsx(DecoratedLink, {
|
|
133
|
+
url: url,
|
|
134
|
+
index: node.attributes?.linkIndex ?? 0,
|
|
135
|
+
text: extractNodeText(node),
|
|
136
|
+
linkStyle: linkStyle,
|
|
137
|
+
renderLinkDecoration: callbacks.renderLinkDecoration,
|
|
138
|
+
onClick: handleClick,
|
|
139
|
+
onContextMenu: handleContextMenu,
|
|
140
|
+
children: children
|
|
141
|
+
});
|
|
142
|
+
}
|
|
123
143
|
return /*#__PURE__*/_jsx("a", {
|
|
124
144
|
href: url,
|
|
125
|
-
style:
|
|
145
|
+
style: linkStyle,
|
|
126
146
|
target: "_blank",
|
|
127
147
|
rel: "noopener noreferrer",
|
|
128
148
|
onClick: handleClick,
|
|
129
149
|
onContextMenu: handleContextMenu,
|
|
130
|
-
children:
|
|
150
|
+
children: children
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
const EMPTY_RECT = {
|
|
154
|
+
x: 0,
|
|
155
|
+
y: 0,
|
|
156
|
+
width: 0,
|
|
157
|
+
height: 0
|
|
158
|
+
};
|
|
159
|
+
const decorationLayerStyle = {
|
|
160
|
+
position: 'absolute',
|
|
161
|
+
inset: 0,
|
|
162
|
+
pointerEvents: 'none'
|
|
163
|
+
};
|
|
164
|
+
const decorationContentStyle = {
|
|
165
|
+
pointerEvents: 'auto'
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* A link with a `renderLinkDecoration` overlay. Unlike native, the overlay
|
|
170
|
+
* anchors to the link's whole inline box (not the last line fragment of a
|
|
171
|
+
* wrapping link), and `rect` is that box relative to itself.
|
|
172
|
+
*/
|
|
173
|
+
function DecoratedLink({
|
|
174
|
+
url,
|
|
175
|
+
index,
|
|
176
|
+
text,
|
|
177
|
+
linkStyle,
|
|
178
|
+
renderLinkDecoration,
|
|
179
|
+
onClick,
|
|
180
|
+
onContextMenu,
|
|
181
|
+
children
|
|
182
|
+
}) {
|
|
183
|
+
const anchorRef = useRef(null);
|
|
184
|
+
const [rect, setRect] = useState(EMPTY_RECT);
|
|
185
|
+
|
|
186
|
+
// The overlay itself is sized by CSS (inset: 0); `rect` is informational, so
|
|
187
|
+
// re-measuring when the content or chip style changes is enough.
|
|
188
|
+
useLayoutEffect(() => {
|
|
189
|
+
const anchor = anchorRef.current;
|
|
190
|
+
if (!anchor) return;
|
|
191
|
+
const {
|
|
192
|
+
width,
|
|
193
|
+
height
|
|
194
|
+
} = anchor.getBoundingClientRect();
|
|
195
|
+
setRect(prev => prev.width === width && prev.height === height ? prev : {
|
|
196
|
+
x: 0,
|
|
197
|
+
y: 0,
|
|
198
|
+
width,
|
|
199
|
+
height
|
|
200
|
+
});
|
|
201
|
+
}, [text, linkStyle]);
|
|
202
|
+
const decoration = renderLinkDecoration({
|
|
203
|
+
index,
|
|
204
|
+
url,
|
|
205
|
+
text,
|
|
206
|
+
rect,
|
|
207
|
+
rects: [rect]
|
|
208
|
+
});
|
|
209
|
+
return /*#__PURE__*/_jsxs("a", {
|
|
210
|
+
ref: anchorRef,
|
|
211
|
+
href: url,
|
|
212
|
+
style: {
|
|
213
|
+
...linkStyle,
|
|
214
|
+
position: 'relative'
|
|
215
|
+
} // eslint-disable-line react-native/no-inline-styles
|
|
216
|
+
,
|
|
217
|
+
target: "_blank",
|
|
218
|
+
rel: "noopener noreferrer",
|
|
219
|
+
onClick: onClick,
|
|
220
|
+
onContextMenu: onContextMenu,
|
|
221
|
+
children: [children, decoration != null && /*#__PURE__*/_jsx("span", {
|
|
222
|
+
"aria-hidden": true,
|
|
223
|
+
style: decorationLayerStyle,
|
|
224
|
+
children: /*#__PURE__*/_jsx("span", {
|
|
225
|
+
style: decorationContentStyle,
|
|
226
|
+
children: decoration
|
|
227
|
+
})
|
|
228
|
+
})]
|
|
131
229
|
});
|
|
132
230
|
}
|
|
133
231
|
function LatexMathInlineRenderer({
|
|
@@ -146,6 +244,7 @@ function LatexMathInlineRenderer({
|
|
|
146
244
|
export const inlineRenderers = {
|
|
147
245
|
Text: TextRenderer,
|
|
148
246
|
LineBreak: LineBreakRenderer,
|
|
247
|
+
SoftBreak: SoftBreakRenderer,
|
|
149
248
|
Strong: StrongRenderer,
|
|
150
249
|
Emphasis: EmphasisRenderer,
|
|
151
250
|
Strikethrough: StrikethroughRenderer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["extractNodeText","KaTeXRenderer","linkStyleForUrl","Fragment","_Fragment","jsx","_jsx","TextRenderer","node","children","content","LineBreakRenderer","_props","StrongRenderer","styles","renderChildren","style","strong","EmphasisRenderer","emphasis","StrikethroughRenderer","strikethrough","UnderlineRenderer","underline","SuperscriptRenderer","superscript","SubscriptRenderer","subscript","HighlightRenderer","highlight","CodeRenderer","code","LinkRenderer","callbacks","url","attributes","handleClick","event","onLinkPress","preventDefault","handleContextMenu","onLinkLongPress","href","target","rel","
|
|
1
|
+
{"version":3,"names":["useLayoutEffect","useRef","useState","extractNodeText","KaTeXRenderer","linkStyleForUrl","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","TextRenderer","node","children","content","LineBreakRenderer","_props","SoftBreakRenderer","StrongRenderer","styles","renderChildren","style","strong","EmphasisRenderer","emphasis","StrikethroughRenderer","strikethrough","UnderlineRenderer","underline","SuperscriptRenderer","superscript","SubscriptRenderer","subscript","HighlightRenderer","highlight","CodeRenderer","code","LinkRenderer","callbacks","url","attributes","handleClick","event","onLinkPress","preventDefault","handleContextMenu","onLinkLongPress","linkStyle","renderLinkDecoration","DecoratedLink","index","linkIndex","text","onClick","onContextMenu","href","target","rel","EMPTY_RECT","x","y","width","height","decorationLayerStyle","position","inset","pointerEvents","decorationContentStyle","anchorRef","rect","setRect","anchor","current","getBoundingClientRect","prev","decoration","rects","ref","LatexMathInlineRenderer","capabilities","katex","displayMode","mathInline","inlineRenderers","Text","LineBreak","SoftBreak","Strong","Emphasis","Strikethrough","Underline","Superscript","Subscript","Highlight","Code","Link","LatexMathInline"],"sourceRoot":"../../../../src","sources":["web/renderers/InlineRenderers.tsx"],"mappings":";;AAAA,SACEA,eAAe,EACfC,MAAM,EACNC,QAAQ,QAGH,OAAO;AAGd,SAASC,eAAe,QAAQ,aAAU;AAC1C,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,eAAe,QAAQ,cAAW;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG5C,SAASC,YAAYA,CAAC;EAAEC;AAAoB,CAAC,EAAE;EAC7C,oBAAOJ,IAAA,CAAAF,SAAA;IAAAO,QAAA,EAAGD,IAAI,CAACE,OAAO,IAAI;EAAE,CAAG,CAAC;AAClC;AAEA,SAASC,iBAAiBA,CAACC,MAAqB,EAAE;EAChD,oBAAOR,IAAA,SAAK,CAAC;AACf;AAEA,SAASS,iBAAiBA,CAACD,MAAqB,EAAE;EAChD,oBAAOR,IAAA,CAAAF,SAAA;IAAAO,QAAA,EAAE;EAAC,CAAE,CAAC;AACf;AAEA,SAASK,cAAcA,CAAC;EAAEN,IAAI;EAAEO,MAAM;EAAEC;AAA8B,CAAC,EAAE;EACvE,oBAAOZ,IAAA;IAAQa,KAAK,EAAEF,MAAM,CAACG,MAAO;IAAAT,QAAA,EAAEO,cAAc,CAACR,IAAI;EAAC,CAAS,CAAC;AACtE;AAEA,SAASW,gBAAgBA,CAAC;EAAEX,IAAI;EAAEO,MAAM;EAAEC;AAA8B,CAAC,EAAE;EACzE,oBAAOZ,IAAA;IAAIa,KAAK,EAAEF,MAAM,CAACK,QAAS;IAAAX,QAAA,EAAEO,cAAc,CAACR,IAAI;EAAC,CAAK,CAAC;AAChE;AAEA,SAASa,qBAAqBA,CAAC;EAC7Bb,IAAI;EACJO,MAAM;EACNC;AACa,CAAC,EAAE;EAChB,oBAAOZ,IAAA;IAAGa,KAAK,EAAEF,MAAM,CAACO,aAAc;IAAAb,QAAA,EAAEO,cAAc,CAACR,IAAI;EAAC,CAAI,CAAC;AACnE;AAEA,SAASe,iBAAiBA,CAAC;EAAEf,IAAI;EAAEO,MAAM;EAAEC;AAA8B,CAAC,EAAE;EAC1E,oBAAOZ,IAAA;IAAGa,KAAK,EAAEF,MAAM,CAACS,SAAU;IAAAf,QAAA,EAAEO,cAAc,CAACR,IAAI;EAAC,CAAI,CAAC;AAC/D;AAEA,SAASiB,mBAAmBA,CAAC;EAAEjB,IAAI;EAAEO,MAAM;EAAEC;AAA8B,CAAC,EAAE;EAC5E,oBAAOZ,IAAA;IAAKa,KAAK,EAAEF,MAAM,CAACW,WAAY;IAAAjB,QAAA,EAAEO,cAAc,CAACR,IAAI;EAAC,CAAM,CAAC;AACrE;AAEA,SAASmB,iBAAiBA,CAAC;EAAEnB,IAAI;EAAEO,MAAM;EAAEC;AAA8B,CAAC,EAAE;EAC1E,oBAAOZ,IAAA;IAAKa,KAAK,EAAEF,MAAM,CAACa,SAAU;IAAAnB,QAAA,EAAEO,cAAc,CAACR,IAAI;EAAC,CAAM,CAAC;AACnE;AAEA,SAASqB,iBAAiBA,CAAC;EAAErB,IAAI;EAAEO,MAAM;EAAEC;AAA8B,CAAC,EAAE;EAC1E,oBAAOZ,IAAA;IAAMa,KAAK,EAAEF,MAAM,CAACe,SAAU;IAAArB,QAAA,EAAEO,cAAc,CAACR,IAAI;EAAC,CAAO,CAAC;AACrE;AAEA,SAASuB,YAAYA,CAAC;EAAEvB,IAAI;EAAEO,MAAM;EAAEC;AAA8B,CAAC,EAAE;EACrE,oBACEZ,IAAA;IAAMa,KAAK,EAAEF,MAAM,CAACiB,IAAK;IAAAvB,QAAA,EAAED,IAAI,CAACE,OAAO,IAAIM,cAAc,CAACR,IAAI;EAAC,CAAO,CAAC;AAE3E;AAEA,SAASyB,YAAYA,CAAC;EACpBzB,IAAI;EACJS,KAAK;EACLiB,SAAS;EACTlB;AACa,CAAC,EAAE;EAChB,MAAMmB,GAAG,GAAG3B,IAAI,CAAC4B,UAAU,EAAED,GAAG;EAEhC,IAAI,CAACA,GAAG,EAAE,oBAAO/B,IAAA,CAAAF,SAAA;IAAAO,QAAA,EAAGO,cAAc,CAACR,IAAI;EAAC,CAAG,CAAC;EAE5C,MAAM6B,WAAW,GAAIC,KAAiB,IAAK;IACzC,IAAIJ,SAAS,CAACK,WAAW,EAAE;MACzBD,KAAK,CAACE,cAAc,CAAC,CAAC;MACtBN,SAAS,CAACK,WAAW,CAAC;QAAEJ;MAAI,CAAC,CAAC;IAChC;EACF,CAAC;EAED,MAAMM,iBAAiB,GAAIH,KAAiB,IAAK;IAC/C,IAAIJ,SAAS,CAACQ,eAAe,EAAE;MAC7BJ,KAAK,CAACE,cAAc,CAAC,CAAC;MACtBN,SAAS,CAACQ,eAAe,CAAC;QAAEP;MAAI,CAAC,CAAC;IACpC;EACF,CAAC;EAED,MAAMQ,SAAS,GAAG3C,eAAe,CAACiB,KAAK,EAAEkB,GAAG,CAAC;EAC7C,MAAM1B,QAAQ,GAAGO,cAAc,CAACR,IAAI,CAAC;EAErC,IAAI0B,SAAS,CAACU,oBAAoB,EAAE;IAClC,oBACExC,IAAA,CAACyC,aAAa;MACZV,GAAG,EAAEA,GAAI;MACTW,KAAK,EAAEtC,IAAI,CAAC4B,UAAU,EAAEW,SAAS,IAAI,CAAE;MACvCC,IAAI,EAAElD,eAAe,CAACU,IAAI,CAAE;MAC5BmC,SAAS,EAAEA,SAAU;MACrBC,oBAAoB,EAAEV,SAAS,CAACU,oBAAqB;MACrDK,OAAO,EAAEZ,WAAY;MACrBa,aAAa,EAAET,iBAAkB;MAAAhC,QAAA,EAEhCA;IAAQ,CACI,CAAC;EAEpB;EAEA,oBACEL,IAAA;IACE+C,IAAI,EAAEhB,GAAI;IACVlB,KAAK,EAAE0B,SAAU;IACjBS,MAAM,EAAC,QAAQ;IACfC,GAAG,EAAC,qBAAqB;IACzBJ,OAAO,EAAEZ,WAAY;IACrBa,aAAa,EAAET,iBAAkB;IAAAhC,QAAA,EAEhCA;EAAQ,CACR,CAAC;AAER;AAEA,MAAM6C,UAAoB,GAAG;EAAEC,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;EAAEC,KAAK,EAAE,CAAC;EAAEC,MAAM,EAAE;AAAE,CAAC;AAEhE,MAAMC,oBAAmC,GAAG;EAC1CC,QAAQ,EAAE,UAAU;EACpBC,KAAK,EAAE,CAAC;EACRC,aAAa,EAAE;AACjB,CAAC;AAED,MAAMC,sBAAqC,GAAG;EAAED,aAAa,EAAE;AAAO,CAAC;;AAEvE;AACA;AACA;AACA;AACA;AACA,SAASjB,aAAaA,CAAC;EACrBV,GAAG;EACHW,KAAK;EACLE,IAAI;EACJL,SAAS;EACTC,oBAAoB;EACpBK,OAAO;EACPC,aAAa;EACbzC;AAYF,CAAC,EAAE;EACD,MAAMuD,SAAS,GAAGpE,MAAM,CAAoB,IAAI,CAAC;EACjD,MAAM,CAACqE,IAAI,EAAEC,OAAO,CAAC,GAAGrE,QAAQ,CAAWyD,UAAU,CAAC;;EAEtD;EACA;EACA3D,eAAe,CAAC,MAAM;IACpB,MAAMwE,MAAM,GAAGH,SAAS,CAACI,OAAO;IAChC,IAAI,CAACD,MAAM,EAAE;IACb,MAAM;MAAEV,KAAK;MAAEC;IAAO,CAAC,GAAGS,MAAM,CAACE,qBAAqB,CAAC,CAAC;IACxDH,OAAO,CAAEI,IAAI,IACXA,IAAI,CAACb,KAAK,KAAKA,KAAK,IAAIa,IAAI,CAACZ,MAAM,KAAKA,MAAM,GAC1CY,IAAI,GACJ;MAAEf,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE,CAAC;MAAEC,KAAK;MAAEC;IAAO,CAClC,CAAC;EACH,CAAC,EAAE,CAACV,IAAI,EAAEL,SAAS,CAAC,CAAC;EAErB,MAAM4B,UAAU,GAAG3B,oBAAoB,CAAC;IACtCE,KAAK;IACLX,GAAG;IACHa,IAAI;IACJiB,IAAI;IACJO,KAAK,EAAE,CAACP,IAAI;EACd,CAAC,CAAC;EAEF,oBACE3D,KAAA;IACEmE,GAAG,EAAET,SAAU;IACfb,IAAI,EAAEhB,GAAI;IACVlB,KAAK,EAAE;MAAE,GAAG0B,SAAS;MAAEiB,QAAQ,EAAE;IAAW,CAAE,CAAC;IAAA;IAC/CR,MAAM,EAAC,QAAQ;IACfC,GAAG,EAAC,qBAAqB;IACzBJ,OAAO,EAAEA,OAAQ;IACjBC,aAAa,EAAEA,aAAc;IAAAzC,QAAA,GAE5BA,QAAQ,EACR8D,UAAU,IAAI,IAAI,iBACjBnE,IAAA;MAAM,mBAAW;MAACa,KAAK,EAAE0C,oBAAqB;MAAAlD,QAAA,eAE5CL,IAAA;QAAMa,KAAK,EAAE8C,sBAAuB;QAAAtD,QAAA,EAAE8D;MAAU,CAAO;IAAC,CACpD,CACP;EAAA,CACA,CAAC;AAER;AAEA,SAASG,uBAAuBA,CAAC;EAC/BlE,IAAI;EACJO,MAAM;EACN4D;AACa,CAAC,EAAE;EAChB,MAAMjE,OAAO,GAAGZ,eAAe,CAACU,IAAI,CAAC;EAErC,oBACEJ,IAAA,CAACL,aAAa;IACZW,OAAO,EAAEA,OAAQ;IACjBkE,KAAK,EAAED,YAAY,CAACC,KAAM;IAC1BC,WAAW,EAAE,KAAM;IACnB5D,KAAK,EAAEF,MAAM,CAAC+D;EAAW,CAC1B,CAAC;AAEN;AAEA,OAAO,MAAMC,eAA4B,GAAG;EAC1CC,IAAI,EAAEzE,YAAY;EAClB0E,SAAS,EAAEtE,iBAAiB;EAC5BuE,SAAS,EAAErE,iBAAiB;EAC5BsE,MAAM,EAAErE,cAAc;EACtBsE,QAAQ,EAAEjE,gBAAgB;EAC1BkE,aAAa,EAAEhE,qBAAqB;EACpCiE,SAAS,EAAE/D,iBAAiB;EAC5BgE,WAAW,EAAE9D,mBAAmB;EAChC+D,SAAS,EAAE7D,iBAAiB;EAC5B8D,SAAS,EAAE5D,iBAAiB;EAC5B6D,IAAI,EAAE3D,YAAY;EAClB4D,IAAI,EAAE1D,YAAY;EAClB2D,eAAe,EAAElB;AACnB,CAAC","ignoreList":[]}
|
|
@@ -39,7 +39,9 @@ function ListItemRenderer({
|
|
|
39
39
|
node,
|
|
40
40
|
style,
|
|
41
41
|
styles,
|
|
42
|
+
index,
|
|
42
43
|
callbacks,
|
|
44
|
+
capabilities,
|
|
43
45
|
renderChildren
|
|
44
46
|
}) {
|
|
45
47
|
const isTask = node.attributes?.isTask === 'true';
|
|
@@ -50,6 +52,7 @@ function ListItemRenderer({
|
|
|
50
52
|
setIsChecked(initialChecked);
|
|
51
53
|
}, [initialChecked]);
|
|
52
54
|
const handleChange = () => {
|
|
55
|
+
if (!capabilities.enableTaskListItemToggle) return;
|
|
53
56
|
const taskIndex = node.attributes?.taskIndex;
|
|
54
57
|
if (taskIndex === undefined) return;
|
|
55
58
|
const newChecked = !isChecked;
|
|
@@ -71,14 +74,16 @@ function ListItemRenderer({
|
|
|
71
74
|
children: node.children?.filter(isNestedList)
|
|
72
75
|
} : null;
|
|
73
76
|
return /*#__PURE__*/_jsxs("li", {
|
|
74
|
-
style: listItemStyle(isTask),
|
|
77
|
+
style: listItemStyle(style, isTask, (index ?? 0) === 0),
|
|
75
78
|
children: [/*#__PURE__*/_jsxs("span", {
|
|
76
79
|
style: checkedStyle,
|
|
77
80
|
children: [isTask && /*#__PURE__*/_jsx("input", {
|
|
78
81
|
type: "checkbox",
|
|
79
82
|
checked: isChecked,
|
|
80
83
|
onChange: handleChange,
|
|
81
|
-
|
|
84
|
+
readOnly: !capabilities.enableTaskListItemToggle,
|
|
85
|
+
"aria-disabled": capabilities.enableTaskListItemToggle ? undefined : true,
|
|
86
|
+
style: capabilities.enableTaskListItemToggle ? styles.taskCheckbox : styles.taskCheckboxDisabled,
|
|
82
87
|
"aria-label": `Task: ${taskText}`
|
|
83
88
|
}), renderChildren(inlineNode)]
|
|
84
89
|
}), nestedNode && renderChildren(nestedNode)]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useEffect","extractNodeText","listItemStyle","checkedTaskTextStyle","jsx","_jsx","jsxs","_jsxs","NESTED_LIST_TYPES","Set","ListRenderer","node","styles","parentType","renderChildren","listTag","ListTag","isNested","hasTaskChild","children","some","child","attributes","isTask","resolvedStyle","listNested","listTask","list","style","UnorderedListRenderer","props","OrderedListRenderer","isNestedList","has","type","ListItemRenderer","callbacks","initialChecked","taskChecked","taskText","isChecked","setIsChecked","handleChange","taskIndex","undefined","newChecked","onTaskListItemPress","
|
|
1
|
+
{"version":3,"names":["useState","useEffect","extractNodeText","listItemStyle","checkedTaskTextStyle","jsx","_jsx","jsxs","_jsxs","NESTED_LIST_TYPES","Set","ListRenderer","node","styles","parentType","renderChildren","listTag","ListTag","isNested","hasTaskChild","children","some","child","attributes","isTask","resolvedStyle","listNested","listTask","list","style","UnorderedListRenderer","props","OrderedListRenderer","isNestedList","has","type","ListItemRenderer","index","callbacks","capabilities","initialChecked","taskChecked","taskText","isChecked","setIsChecked","handleChange","enableTaskListItemToggle","taskIndex","undefined","newChecked","onTaskListItemPress","checked","text","hasNestedList","checkedStyle","inlineNode","filter","nestedNode","onChange","readOnly","taskCheckbox","taskCheckboxDisabled","listRenderers","UnorderedList","OrderedList","ListItem"],"sourceRoot":"../../../../src","sources":["web/renderers/ListRenderers.tsx"],"mappings":"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","ignoreList":[]}
|