react-native-marcus 0.1.0 → 0.2.0
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 +220 -63
- package/RNMarcus.podspec +6 -0
- package/android/src/main/java/app/getbullet/marcus/MarcusPackage.kt +2 -1
- package/android/src/main/java/app/getbullet/marcus/MarcusTextDecoratorView.kt +168 -0
- package/android/src/main/java/app/getbullet/marcus/MarcusTextDecoratorViewManager.kt +38 -0
- package/android/src/main/java/app/getbullet/marcus/MarcusTextDecoratorViewManagerSpec.kt +19 -0
- package/android/src/main/java/app/getbullet/marcus/MarcusTextInputDecoratorView.kt +23 -1
- package/android/src/main/java/app/getbullet/marcus/MarkdownBackgroundPainter.kt +147 -0
- package/android/src/main/java/app/getbullet/marcus/MarkdownBackgroundPass.kt +19 -0
- package/android/src/main/java/app/getbullet/marcus/MarkdownCopy.kt +87 -0
- package/android/src/main/java/app/getbullet/marcus/MarkdownFormatter.kt +652 -113
- package/android/src/main/java/app/getbullet/marcus/MarkdownRanges.kt +47 -0
- package/android/src/main/java/app/getbullet/marcus/MarkdownStyle.kt +140 -61
- package/android/src/main/java/app/getbullet/marcus/MarkdownUtils.kt +37 -7
- package/android/src/main/java/app/getbullet/marcus/spans/MarkdownAbsoluteLineHeightSpan.kt +48 -0
- package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBackgroundSpan.kt +102 -48
- package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBlockIndentSpan.kt +22 -4
- package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBulletSpan.kt +78 -0
- package/android/src/main/java/app/getbullet/marcus/spans/MarkdownCodeBlockSpan.kt +177 -0
- package/android/src/main/java/app/getbullet/marcus/spans/MarkdownFontStyleSpan.kt +32 -0
- package/android/src/main/java/app/getbullet/marcus/spans/MarkdownFontWeightSpan.kt +34 -0
- package/android/src/main/java/app/getbullet/marcus/spans/MarkdownGapSpan.kt +24 -11
- package/android/src/main/java/app/getbullet/marcus/spans/MarkdownLetterSpacingSpan.kt +32 -0
- package/android/src/main/java/app/getbullet/marcus/spans/MarkdownTextShadowSpan.kt +32 -0
- package/android/src/main/new_arch/CMakeLists.txt +17 -0
- package/android/src/main/new_arch/RNMarcusSpec.h +1 -0
- package/android/src/main/new_arch/react/renderer/components/RNMarcusSpec/MarcusTextDecoratorShadowNode.cpp +235 -0
- package/android/src/main/new_arch/react/renderer/components/RNMarcusSpec/MarcusTextDecoratorShadowNode.h +62 -0
- package/android/src/reactNativeVersionPatch/CustomMountingManager/81/app/getbullet/marcus/CustomFabricUIManager.java +22 -3
- package/android/src/reactNativeVersionPatch/CustomMountingManager/latest/app/getbullet/marcus/CustomFabricUIManager.java +22 -3
- package/android/src/test/java/app/getbullet/marcus/MarkdownCopyTest.kt +69 -0
- package/android/src/test/java/app/getbullet/marcus/MarkdownFormatterTest.kt +170 -25
- package/android/src/test/java/app/getbullet/marcus/RenderModel.kt +22 -5
- package/android/src/test/java/app/getbullet/marcus/spans/MarkdownCodeBlockSpanTest.kt +91 -0
- package/android/src/test/resources/render-model.txt +221 -16
- package/apple/MarcusSwizzle.h +25 -0
- package/apple/MarcusTextDecoratorComponentView.h +22 -0
- package/apple/MarcusTextDecoratorComponentView.mm +72 -0
- package/apple/MarcusTextDecoratorShadowNode.h +62 -0
- package/apple/MarcusTextDecoratorShadowNode.mm +192 -0
- package/apple/MarcusTextDecoratorViewManager.h +4 -0
- package/apple/MarcusTextDecoratorViewManager.mm +11 -0
- package/apple/MarcusTextInputDecoratorComponentView.mm +1 -1
- package/apple/MarcusTextInputDecoratorShadowNode.mm +1 -1
- package/apple/MarcusTextLayoutManager.h +40 -0
- package/apple/MarcusTextLayoutManager.mm +173 -0
- package/apple/MarkdownAttributes.h +23 -2
- package/apple/MarkdownAttributes.m +6 -0
- package/apple/MarkdownCopy.swift +63 -0
- package/apple/MarkdownDecorator.swift +2 -2
- package/apple/MarkdownFormatter+React.swift +23 -0
- package/apple/MarkdownFormatter.swift +869 -148
- package/apple/MarkdownParagraphLayoutManager.swift +455 -0
- package/apple/MarkdownSwiftInterop.h +0 -1
- package/apple/MarkdownTextBackground.swift +59 -1
- package/apple/MarkdownTextFieldObserver.swift +2 -2
- package/apple/MarkdownTextLayoutFragment.swift +159 -33
- package/apple/MarkdownTextLayoutManagerDelegate.swift +67 -3
- package/apple/MarkdownTextStorageDelegate.swift +2 -2
- package/apple/MarkdownTextViewObserver.swift +2 -2
- package/apple/MarkdownUtils.swift +38 -0
- package/apple/MarkdownWritingDirection.swift +132 -0
- package/apple/RCTMarcusStyle+Codegen.h +115 -9
- package/apple/RCTMarcusStyle.h +128 -31
- package/apple/RCTMarcusStyle.m +48 -0
- package/apple/RCTParagraphComponentView+Marcus.h +17 -0
- package/apple/RCTParagraphComponentView+Marcus.mm +38 -0
- package/apple/RCTTextInputComponentView+Marcus.mm +1 -25
- package/cpp/react/renderer/components/RNMarcusSpec/MarcusTextDecoratorState.h +37 -0
- package/cpp/react/renderer/components/RNMarcusSpec/MarcusTextDecoratorViewComponentDescriptor.h +17 -0
- package/lib/commonjs/MarcusTextDecoratorViewNativeComponent.ts +199 -0
- package/lib/commonjs/MarcusTextInputDecoratorViewNativeComponent.ts +145 -58
- package/lib/commonjs/MarkdownText.js +330 -0
- package/lib/commonjs/MarkdownText.js.map +1 -0
- package/lib/commonjs/MarkdownText.web.js +529 -0
- package/lib/commonjs/MarkdownText.web.js.map +1 -0
- package/lib/commonjs/MarkdownTextInput.js +22 -27
- package/lib/commonjs/MarkdownTextInput.js.map +1 -1
- package/lib/commonjs/MarkdownTextInput.web.js +12 -7
- package/lib/commonjs/MarkdownTextInput.web.js.map +1 -1
- package/lib/commonjs/atomUtils.js +112 -0
- package/lib/commonjs/atomUtils.js.map +1 -0
- package/lib/commonjs/childrenUtils.js +36 -0
- package/lib/commonjs/childrenUtils.js.map +1 -0
- package/lib/commonjs/index.js +8 -7
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/math/environment.js +69 -0
- package/lib/commonjs/math/environment.js.map +1 -0
- package/lib/commonjs/math/index.js +61 -0
- package/lib/commonjs/math/index.js.map +1 -0
- package/lib/commonjs/math/mathjax.js +548 -0
- package/lib/commonjs/math/mathjax.js.map +1 -0
- package/lib/commonjs/metro.js +172 -0
- package/lib/commonjs/metro.js.map +1 -0
- package/lib/commonjs/parser/index.d.ts +3 -0
- package/lib/commonjs/parser/index.js +450 -42
- package/lib/commonjs/parser/index.js.map +4 -4
- package/lib/commonjs/stripUtils.js +743 -0
- package/lib/commonjs/stripUtils.js.map +1 -0
- package/lib/commonjs/styleUtils.js +194 -23
- package/lib/commonjs/styleUtils.js.map +1 -1
- package/lib/commonjs/web/MarkdownElements.css +67 -0
- package/lib/commonjs/web/MarkdownTextInput.css +9 -7
- package/lib/commonjs/web/utils/blockLayout.js +95 -7
- package/lib/commonjs/web/utils/blockLayout.js.map +1 -1
- package/lib/commonjs/web/utils/blockUtils.js +327 -54
- package/lib/commonjs/web/utils/blockUtils.js.map +1 -1
- package/lib/commonjs/web/utils/elementUtils.js +80 -0
- package/lib/commonjs/web/utils/elementUtils.js.map +1 -0
- package/lib/commonjs/web/utils/parserUtils.js +84 -28
- package/lib/commonjs/web/utils/parserUtils.js.map +1 -1
- package/lib/commonjs/web/utils/treeUtils.js +6 -0
- package/lib/commonjs/web/utils/treeUtils.js.map +1 -1
- package/lib/commonjs/web/utils/webStyleUtils.js +25 -5
- package/lib/commonjs/web/utils/webStyleUtils.js.map +1 -1
- package/lib/module/MarcusTextDecoratorViewNativeComponent.ts +199 -0
- package/lib/module/MarcusTextInputDecoratorViewNativeComponent.ts +145 -58
- package/lib/module/MarkdownText.js +325 -0
- package/lib/module/MarkdownText.js.map +1 -0
- package/lib/module/MarkdownText.web.js +524 -0
- package/lib/module/MarkdownText.web.js.map +1 -0
- package/lib/module/MarkdownTextInput.js +24 -29
- package/lib/module/MarkdownTextInput.js.map +1 -1
- package/lib/module/MarkdownTextInput.web.js +12 -7
- package/lib/module/MarkdownTextInput.web.js.map +1 -1
- package/lib/module/atomUtils.js +106 -0
- package/lib/module/atomUtils.js.map +1 -0
- package/lib/module/childrenUtils.js +33 -0
- package/lib/module/childrenUtils.js.map +1 -0
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/math/environment.js +67 -0
- package/lib/module/math/environment.js.map +1 -0
- package/lib/module/math/index.js +56 -0
- package/lib/module/math/index.js.map +1 -0
- package/lib/module/math/mathjax.js +541 -0
- package/lib/module/math/mathjax.js.map +1 -0
- package/lib/module/metro.js +169 -0
- package/lib/module/metro.js.map +1 -0
- package/lib/module/parser/index.d.ts +3 -0
- package/lib/module/parser/index.js +450 -42
- package/lib/module/parser/index.js.map +4 -4
- package/lib/module/stripUtils.js +739 -0
- package/lib/module/stripUtils.js.map +1 -0
- package/lib/module/styleUtils.js +196 -25
- package/lib/module/styleUtils.js.map +1 -1
- package/lib/module/web/MarkdownElements.css +67 -0
- package/lib/module/web/MarkdownTextInput.css +9 -7
- package/lib/module/web/utils/blockLayout.js +94 -8
- package/lib/module/web/utils/blockLayout.js.map +1 -1
- package/lib/module/web/utils/blockUtils.js +328 -56
- package/lib/module/web/utils/blockUtils.js.map +1 -1
- package/lib/module/web/utils/elementUtils.js +75 -0
- package/lib/module/web/utils/elementUtils.js.map +1 -0
- package/lib/module/web/utils/parserUtils.js +86 -30
- package/lib/module/web/utils/parserUtils.js.map +1 -1
- package/lib/module/web/utils/treeUtils.js +6 -0
- package/lib/module/web/utils/treeUtils.js.map +1 -1
- package/lib/module/web/utils/webStyleUtils.js +25 -5
- package/lib/module/web/utils/webStyleUtils.js.map +1 -1
- package/lib/typescript/commonjs/e2e/links.test.d.ts +2 -0
- package/lib/typescript/commonjs/e2e/links.test.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/MarcusTextDecoratorViewNativeComponent.d.ts +93 -0
- package/lib/typescript/commonjs/src/MarcusTextDecoratorViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/MarcusTextInputDecoratorViewNativeComponent.d.ts +64 -51
- package/lib/typescript/commonjs/src/MarcusTextInputDecoratorViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/MarkdownText.d.ts +127 -0
- package/lib/typescript/commonjs/src/MarkdownText.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/MarkdownText.web.d.ts +126 -0
- package/lib/typescript/commonjs/src/MarkdownText.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/MarkdownTextInput.d.ts +23 -1
- package/lib/typescript/commonjs/src/MarkdownTextInput.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/MarkdownTextInput.web.d.ts +26 -4
- package/lib/typescript/commonjs/src/MarkdownTextInput.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/atomUtils.d.ts +58 -0
- package/lib/typescript/commonjs/src/atomUtils.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/childrenUtils.d.ts +12 -0
- package/lib/typescript/commonjs/src/childrenUtils.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/commonTypes.d.ts +39 -3
- package/lib/typescript/commonjs/src/commonTypes.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +2 -1
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/math/environment.d.ts +7 -0
- package/lib/typescript/commonjs/src/math/environment.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/math/index.d.ts +64 -0
- package/lib/typescript/commonjs/src/math/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/math/mathjax.d.ts +63 -0
- package/lib/typescript/commonjs/src/math/mathjax.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/metro.d.ts +59 -0
- package/lib/typescript/commonjs/src/metro.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/parser/index.d.ts +3 -3
- package/lib/typescript/commonjs/src/parser/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/parser/micromark-extension-mentions.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/rangeUtils.d.ts +1 -1
- package/lib/typescript/commonjs/src/stripUtils.d.ts +108 -0
- package/lib/typescript/commonjs/src/stripUtils.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/styleUtils.d.ts +62 -4
- package/lib/typescript/commonjs/src/styleUtils.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/web/utils/blockLayout.d.ts +32 -4
- package/lib/typescript/commonjs/src/web/utils/blockLayout.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/web/utils/blockUtils.d.ts +20 -8
- package/lib/typescript/commonjs/src/web/utils/blockUtils.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/web/utils/elementUtils.d.ts +37 -0
- package/lib/typescript/commonjs/src/web/utils/elementUtils.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/utils/parserUtils.d.ts +5 -5
- package/lib/typescript/commonjs/src/web/utils/parserUtils.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/web/utils/treeUtils.d.ts +6 -1
- package/lib/typescript/commonjs/src/web/utils/treeUtils.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/web/utils/webStyleUtils.d.ts +2 -2
- package/lib/typescript/commonjs/src/web/utils/webStyleUtils.d.ts.map +1 -1
- package/lib/typescript/module/e2e/links.test.d.ts +2 -0
- package/lib/typescript/module/e2e/links.test.d.ts.map +1 -0
- package/lib/typescript/module/src/MarcusTextDecoratorViewNativeComponent.d.ts +93 -0
- package/lib/typescript/module/src/MarcusTextDecoratorViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/MarcusTextInputDecoratorViewNativeComponent.d.ts +64 -51
- package/lib/typescript/module/src/MarcusTextInputDecoratorViewNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/MarkdownText.d.ts +127 -0
- package/lib/typescript/module/src/MarkdownText.d.ts.map +1 -0
- package/lib/typescript/module/src/MarkdownText.web.d.ts +126 -0
- package/lib/typescript/module/src/MarkdownText.web.d.ts.map +1 -0
- package/lib/typescript/module/src/MarkdownTextInput.d.ts +23 -1
- package/lib/typescript/module/src/MarkdownTextInput.d.ts.map +1 -1
- package/lib/typescript/module/src/MarkdownTextInput.web.d.ts +26 -4
- package/lib/typescript/module/src/MarkdownTextInput.web.d.ts.map +1 -1
- package/lib/typescript/module/src/atomUtils.d.ts +58 -0
- package/lib/typescript/module/src/atomUtils.d.ts.map +1 -0
- package/lib/typescript/module/src/childrenUtils.d.ts +12 -0
- package/lib/typescript/module/src/childrenUtils.d.ts.map +1 -0
- package/lib/typescript/module/src/commonTypes.d.ts +39 -3
- package/lib/typescript/module/src/commonTypes.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +2 -1
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/math/environment.d.ts +7 -0
- package/lib/typescript/module/src/math/environment.d.ts.map +1 -0
- package/lib/typescript/module/src/math/index.d.ts +64 -0
- package/lib/typescript/module/src/math/index.d.ts.map +1 -0
- package/lib/typescript/module/src/math/mathjax.d.ts +63 -0
- package/lib/typescript/module/src/math/mathjax.d.ts.map +1 -0
- package/lib/typescript/module/src/metro.d.ts +59 -0
- package/lib/typescript/module/src/metro.d.ts.map +1 -0
- package/lib/typescript/module/src/parser/index.d.ts +3 -3
- package/lib/typescript/module/src/parser/index.d.ts.map +1 -1
- package/lib/typescript/module/src/parser/micromark-extension-mentions.d.ts.map +1 -1
- package/lib/typescript/module/src/rangeUtils.d.ts +1 -1
- package/lib/typescript/module/src/stripUtils.d.ts +108 -0
- package/lib/typescript/module/src/stripUtils.d.ts.map +1 -0
- package/lib/typescript/module/src/styleUtils.d.ts +62 -4
- package/lib/typescript/module/src/styleUtils.d.ts.map +1 -1
- package/lib/typescript/module/src/web/utils/blockLayout.d.ts +32 -4
- package/lib/typescript/module/src/web/utils/blockLayout.d.ts.map +1 -1
- package/lib/typescript/module/src/web/utils/blockUtils.d.ts +20 -8
- package/lib/typescript/module/src/web/utils/blockUtils.d.ts.map +1 -1
- package/lib/typescript/module/src/web/utils/elementUtils.d.ts +37 -0
- package/lib/typescript/module/src/web/utils/elementUtils.d.ts.map +1 -0
- package/lib/typescript/module/src/web/utils/parserUtils.d.ts +5 -5
- package/lib/typescript/module/src/web/utils/parserUtils.d.ts.map +1 -1
- package/lib/typescript/module/src/web/utils/treeUtils.d.ts +6 -1
- package/lib/typescript/module/src/web/utils/treeUtils.d.ts.map +1 -1
- package/lib/typescript/module/src/web/utils/webStyleUtils.d.ts +2 -2
- package/lib/typescript/module/src/web/utils/webStyleUtils.d.ts.map +1 -1
- package/package.json +29 -2
- package/react-native.config.js +8 -1
- package/src/MarcusTextDecoratorViewNativeComponent.ts +199 -0
- package/src/MarcusTextInputDecoratorViewNativeComponent.ts +145 -58
- package/src/MarkdownText.tsx +472 -0
- package/src/MarkdownText.web.tsx +668 -0
- package/src/MarkdownTextInput.tsx +42 -38
- package/src/MarkdownTextInput.web.tsx +36 -13
- package/src/atomUtils.ts +112 -0
- package/src/childrenUtils.ts +39 -0
- package/src/commonTypes.ts +69 -9
- package/src/index.tsx +2 -1
- package/src/math/environment.ts +68 -0
- package/src/math/index.ts +78 -0
- package/src/math/mathjax.ts +604 -0
- package/src/metro.ts +238 -0
- package/src/parser/index.ts +175 -10
- package/src/parser/micromark-extension-mentions.ts +104 -11
- package/src/stripUtils.ts +919 -0
- package/src/styleUtils.ts +290 -26
- package/src/web/MarkdownElements.css +67 -0
- package/src/web/MarkdownTextInput.css +9 -7
- package/src/web/utils/blockLayout.ts +124 -14
- package/src/web/utils/blockUtils.ts +365 -59
- package/src/web/utils/elementUtils.ts +87 -0
- package/src/web/utils/parserUtils.ts +119 -31
- package/src/web/utils/treeUtils.ts +6 -1
- package/src/web/utils/webStyleUtils.ts +32 -8
- package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBackgroundColorSpan.kt +0 -6
- package/android/src/main/java/app/getbullet/marcus/spans/MarkdownBoldSpan.kt +0 -6
- package/android/src/main/java/app/getbullet/marcus/spans/MarkdownItalicSpan.kt +0 -6
- package/apple/RCTMarcusStyle+Codegen.mm +0 -64
- package/apple/RCTMarcusUtils.h +0 -26
- package/apple/RCTMarcusUtils.mm +0 -26
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import { addNodeToTree, createRootTreeNode } from "./treeUtils.js";
|
|
4
4
|
import { getCurrentCursorPosition, moveCursorToEnd, setCursorPosition } from "./cursorUtils.js";
|
|
5
|
-
import { addBlockPrefixGap, addLineLayout, addStyleToBlock, isMultilineMarkdownType } from "./blockUtils.js";
|
|
6
|
-
import {
|
|
5
|
+
import { addBlockPrefixGap, addLineLayout, addStyleToBlock, isMultilineMarkdownType, setRibbonEdge } from "./blockUtils.js";
|
|
6
|
+
import { createMarkdownElement, isBlockLevelType } from "./elementUtils.js";
|
|
7
|
+
import { layoutBlocks, SHOWN_MARKERS } from "./blockLayout.js";
|
|
7
8
|
import { createTextMeasurer } from "./measureUtils.js";
|
|
8
9
|
import { sortRanges, ungroupRanges } from "../../rangeUtils.js";
|
|
9
10
|
function splitTextIntoLines(text) {
|
|
@@ -45,7 +46,7 @@ function mergeLinesWithMultilineTags(lines, currentLine, range, correspondingLin
|
|
|
45
46
|
function splitRangeIntoSeparateLines(lines, currentLine, range, correspondingLineIndexes) {
|
|
46
47
|
const mainLineRangeLength = currentLine.start + currentLine.length - range.start;
|
|
47
48
|
// A range starting exactly at the newline has nothing on this line. Pushing the empty portion
|
|
48
|
-
// anyway made the builder render an empty
|
|
49
|
+
// anyway made the builder render an empty element, and an empty one is given a `<br>` to keep the
|
|
49
50
|
// line height -- a line break in the text that the user never typed.
|
|
50
51
|
if (mainLineRangeLength > 0) {
|
|
51
52
|
currentLine.markdownRanges.push({
|
|
@@ -111,8 +112,7 @@ function appendNode(element, parentTreeNode, type, length, start = null) {
|
|
|
111
112
|
return node;
|
|
112
113
|
}
|
|
113
114
|
function addBrElement(node) {
|
|
114
|
-
const span =
|
|
115
|
-
span.setAttribute("data-type", "br");
|
|
115
|
+
const span = createMarkdownElement("br");
|
|
116
116
|
appendValueToElement(span, node, "\n");
|
|
117
117
|
const spanNode = appendNode(span, node, "br", 1);
|
|
118
118
|
appendNode(document.createElement("br"), spanNode, "br", 1);
|
|
@@ -122,13 +122,12 @@ function addTextToElement(node, text, isMultiline = true) {
|
|
|
122
122
|
const lines = text.split("\n");
|
|
123
123
|
lines.forEach((line, index) => {
|
|
124
124
|
if (line !== "") {
|
|
125
|
-
const span =
|
|
125
|
+
const span = createMarkdownElement("text");
|
|
126
126
|
appendValueToElement(span, node, line);
|
|
127
|
-
span.setAttribute("data-type", "text");
|
|
128
127
|
span.appendChild(document.createTextNode(line));
|
|
129
128
|
appendNode(span, node, "text", line.length);
|
|
130
129
|
const parentType = span.parentElement?.dataset.type;
|
|
131
|
-
if (!isMultiline && parentType && ["pre", "code", "mention
|
|
130
|
+
if (!isMultiline && parentType && ["pre", "code", "mention"].includes(parentType)) {
|
|
132
131
|
// this is a fix to background colors being shifted downwards in a singleline input
|
|
133
132
|
addStyleToBlock(span, "text", {}, false);
|
|
134
133
|
}
|
|
@@ -140,9 +139,27 @@ function addTextToElement(node, text, isMultiline = true) {
|
|
|
140
139
|
}
|
|
141
140
|
});
|
|
142
141
|
}
|
|
143
|
-
|
|
144
|
-
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Builds the element one line of the document is rendered into.
|
|
145
|
+
*
|
|
146
|
+
* A line of prose is a paragraph and is built as one. A line carrying a block -- a quote, a list
|
|
147
|
+
* item, a heading, a fenced block -- is not: `<p>` holds phrasing content only, and the elements
|
|
148
|
+
* those types are built as are flow content, so a `<p>` around them would be markup no browser
|
|
149
|
+
* would have parsed and no serializer will round-trip. Such a line gets a `<div>`, which says
|
|
150
|
+
* nothing and is allowed to hold anything -- the elements inside it are where the meaning is.
|
|
151
|
+
*
|
|
152
|
+
* `dir="auto"` makes the line its own bidi paragraph, taking its direction from the first strong
|
|
153
|
+
* character in it. That is what the two native platforms already do -- `NSWritingDirectionNatural`
|
|
154
|
+
* is UIKit's default and `firstStrong` is Android's -- so a quote in Arabic inside an otherwise
|
|
155
|
+
* English document opens its gutter on the right on all three rather than on two of them. It is
|
|
156
|
+
* also what `setRibbonEdge` asks the browser about, since the direction a line resolved to is
|
|
157
|
+
* readable through `:dir()` and not through anything the `direction` property leaves behind.
|
|
158
|
+
*/
|
|
159
|
+
function addParagraph(node, text, length, layout, markdownStyle, disableInlineStyles = false, tag = "p") {
|
|
160
|
+
const p = document.createElement(tag);
|
|
145
161
|
p.setAttribute("data-type", "line");
|
|
162
|
+
p.setAttribute("dir", "auto");
|
|
146
163
|
if (!disableInlineStyles) {
|
|
147
164
|
addLineLayout(p, layout, markdownStyle);
|
|
148
165
|
}
|
|
@@ -187,16 +204,42 @@ function reportAmbiguousNesting(ranges) {
|
|
|
187
204
|
}
|
|
188
205
|
|
|
189
206
|
/**
|
|
190
|
-
*
|
|
207
|
+
* The heading level this range is, or 0 if it is one of the nested copies inside one.
|
|
208
|
+
*
|
|
209
|
+
* A heading arrives as one range per level -- `ungroupRanges` expands `depth` into the nesting the
|
|
210
|
+
* `em` sizing compounds down -- so the level is how many of them there are, and only the outermost
|
|
211
|
+
* can be the `<hN>`. The copies are identical objects, and a stable sort leaves them adjacent, so
|
|
212
|
+
* counting the ones still to come is counting the levels.
|
|
213
|
+
*/
|
|
214
|
+
function headingLevel(parent, range, remaining) {
|
|
215
|
+
for (let node = parent; node !== null; node = node.parentNode) {
|
|
216
|
+
if (node.type === "heading") {
|
|
217
|
+
return 0;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
let level = 1;
|
|
221
|
+
while (remaining[level - 1]?.type === "heading" && remaining[level - 1]?.start === range.start && remaining[level - 1]?.length === range.length) {
|
|
222
|
+
level += 1;
|
|
223
|
+
}
|
|
224
|
+
return level;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Builds one `data-type="line"` element under `rootNode`.
|
|
191
229
|
*
|
|
192
230
|
* Lines are independent: nothing carries across from the previous one, which is what lets an update
|
|
193
231
|
* rebuild a single line and leave the rest of the document alone.
|
|
194
232
|
*/
|
|
195
|
-
function addLine(rootNode, line, textLength, hasRanges, isMultiline, markdownStyle, disableInlineStyles) {
|
|
233
|
+
function addLine(rootNode, line, textLength, hasRanges, isMultiline, markdownStyle, disableInlineStyles, rendering) {
|
|
196
234
|
if (!hasRanges) {
|
|
197
|
-
|
|
235
|
+
const plainNode = addParagraph(rootNode, line.text, line.length, line.layout, markdownStyle, disableInlineStyles);
|
|
236
|
+
if (!disableInlineStyles) {
|
|
237
|
+
setRibbonEdge(plainNode.element, line.layout);
|
|
238
|
+
}
|
|
239
|
+
return plainNode;
|
|
198
240
|
}
|
|
199
|
-
const
|
|
241
|
+
const tag = line.markdownRanges.some(range => isBlockLevelType(range.type)) ? "div" : "p";
|
|
242
|
+
const lineNode = addParagraph(rootNode, null, line.length, line.layout, markdownStyle, disableInlineStyles, tag);
|
|
200
243
|
let currentParentNode = lineNode;
|
|
201
244
|
if (line.markdownRanges.length === 0) {
|
|
202
245
|
addTextToElement(currentParentNode, line.text, isMultiline);
|
|
@@ -219,27 +262,34 @@ function addLine(rootNode, line, textLength, hasRanges, isMultiline, markdownSty
|
|
|
219
262
|
addTextToElement(currentParentNode, textBeforeRange, isMultiline);
|
|
220
263
|
}
|
|
221
264
|
|
|
222
|
-
// create markdown
|
|
223
|
-
const
|
|
224
|
-
|
|
225
|
-
const spanNode = appendNode(span, currentParentNode, range.type, range.length, range.start);
|
|
265
|
+
// create the markdown element
|
|
266
|
+
const element = createMarkdownElement(range.type, range.type === "heading" ? headingLevel(currentParentNode, range, lineMarkdownRanges) : 0);
|
|
267
|
+
const rangeNode = appendNode(element, currentParentNode, range.type, range.length, range.start);
|
|
226
268
|
|
|
227
269
|
// Styled once it is in the tree, not before: a heading's size depends on how many heading
|
|
228
270
|
// levels enclose it, and an element with no parent looks like the outermost one.
|
|
229
271
|
if (!disableInlineStyles) {
|
|
230
|
-
addStyleToBlock(
|
|
272
|
+
addStyleToBlock(element, range.type, markdownStyle, isMultiline, rendering);
|
|
231
273
|
if (range.type === "block-prefix") {
|
|
232
|
-
addBlockPrefixGap(
|
|
274
|
+
addBlockPrefixGap(element, line.layout?.gaps.get(range.start));
|
|
233
275
|
}
|
|
234
276
|
}
|
|
277
|
+
|
|
278
|
+
// A list container may hold nothing but items, so everything it contains goes into one. The
|
|
279
|
+
// item covers exactly what the container does -- a line of a list is an item of it -- and from
|
|
280
|
+
// here on it is what the walk fills and unwinds through.
|
|
281
|
+
const contentNode = range.type === "list-ordered" || range.type === "list-unordered" ? appendNode(createMarkdownElement("list-item"), rangeNode, "list-item", range.length, range.start) : rangeNode;
|
|
235
282
|
if (lineMarkdownRanges.length > 0 && nextRangeStartIndex < endOfCurrentRange && range.type !== "syntax") {
|
|
236
283
|
// tag nesting
|
|
237
|
-
currentParentNode =
|
|
284
|
+
currentParentNode = contentNode;
|
|
238
285
|
lastRangeEndIndex = range.start;
|
|
239
286
|
} else {
|
|
240
287
|
// adding markdown tag
|
|
241
|
-
addTextToElement(
|
|
242
|
-
|
|
288
|
+
addTextToElement(contentNode, line.text.substring(range.start - line.start, endOfCurrentRange - line.start), isMultiline);
|
|
289
|
+
if (contentNode !== rangeNode) {
|
|
290
|
+
rangeNode.element.value = contentNode.element.value;
|
|
291
|
+
}
|
|
292
|
+
currentParentNode.element.value = (currentParentNode.element.value || "") + (rangeNode.element.value || "");
|
|
243
293
|
lastRangeEndIndex = endOfCurrentRange;
|
|
244
294
|
// tag unnesting and adding text after the tag
|
|
245
295
|
while (currentParentNode.parentNode !== null && nextRangeStartIndex >= currentParentNode.start + currentParentNode.length) {
|
|
@@ -267,11 +317,17 @@ function addLine(rootNode, line, textLength, hasRanges, isMultiline, markdownSty
|
|
|
267
317
|
}
|
|
268
318
|
}
|
|
269
319
|
}
|
|
320
|
+
|
|
321
|
+
// Last, once the line holds all its text: a line's own direction is read from what is in it, and
|
|
322
|
+
// it is what says which edge a quote's ribbons hang from.
|
|
323
|
+
if (!disableInlineStyles) {
|
|
324
|
+
setRibbonEdge(lineNode.element, line.layout);
|
|
325
|
+
}
|
|
270
326
|
return lineNode;
|
|
271
327
|
}
|
|
272
328
|
|
|
273
329
|
/** Splits the text into lines and hands each the markdown ranges that fall inside it. */
|
|
274
|
-
function prepareLines(text, ranges, markdownStyle, measure) {
|
|
330
|
+
function prepareLines(text, ranges, markdownStyle, measure, rendering = SHOWN_MARKERS) {
|
|
275
331
|
const lines = splitTextIntoLines(text);
|
|
276
332
|
if (ranges.length === 0) {
|
|
277
333
|
return lines;
|
|
@@ -280,7 +336,7 @@ function prepareLines(text, ranges, markdownStyle, measure) {
|
|
|
280
336
|
// Before anything reorders them: the block walk reads the ranges in the order the parser emits
|
|
281
337
|
// them -- each marker immediately before the container it belongs to -- and `sortRanges` sorts
|
|
282
338
|
// that order away in place.
|
|
283
|
-
const layouts = layoutBlocks(text, ranges, markdownStyle, measure);
|
|
339
|
+
const layouts = layoutBlocks(text, ranges, markdownStyle, measure, rendering);
|
|
284
340
|
|
|
285
341
|
// Sort all ranges by start position, length, and by tag hierarchy so the styles and text are applied in correct order
|
|
286
342
|
const sortedRanges = sortRanges(ranges);
|
|
@@ -304,7 +360,7 @@ function prepareLines(text, ranges, markdownStyle, measure) {
|
|
|
304
360
|
}
|
|
305
361
|
|
|
306
362
|
/** Builds HTML DOM structure based on passed text and markdown ranges */
|
|
307
|
-
function parseRangesToHTMLNodes(text, ranges, isMultiline = true, markdownStyle = {}, disableInlineStyles = false, measure = createTextMeasurer(null)) {
|
|
363
|
+
function parseRangesToHTMLNodes(text, ranges, isMultiline = true, markdownStyle = {}, disableInlineStyles = false, measure = createTextMeasurer(null), rendering = SHOWN_MARKERS) {
|
|
308
364
|
const rootElement = document.createElement("span");
|
|
309
365
|
const textLength = text.length;
|
|
310
366
|
const rootNode = createRootTreeNode(rootElement, textLength);
|
|
@@ -312,8 +368,8 @@ function parseRangesToHTMLNodes(text, ranges, isMultiline = true, markdownStyle
|
|
|
312
368
|
// Built line by line, exactly as an update builds the lines it has to replace, so the two agree
|
|
313
369
|
// by construction and each line sits at the offset the text gives it rather than at wherever the
|
|
314
370
|
// line before it happened to end.
|
|
315
|
-
prepareLines(text, ranges, markdownStyle, measure).forEach((line, index) => {
|
|
316
|
-
const node = buildLine(line, index, textLength, ranges.length > 0, isMultiline, markdownStyle, disableInlineStyles);
|
|
371
|
+
prepareLines(text, ranges, markdownStyle, measure, rendering).forEach((line, index) => {
|
|
372
|
+
const node = buildLine(line, index, textLength, ranges.length > 0, isMultiline, markdownStyle, disableInlineStyles, rendering);
|
|
317
373
|
node.parentNode = rootNode;
|
|
318
374
|
rootNode.childNodes.push(node);
|
|
319
375
|
rootElement.appendChild(node.element);
|
|
@@ -396,12 +452,12 @@ function coverChildren(node) {
|
|
|
396
452
|
}
|
|
397
453
|
|
|
398
454
|
/** Builds one line on its own, then places it at the offset and index it occupies in the document. */
|
|
399
|
-
function buildLine(line, index, textLength, hasRanges, isMultiline, markdownStyle, disableInlineStyles = false) {
|
|
455
|
+
function buildLine(line, index, textLength, hasRanges, isMultiline, markdownStyle, disableInlineStyles = false, rendering = SHOWN_MARKERS) {
|
|
400
456
|
// The scratch root carries the line's offset, so the subtree comes out with the absolute `start`
|
|
401
457
|
// values the builder compares against range offsets -- the same ones it would get if the whole
|
|
402
458
|
// document had been built in one pass.
|
|
403
459
|
const scratch = createRootTreeNode(document.createElement("span"), line.length, line.start);
|
|
404
|
-
const node = addLine(scratch, line, textLength, hasRanges, isMultiline, markdownStyle, disableInlineStyles);
|
|
460
|
+
const node = addLine(scratch, line, textLength, hasRanges, isMultiline, markdownStyle, disableInlineStyles, rendering);
|
|
405
461
|
coverChildren(node);
|
|
406
462
|
restampSubtree(node, `${index}`);
|
|
407
463
|
return node;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["addNodeToTree","createRootTreeNode","getCurrentCursorPosition","moveCursorToEnd","setCursorPosition","addBlockPrefixGap","addLineLayout","addStyleToBlock","isMultilineMarkdownType","layoutBlocks","createTextMeasurer","sortRanges","ungroupRanges","splitTextIntoLines","text","lineStartIndex","lines","split","map","line","lineObject","start","length","markdownRanges","mergeLinesWithMultilineTags","currentLine","range","correspondingLineIndexes","mainLine","push","forEach","lineIndex","otherLine","undefined","splice","splitRangeIntoSeparateLines","mainLineRangeLength","rangeLength","currentLength","normalizeLines","ranges","mergedLines","lineIndexes","_line","index","beginLineIndex","findLastIndex","endLineIndex","findIndex","slice","mainLineIndex","otherLineIndexes","type","appendValueToElement","element","parentTreeNode","value","targetElement","parentNode","appendNode","node","appendChild","addBrElement","span","document","createElement","setAttribute","spanNode","addTextToElement","isMultiline","createTextNode","parentType","parentElement","dataset","includes","addParagraph","layout","markdownStyle","disableInlineStyles","p","pNode","INNERMOST_TYPES","Set","reportAmbiguousNesting","i","previous","current","has","console","error","addLine","rootNode","textLength","hasRanges","lineNode","currentParentNode","lastRangeEndIndex","lineMarkdownRanges","shift","endOfCurrentRange","nextRangeStartIndex","textBeforeRange","substring","gaps","get","parentEndIndex","textAfterRange","prepareLines","measure","layouts","sortedRanges","__DEV__","normalized","paragraph","parseRangesToHTMLNodes","rootElement","buildLine","childNodes","dom","tree","signatureOf","signature","depth","firstLineIndent","indent","ribbons","join","gap","shiftSubtree","delta","target","child","restampSubtree","orderIndex","coverChildren","end","childEnd","scratch","canReuseLine","cached","liveNode","outerHTML","html","reconcileLines","shouldForceDOMUpdate","signatures","cache","lineCache","live","Array","from","head","tail","previousTail","liveTail","fresh","anchor","remove","fragment","createDocumentFragment","insertBefore","nextCache","moveCursor","isFocused","alwaysMoveCursorToTheEnd","cursorPosition","shouldScrollIntoView","updateInputStructure","parserFunction","cursorPositionIndex","activeElement","selection","innerHTML","innerText"],"sourceRoot":"../../../../src","sources":["web/utils/parserUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["addNodeToTree","createRootTreeNode","getCurrentCursorPosition","moveCursorToEnd","setCursorPosition","addBlockPrefixGap","addLineLayout","addStyleToBlock","isMultilineMarkdownType","setRibbonEdge","createMarkdownElement","isBlockLevelType","layoutBlocks","SHOWN_MARKERS","createTextMeasurer","sortRanges","ungroupRanges","splitTextIntoLines","text","lineStartIndex","lines","split","map","line","lineObject","start","length","markdownRanges","mergeLinesWithMultilineTags","currentLine","range","correspondingLineIndexes","mainLine","push","forEach","lineIndex","otherLine","undefined","splice","splitRangeIntoSeparateLines","mainLineRangeLength","rangeLength","currentLength","normalizeLines","ranges","mergedLines","lineIndexes","_line","index","beginLineIndex","findLastIndex","endLineIndex","findIndex","slice","mainLineIndex","otherLineIndexes","type","appendValueToElement","element","parentTreeNode","value","targetElement","parentNode","appendNode","node","appendChild","addBrElement","span","spanNode","document","createElement","addTextToElement","isMultiline","createTextNode","parentType","parentElement","dataset","includes","addParagraph","layout","markdownStyle","disableInlineStyles","tag","p","setAttribute","pNode","INNERMOST_TYPES","Set","reportAmbiguousNesting","i","previous","current","has","console","error","headingLevel","parent","remaining","level","addLine","rootNode","textLength","hasRanges","rendering","plainNode","some","lineNode","currentParentNode","lastRangeEndIndex","lineMarkdownRanges","shift","endOfCurrentRange","nextRangeStartIndex","textBeforeRange","substring","rangeNode","gaps","get","contentNode","parentEndIndex","textAfterRange","prepareLines","measure","layouts","sortedRanges","__DEV__","normalized","paragraph","parseRangesToHTMLNodes","rootElement","buildLine","childNodes","dom","tree","signatureOf","signature","depth","firstLineIndent","indent","ribbons","join","gap","shiftSubtree","delta","target","child","restampSubtree","orderIndex","coverChildren","end","childEnd","scratch","canReuseLine","cached","liveNode","outerHTML","html","reconcileLines","shouldForceDOMUpdate","signatures","cache","lineCache","live","Array","from","head","tail","previousTail","liveTail","fresh","anchor","remove","fragment","createDocumentFragment","insertBefore","nextCache","moveCursor","isFocused","alwaysMoveCursorToTheEnd","cursorPosition","shouldScrollIntoView","updateInputStructure","parserFunction","cursorPositionIndex","activeElement","selection","innerHTML","innerText"],"sourceRoot":"../../../../src","sources":["web/utils/parserUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* `list-item` is the one node with no range behind it: `<ul>` and `<ol>` may hold nothing but
|
|
5
|
+
* `<li>`, so the builder puts one inside each list container and everything the container holds
|
|
6
|
+
* goes in there. It covers exactly what its container does.
|
|
7
|
+
*/
|
|
8
|
+
|
|
3
9
|
function createRootTreeNode(target, length = 0, start = 0) {
|
|
4
10
|
return {
|
|
5
11
|
element: target,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createRootTreeNode","target","length","start","element","parentNode","childNodes","type","orderIndex","isGeneratingNewline","addNodeToTree","parentTreeNode","contentLength","nodeName","value","getAttribute","parentChildrenCount","startIndex","lastParentChild","style","display","item","setAttribute","push","findHTMLElementInTree","treeRoot","hasAttribute","indexes","split","el","index","Number","shift","getTreeNodeByIndex","i","newLineGenerated","child"],"sourceRoot":"../../../../src","sources":["web/utils/treeUtils.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["createRootTreeNode","target","length","start","element","parentNode","childNodes","type","orderIndex","isGeneratingNewline","addNodeToTree","parentTreeNode","contentLength","nodeName","value","getAttribute","parentChildrenCount","startIndex","lastParentChild","style","display","item","setAttribute","push","findHTMLElementInTree","treeRoot","hasAttribute","indexes","split","el","index","Number","shift","getTreeNodeByIndex","i","newLineGenerated","child"],"sourceRoot":"../../../../src","sources":["web/utils/treeUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -27,14 +27,34 @@ try {
|
|
|
27
27
|
} catch {
|
|
28
28
|
throw new Error("[react-native-marcus] Function `dangerousStyleValue` from react-native-web not found.");
|
|
29
29
|
}
|
|
30
|
+
|
|
31
|
+
// The three shadow properties are left as they were written. An offset is an object rather than a
|
|
32
|
+
// length, and a radius that carried its unit here could not be composed with an offset that did
|
|
33
|
+
// not: `blockUtils` builds the one `text-shadow` declaration out of all three instead.
|
|
34
|
+
const RAW_PROPS = new Set(["textShadowOffset", "textShadowRadius"]);
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Gives every length in the style its CSS unit.
|
|
38
|
+
*
|
|
39
|
+
* Walks the whole tree rather than its top two levels, because a list's `marker` puts style values
|
|
40
|
+
* one level further down than the entries around it.
|
|
41
|
+
*/
|
|
30
42
|
function processUnitsInMarkdownStyle(input) {
|
|
31
43
|
const output = JSON.parse(JSON.stringify(input));
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
44
|
+
const walk = node => {
|
|
45
|
+
Object.keys(node).forEach(prop => {
|
|
46
|
+
const value = node[prop];
|
|
47
|
+
if (RAW_PROPS.has(prop)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (typeof value === "object" && value !== null && !Array.isArray(value)) {
|
|
51
|
+
walk(value);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
node[prop] = dangerousStyleValue(prop, value, false);
|
|
36
55
|
});
|
|
37
|
-
}
|
|
56
|
+
};
|
|
57
|
+
walk(output);
|
|
38
58
|
return output;
|
|
39
59
|
}
|
|
40
60
|
function processMarkdownStyle(input) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mergeMarkdownStyleWithDefault","createReactDOMStyle","require","default","Error","preprocessStyle","dangerousStyleValue","processUnitsInMarkdownStyle","input","output","JSON","parse","stringify","Object","keys","forEach","
|
|
1
|
+
{"version":3,"names":["mergeMarkdownStyleWithDefault","createReactDOMStyle","require","default","Error","preprocessStyle","dangerousStyleValue","RAW_PROPS","Set","processUnitsInMarkdownStyle","input","output","JSON","parse","stringify","walk","node","Object","keys","forEach","prop","value","has","Array","isArray","processMarkdownStyle","parseToReactDOMStyle","style","generateUniqueId","idCounter","idGenerator"],"sourceRoot":"../../../../src","sources":["web/utils/webStyleUtils.ts"],"mappings":";;AAAA;;AAIA,SAASA,6BAA6B,QAAQ,qBAAkB;AAEhE,IAAIC,mBAAwC;AAC5C,IAAI;EACFA,mBAAmB;EACjB;EACAC,OAAO,CAAC,uEAAuE,CAAC,CAACC,OAAO;AAC5F,CAAC,CAAC,MAAM;EACN,MAAM,IAAIC,KAAK,CACb,2JACF,CAAC;AACH;AAEA,IAAIC,eAAoC;AACxC,IAAI;EACFA,eAAe;EACb;EACAH,OAAO,CAAC,qDAAqD,CAAC,CAACC,OAAO;AAC1E,CAAC,CAAC,MAAM;EACN,MAAM,IAAIC,KAAK,CACb,mFACF,CAAC;AACH;AAEA,IAAIE,mBAAiF;AACrF,IAAI;EACFA,mBAAmB;EACjB;EACAJ,OAAO,CAAC,qEAAqE,CAAC,CAACC,OAAO;AAC1F,CAAC,CAAC,MAAM;EACN,MAAM,IAAIC,KAAK,CACb,uFACF,CAAC;AACH;;AAEA;AACA;AACA;AACA,MAAMG,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,2BAA2BA,CAACC,KAAoB,EAAyB;EAChF,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACJ,KAAK,CAAC,CAAC;EAEhD,MAAMK,IAAI,GAAIC,IAAS,IAAK;IAC1BC,MAAM,CAACC,IAAI,CAACF,IAAI,CAAC,CAACG,OAAO,CAAEC,IAAI,IAAK;MAClC,MAAMC,KAAK,GAAGL,IAAI,CAACI,IAAI,CAAC;MAExB,IAAIb,SAAS,CAACe,GAAG,CAACF,IAAI,CAAC,EAAE;QACvB;MACF;MAEA,IAAI,OAAOC,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,CAACE,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,EAAE;QACxEN,IAAI,CAACM,KAAK,CAAC;QACX;MACF;MAEAL,IAAI,CAACI,IAAI,CAAC,GAAGd,mBAAmB,CAACc,IAAI,EAAEC,KAAK,EAAE,KAAK,CAAC;IACtD,CAAC,CAAC;EACJ,CAAC;EAEDN,IAAI,CAACJ,MAAM,CAAC;EAEZ,OAAOA,MAAM;AACf;AAEA,SAASc,oBAAoBA,CAACf,KAAuC,EAAyB;EAC5F,OAAOD,2BAA2B,CAACT,6BAA6B,CAACU,KAAK,CAAC,CAAC;AAC1E;AAEA,SAASgB,oBAAoBA,CAACC,KAAgB,EAAO;EACnD,OAAO1B,mBAAmB,CAACI,eAAe,CAACsB,KAAK,CAAC,CAAC;AACpD;AAEA,UAAUC,gBAAgBA,CAAA,EAAG;EAC3B,IAAIC,SAAS,GAAG,CAAC;EACjB,OAAO,IAAI,EAAE;IACX,MAAM,gBAAgBA,SAAS,EAAE,EAAE;EACrC;AACF;AAEA,MAAMC,WAAW,GAAGF,gBAAgB,CAAC,CAAC;AAEtC,SAASF,oBAAoB,EAAED,oBAAoB,EAAEK,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"links.test.d.ts","sourceRoot":"","sources":["../../../../e2e/links.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { ColorValue, ViewProps } from "react-native";
|
|
2
|
+
import type { Float, Int32 } from "react-native/Libraries/Types/CodegenTypes";
|
|
3
|
+
import type { MarkdownStyle as TextInputMarkdownStyle } from "./MarcusTextInputDecoratorViewNativeComponent";
|
|
4
|
+
interface MarkdownTextStyle {
|
|
5
|
+
color?: ColorValue;
|
|
6
|
+
fontFamily?: string;
|
|
7
|
+
fontSize?: Float;
|
|
8
|
+
fontStyle?: string;
|
|
9
|
+
fontWeight?: string;
|
|
10
|
+
letterSpacing?: Float;
|
|
11
|
+
lineHeight?: Float;
|
|
12
|
+
textDecorationLine?: string;
|
|
13
|
+
textDecorationColor?: ColorValue;
|
|
14
|
+
textDecorationStyle?: string;
|
|
15
|
+
textShadowColor?: ColorValue;
|
|
16
|
+
textShadowOffset?: {
|
|
17
|
+
width: Float;
|
|
18
|
+
height: Float;
|
|
19
|
+
};
|
|
20
|
+
textShadowRadius?: Float;
|
|
21
|
+
}
|
|
22
|
+
interface MarkdownBoxStyle extends MarkdownTextStyle {
|
|
23
|
+
backgroundColor?: ColorValue;
|
|
24
|
+
borderColor?: ColorValue;
|
|
25
|
+
borderWidth?: Float;
|
|
26
|
+
borderRadius?: Float;
|
|
27
|
+
padding?: Float;
|
|
28
|
+
paddingHorizontal?: Float;
|
|
29
|
+
paddingVertical?: Float;
|
|
30
|
+
margin?: Float;
|
|
31
|
+
marginHorizontal?: Float;
|
|
32
|
+
marginVertical?: Float;
|
|
33
|
+
}
|
|
34
|
+
interface MarkdownHeadingStyle extends MarkdownTextStyle {
|
|
35
|
+
scale?: Float;
|
|
36
|
+
}
|
|
37
|
+
interface MarkdownBlockquoteStyle extends MarkdownTextStyle {
|
|
38
|
+
borderColor?: ColorValue;
|
|
39
|
+
borderWidth?: Float;
|
|
40
|
+
borderRadius?: Float;
|
|
41
|
+
marginStart?: Float;
|
|
42
|
+
paddingStart?: Float;
|
|
43
|
+
}
|
|
44
|
+
interface MarkdownListStyle {
|
|
45
|
+
marginStart?: Float;
|
|
46
|
+
paddingStart?: Float;
|
|
47
|
+
markerScale?: Float;
|
|
48
|
+
markerPadding?: Float;
|
|
49
|
+
marker?: MarkdownTextStyle;
|
|
50
|
+
}
|
|
51
|
+
interface MarkdownEmojiStyle {
|
|
52
|
+
fontSize?: Float;
|
|
53
|
+
fontFamily?: string;
|
|
54
|
+
}
|
|
55
|
+
interface MarkdownStyle {
|
|
56
|
+
syntax: MarkdownTextStyle;
|
|
57
|
+
emoji: MarkdownEmojiStyle;
|
|
58
|
+
link: MarkdownTextStyle;
|
|
59
|
+
strong: MarkdownTextStyle;
|
|
60
|
+
emphasis: MarkdownTextStyle;
|
|
61
|
+
strikethrough: MarkdownTextStyle;
|
|
62
|
+
heading: MarkdownHeadingStyle;
|
|
63
|
+
blockquote: MarkdownBlockquoteStyle;
|
|
64
|
+
orderedList: MarkdownListStyle;
|
|
65
|
+
unorderedList: MarkdownListStyle;
|
|
66
|
+
code: MarkdownBoxStyle;
|
|
67
|
+
pre: MarkdownBoxStyle;
|
|
68
|
+
mention: MarkdownBoxStyle;
|
|
69
|
+
}
|
|
70
|
+
interface MarkdownRangeStruct {
|
|
71
|
+
type: string;
|
|
72
|
+
start: Int32;
|
|
73
|
+
length: Int32;
|
|
74
|
+
depth: Int32;
|
|
75
|
+
}
|
|
76
|
+
interface MarkdownSubstitutionStruct {
|
|
77
|
+
index: Int32;
|
|
78
|
+
text: string;
|
|
79
|
+
}
|
|
80
|
+
interface NativeProps extends ViewProps {
|
|
81
|
+
markdownStyle: MarkdownStyle;
|
|
82
|
+
ranges: ReadonlyArray<MarkdownRangeStruct>;
|
|
83
|
+
substitutions: ReadonlyArray<MarkdownSubstitutionStruct>;
|
|
84
|
+
}
|
|
85
|
+
type Assignable<A extends B, B> = A;
|
|
86
|
+
type StyleMatchesTextInput = [
|
|
87
|
+
Assignable<MarkdownStyle, TextInputMarkdownStyle>,
|
|
88
|
+
Assignable<TextInputMarkdownStyle, MarkdownStyle>
|
|
89
|
+
];
|
|
90
|
+
declare const _default: import("react-native").HostComponent<NativeProps>;
|
|
91
|
+
export default _default;
|
|
92
|
+
export type { MarkdownRangeStruct, MarkdownSubstitutionStruct, StyleMatchesTextInput };
|
|
93
|
+
//# sourceMappingURL=MarcusTextDecoratorViewNativeComponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarcusTextDecoratorViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/MarcusTextDecoratorViewNativeComponent.ts"],"names":[],"mappings":"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"}
|