react-native-enriched-markdown-scaffold 0.6.0-scaffold.8 → 0.7.4-scaffold.2
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/ReactNativeEnrichedMarkdown.podspec +62 -11
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerDelegate.java +3 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerInterface.java +1 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerDelegate.java +9 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerInterface.java +3 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerDelegate.java +3 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerInterface.java +1 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.cpp +20 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.h +744 -0
- package/android/src/main/baseline-prof.txt +75 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdown.kt +62 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownInternalText.kt +10 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownManager.kt +10 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownText.kt +9 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownTextManager.kt +10 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/accessibility/AccessibilityLabels.kt +15 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/accessibility/MarkdownAccessibilityHelper.kt +44 -7
- package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputManager.kt +52 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputView.kt +89 -11
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/FormattingStore.kt +19 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputParser.kt +22 -3
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputRemend.kt +1 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/layout/InputMeasurementStore.kt +7 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/input/toolbar/InputContextMenu.kt +54 -13
- package/android/src/main/java/com/swmansion/enriched/markdown/parser/MarkdownASTNode.kt +17 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/SpanStyleCache.kt +4 -4
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/MarkdownViewManagerUtils.kt +30 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/LinkEvents.kt +22 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/SelectionActionMode.kt +36 -7
- package/android/src/main/java/com/swmansion/enriched/markdown/views/TableContainerView.kt +73 -3
- package/android/src/main/jni/CMakeLists.txt +15 -1
- package/android/src/math/java/com/swmansion/enriched/markdown/views/MathContainerView.kt +24 -2
- package/app.plugin.js +2 -1
- package/cpp/parser/MD4CParser.cpp +1 -1
- package/cpp/wasm/build.sh +9 -9
- package/docs/ACCESSIBILITY.md +172 -0
- package/docs/API_REFERENCE.md +948 -0
- package/docs/COPY_OPTIONS.md +127 -0
- package/docs/ELEMENTS_STRUCTURE.md +112 -0
- package/docs/IMAGE_CACHING.md +25 -0
- package/docs/INPUT.md +233 -0
- package/docs/LATEX_MATH.md +136 -0
- package/docs/MACOS.md +19 -0
- package/docs/MARKDOWN_STREAMING.md +36 -0
- package/docs/MENTIONS.md +97 -0
- package/docs/RTL.md +82 -0
- package/docs/STYLES.md +519 -0
- package/docs/TEXT.md +110 -0
- package/docs/WEB.md +49 -0
- package/ios/EnrichedMarkdown.mm +82 -25
- package/ios/EnrichedMarkdownText.mm +37 -5
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.cpp +20 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.h +744 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/RCTComponentViewHelpers.h +15 -0
- package/ios/input/ENRMFormattingStore.h +5 -0
- package/ios/input/ENRMFormattingStore.mm +34 -0
- package/ios/input/ENRMInputTextView.h +2 -0
- package/ios/input/ENRMInputTextView.mm +8 -17
- package/ios/input/ENRMMarkdownSerializer.mm +1 -1
- package/ios/input/EnrichedMarkdownTextInput+ContextMenu.mm +71 -53
- package/ios/input/EnrichedMarkdownTextInput+Internal.h +26 -0
- package/ios/input/EnrichedMarkdownTextInput.h +1 -0
- package/ios/input/EnrichedMarkdownTextInput.mm +230 -29
- package/ios/input/styles/ENRMBoldStyleHandler.mm +3 -2
- package/ios/input/styles/ENRMItalicStyleHandler.mm +3 -2
- package/ios/renderer/AttributedRenderer.m +51 -6
- package/ios/renderer/ENRMMathInlineRenderer.m +5 -1
- package/ios/styles/ENRMFontSlot.h +1 -1
- package/ios/utils/ENRMAccessibilityLabels.h +36 -0
- package/ios/utils/ENRMAccessibilityLabels.m +5 -0
- package/ios/utils/EditMenuUtils+macOS.m +4 -5
- package/ios/utils/EditMenuUtils.h +70 -0
- package/ios/utils/EditMenuUtils.m +14 -11
- package/ios/utils/LastElementUtils.h +39 -2
- package/ios/utils/MarkdownAccessibilityElementBuilder.h +18 -16
- package/ios/utils/MarkdownAccessibilityElementBuilder.m +64 -32
- package/ios/utils/ParagraphStyleUtils.m +21 -2
- package/ios/views/ENRMMathContainerView.h +8 -0
- package/ios/views/ENRMMathContainerView.m +7 -5
- package/ios/views/ENRMTableIOSGridView.h +40 -0
- package/ios/views/ENRMTableIOSGridView.m +216 -0
- package/ios/views/EnrichedMarkdownInternalText.h +2 -0
- package/ios/views/EnrichedMarkdownInternalText.m +2 -0
- package/ios/views/TableContainerView.h +8 -0
- package/ios/views/TableContainerView.m +72 -128
- package/lib/module/EnrichedMarkdownNativeComponent.ts +37 -0
- package/lib/module/EnrichedMarkdownTextInput.js +48 -1
- package/lib/module/EnrichedMarkdownTextInput.js.map +1 -1
- package/lib/module/EnrichedMarkdownTextInputNativeComponent.ts +35 -0
- package/lib/module/EnrichedMarkdownTextNativeComponent.ts +37 -0
- package/lib/module/accessibilityLabelDefaults.js +64 -0
- package/lib/module/accessibilityLabelDefaults.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/native/EnrichedMarkdownText.js +72 -4
- package/lib/module/native/EnrichedMarkdownText.js.map +1 -1
- package/lib/module/normalizeMenuItem.js +38 -0
- package/lib/module/normalizeMenuItem.js.map +1 -0
- package/lib/module/types/AccessibilityLabels.js +2 -0
- package/lib/module/types/AccessibilityLabels.js.map +1 -0
- package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts +34 -0
- package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts +55 -1
- package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts +30 -0
- package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts +34 -0
- package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/accessibilityLabelDefaults.d.ts +16 -0
- package/lib/typescript/src/accessibilityLabelDefaults.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +4 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/native/EnrichedMarkdownText.d.ts +3 -3
- package/lib/typescript/src/native/EnrichedMarkdownText.d.ts.map +1 -1
- package/lib/typescript/src/normalizeMenuItem.d.ts +7 -0
- package/lib/typescript/src/normalizeMenuItem.d.ts.map +1 -0
- package/lib/typescript/src/types/AccessibilityLabels.d.ts +114 -0
- package/lib/typescript/src/types/AccessibilityLabels.d.ts.map +1 -0
- package/lib/typescript/src/types/MarkdownTextProps.d.ts +78 -9
- package/lib/typescript/src/types/MarkdownTextProps.d.ts.map +1 -1
- package/package.json +4 -2
- package/plugin/build/withAndroidMath.js +19 -0
- package/plugin/build/withIosMath.js +28 -0
- package/plugin/build/withReactNativeEnrichedMarkdown.js +11 -0
- package/plugin/tsconfig.build.json +16 -0
- package/src/EnrichedMarkdownNativeComponent.ts +37 -0
- package/src/EnrichedMarkdownTextInput.tsx +117 -1
- package/src/EnrichedMarkdownTextInputNativeComponent.ts +35 -0
- package/src/EnrichedMarkdownTextNativeComponent.ts +37 -0
- package/src/accessibilityLabelDefaults.ts +83 -0
- package/src/index.tsx +11 -0
- package/src/native/EnrichedMarkdownText.tsx +120 -6
- package/src/normalizeMenuItem.ts +52 -0
- package/src/types/AccessibilityLabels.ts +118 -0
- package/src/types/MarkdownTextProps.ts +74 -9
- package/lib/module/plugin/withAndroidMath.js +0 -20
- package/lib/module/plugin/withAndroidMath.js.map +0 -1
- package/lib/module/plugin/withIosMath.js +0 -23
- package/lib/module/plugin/withIosMath.js.map +0 -1
- package/lib/module/plugin/withReactNativeEnrichedMarkdown.js +0 -16
- package/lib/module/plugin/withReactNativeEnrichedMarkdown.js.map +0 -1
- package/lib/typescript/src/plugin/withAndroidMath.d.ts +0 -5
- package/lib/typescript/src/plugin/withAndroidMath.d.ts.map +0 -1
- package/lib/typescript/src/plugin/withIosMath.d.ts +0 -5
- package/lib/typescript/src/plugin/withIosMath.d.ts.map +0 -1
- package/lib/typescript/src/plugin/withReactNativeEnrichedMarkdown.d.ts +0 -6
- package/lib/typescript/src/plugin/withReactNativeEnrichedMarkdown.d.ts.map +0 -1
- /package/{src/plugin → plugin/src}/withAndroidMath.ts +0 -0
- /package/{src/plugin → plugin/src}/withIosMath.ts +0 -0
- /package/{src/plugin → plugin/src}/withReactNativeEnrichedMarkdown.ts +0 -0
|
@@ -3,7 +3,15 @@
|
|
|
3
3
|
import { useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';
|
|
4
4
|
import EnrichedMarkdownTextInputNativeComponent, { Commands } from './EnrichedMarkdownTextInputNativeComponent';
|
|
5
5
|
import { normalizeMarkdownTextInputStyle } from "./normalizeMarkdownTextInputStyle.js";
|
|
6
|
+
import { normalizeMenuItem } from "./normalizeMenuItem.js";
|
|
6
7
|
import { toNativeRegexConfig } from "./utils/regexParser.js";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Per-item shape: `{ enabled }` toggles visibility, `label` overrides the
|
|
11
|
+
* English default. Wire `label` to your i18n library to localize the menu.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/** Controls the individual items inside the Format submenu. */
|
|
7
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
16
|
function getNativeRef(ref) {
|
|
9
17
|
if (ref.current == null) {
|
|
@@ -39,11 +47,15 @@ export const EnrichedMarkdownTextInput = ({
|
|
|
39
47
|
onFocus,
|
|
40
48
|
onBlur,
|
|
41
49
|
contextMenuItems,
|
|
50
|
+
selectionMenuConfig,
|
|
51
|
+
formatMenuConfig,
|
|
42
52
|
linkRegex: _linkRegex,
|
|
43
53
|
writingDirection = 'first-strong',
|
|
44
54
|
...rest
|
|
45
55
|
}) => {
|
|
46
56
|
const nativeRef = useRef(null);
|
|
57
|
+
// Freeze `defaultValue` at mount (RN TextInput semantics): post-mount changes are ignored.
|
|
58
|
+
const initialDefaultValue = useRef(defaultValue).current;
|
|
47
59
|
const nextRequestId = useRef(1);
|
|
48
60
|
const pendingRequests = useRef(new Map());
|
|
49
61
|
const pendingCaretRectRequests = useRef(new Map());
|
|
@@ -77,6 +89,38 @@ export const EnrichedMarkdownTextInput = ({
|
|
|
77
89
|
};
|
|
78
90
|
}, []);
|
|
79
91
|
const normalizedStyle = normalizeMarkdownTextInputStyle(markdownStyle);
|
|
92
|
+
const normalizedSelectionMenuConfig = useMemo(() => {
|
|
93
|
+
const format = normalizeMenuItem(selectionMenuConfig?.format, true, 'Format');
|
|
94
|
+
const copyAsMarkdown = normalizeMenuItem(selectionMenuConfig?.copyAsMarkdown, true, 'Copy as Markdown');
|
|
95
|
+
return {
|
|
96
|
+
format: format.enabled,
|
|
97
|
+
formatLabel: format.label,
|
|
98
|
+
copyAsMarkdown: copyAsMarkdown.enabled,
|
|
99
|
+
copyAsMarkdownLabel: copyAsMarkdown.label
|
|
100
|
+
};
|
|
101
|
+
}, [selectionMenuConfig]);
|
|
102
|
+
const normalizedFormatMenuConfig = useMemo(() => {
|
|
103
|
+
const bold = normalizeMenuItem(formatMenuConfig?.bold, true, 'Bold');
|
|
104
|
+
const italic = normalizeMenuItem(formatMenuConfig?.italic, true, 'Italic');
|
|
105
|
+
const underline = normalizeMenuItem(formatMenuConfig?.underline, true, 'Underline');
|
|
106
|
+
const strikethrough = normalizeMenuItem(formatMenuConfig?.strikethrough, true, 'Strikethrough');
|
|
107
|
+
const spoiler = normalizeMenuItem(formatMenuConfig?.spoiler, true, 'Spoiler');
|
|
108
|
+
const link = normalizeMenuItem(formatMenuConfig?.link, true, 'Link');
|
|
109
|
+
return {
|
|
110
|
+
bold: bold.enabled,
|
|
111
|
+
boldLabel: bold.label,
|
|
112
|
+
italic: italic.enabled,
|
|
113
|
+
italicLabel: italic.label,
|
|
114
|
+
underline: underline.enabled,
|
|
115
|
+
underlineLabel: underline.label,
|
|
116
|
+
strikethrough: strikethrough.enabled,
|
|
117
|
+
strikethroughLabel: strikethrough.label,
|
|
118
|
+
spoiler: spoiler.enabled,
|
|
119
|
+
spoilerLabel: spoiler.label,
|
|
120
|
+
link: link.enabled,
|
|
121
|
+
linkLabel: link.label
|
|
122
|
+
};
|
|
123
|
+
}, [formatMenuConfig]);
|
|
80
124
|
const linkRegex = useMemo(() => toNativeRegexConfig(_linkRegex), [_linkRegex]);
|
|
81
125
|
const handleLinkDetected = useCallback(e => {
|
|
82
126
|
const {
|
|
@@ -251,6 +295,7 @@ export const EnrichedMarkdownTextInput = ({
|
|
|
251
295
|
insertMath: (latex, options) => Commands.insertMath(commandRef, latex, options?.display ?? false),
|
|
252
296
|
updateMath: (start, latex, options) => Commands.updateMath(commandRef, start, latex, options?.display ?? false),
|
|
253
297
|
removeMath: start => Commands.removeMath(commandRef, start),
|
|
298
|
+
copyToClipboard: () => Commands.copyToClipboard(commandRef),
|
|
254
299
|
getMarkdown: () => new Promise((resolve, reject) => {
|
|
255
300
|
const requestId = nextRequestId.current++;
|
|
256
301
|
pendingRequests.current.set(requestId, {
|
|
@@ -273,7 +318,7 @@ export const EnrichedMarkdownTextInput = ({
|
|
|
273
318
|
ref: nativeRef,
|
|
274
319
|
style: style,
|
|
275
320
|
markdownStyle: normalizedStyle,
|
|
276
|
-
defaultValue:
|
|
321
|
+
defaultValue: initialDefaultValue,
|
|
277
322
|
placeholder: placeholder,
|
|
278
323
|
placeholderTextColor: placeholderTextColor,
|
|
279
324
|
editable: editable,
|
|
@@ -296,6 +341,8 @@ export const EnrichedMarkdownTextInput = ({
|
|
|
296
341
|
onRequestCaretRectResult: handleRequestCaretRectResult,
|
|
297
342
|
onCaretRectChange: handleCaretRectChange,
|
|
298
343
|
contextMenuItems: nativeContextMenuItems,
|
|
344
|
+
selectionMenuConfig: normalizedSelectionMenuConfig,
|
|
345
|
+
formatMenuConfig: normalizedFormatMenuConfig,
|
|
299
346
|
mentionIndicators: mentionIndicators,
|
|
300
347
|
onContextMenuItemPress: handleContextMenuItemPress,
|
|
301
348
|
linkRegex: linkRegex,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useImperativeHandle","useMemo","useRef","EnrichedMarkdownTextInputNativeComponent","Commands","normalizeMarkdownTextInputStyle","toNativeRegexConfig","jsx","_jsx","getNativeRef","ref","current","Error","EnrichedMarkdownTextInput","markdownStyle","style","defaultValue","placeholder","placeholderTextColor","editable","autoFocus","scrollEnabled","autoCapitalize","multiline","cursorColor","selectionColor","onChangeText","onChangeMarkdown","onChangeSelection","onChangeState","onCaretRectChange","onLinkDetected","onMathPress","mentionIndicators","onStartMention","onChangeMention","onEndMention","onFocus","onBlur","contextMenuItems","linkRegex","_linkRegex","writingDirection","rest","nativeRef","nextRequestId","pendingRequests","Map","pendingCaretRectRequests","contextMenuCallbacksRef","callbacksMap","item","set","text","onPress","nativeContextMenuItems","filter","visible","map","icon","pending","pendingCaretRect","err","forEach","reject","clear","normalizedStyle","handleLinkDetected","e","url","start","end","nativeEvent","handleMathPress","latex","displayMode","x","y","width","height","rect","handleChangeText","value","handleChangeMarkdown","handleChangeSelection","handleChangeState","bold","italic","underline","strikethrough","spoiler","link","handleCaretRectChange","handleStartMention","handleChangeMention","handleEndMention","handleFocus","handleBlur","handleRequestMarkdownResult","requestId","markdown","get","resolve","delete","handleRequestCaretRectResult","handleContextMenuItemPress","itemText","selectedText","selectionStart","selectionEnd","styleState","callback","selection","node","commandRef","measure","measureInWindow","measureLayout","relativeToNativeNode","onSuccess","onFail","focus","blur","setValue","setSelection","toggleBold","toggleItalic","toggleUnderline","toggleStrikethrough","toggleSpoiler","setLink","insertLink","insertMention","displayText","startMention","indicator","removeLink","insertMath","options","display","updateMath","removeMath","getMarkdown","Promise","requestMarkdown","getCaretRect","requestCaretRect","isOnChangeMarkdownSet","undefined","onInputFocus","onInputBlur","onRequestMarkdownResult","onRequestCaretRectResult","onContextMenuItemPress"],"sourceRoot":"../../src","sources":["EnrichedMarkdownTextInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useImperativeHandle","useMemo","useRef","EnrichedMarkdownTextInputNativeComponent","Commands","normalizeMarkdownTextInputStyle","normalizeMenuItem","toNativeRegexConfig","jsx","_jsx","getNativeRef","ref","current","Error","EnrichedMarkdownTextInput","markdownStyle","style","defaultValue","placeholder","placeholderTextColor","editable","autoFocus","scrollEnabled","autoCapitalize","multiline","cursorColor","selectionColor","onChangeText","onChangeMarkdown","onChangeSelection","onChangeState","onCaretRectChange","onLinkDetected","onMathPress","mentionIndicators","onStartMention","onChangeMention","onEndMention","onFocus","onBlur","contextMenuItems","selectionMenuConfig","formatMenuConfig","linkRegex","_linkRegex","writingDirection","rest","nativeRef","initialDefaultValue","nextRequestId","pendingRequests","Map","pendingCaretRectRequests","contextMenuCallbacksRef","callbacksMap","item","set","text","onPress","nativeContextMenuItems","filter","visible","map","icon","pending","pendingCaretRect","err","forEach","reject","clear","normalizedStyle","normalizedSelectionMenuConfig","format","copyAsMarkdown","enabled","formatLabel","label","copyAsMarkdownLabel","normalizedFormatMenuConfig","bold","italic","underline","strikethrough","spoiler","link","boldLabel","italicLabel","underlineLabel","strikethroughLabel","spoilerLabel","linkLabel","handleLinkDetected","e","url","start","end","nativeEvent","handleMathPress","latex","displayMode","x","y","width","height","rect","handleChangeText","value","handleChangeMarkdown","handleChangeSelection","handleChangeState","handleCaretRectChange","handleStartMention","handleChangeMention","handleEndMention","handleFocus","handleBlur","handleRequestMarkdownResult","requestId","markdown","get","resolve","delete","handleRequestCaretRectResult","handleContextMenuItemPress","itemText","selectedText","selectionStart","selectionEnd","styleState","callback","selection","node","commandRef","measure","measureInWindow","measureLayout","relativeToNativeNode","onSuccess","onFail","focus","blur","setValue","setSelection","toggleBold","toggleItalic","toggleUnderline","toggleStrikethrough","toggleSpoiler","setLink","insertLink","insertMention","displayText","startMention","indicator","removeLink","insertMath","options","display","updateMath","removeMath","copyToClipboard","getMarkdown","Promise","requestMarkdown","getCaretRect","requestCaretRect","isOnChangeMarkdownSet","undefined","onInputFocus","onInputBlur","onRequestMarkdownResult","onRequestCaretRectResult","onContextMenuItemPress"],"sourceRoot":"../../src","sources":["EnrichedMarkdownTextInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -145,6 +145,28 @@ export interface ContextMenuItemConfig {
|
|
|
145
145
|
icon?: string;
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
+
export interface InputSelectionMenuConfigInternal {
|
|
149
|
+
format: boolean;
|
|
150
|
+
formatLabel: string;
|
|
151
|
+
copyAsMarkdown: boolean;
|
|
152
|
+
copyAsMarkdownLabel: string;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export interface FormatMenuConfigInternal {
|
|
156
|
+
bold: boolean;
|
|
157
|
+
boldLabel: string;
|
|
158
|
+
italic: boolean;
|
|
159
|
+
italicLabel: string;
|
|
160
|
+
underline: boolean;
|
|
161
|
+
underlineLabel: string;
|
|
162
|
+
strikethrough: boolean;
|
|
163
|
+
strikethroughLabel: string;
|
|
164
|
+
spoiler: boolean;
|
|
165
|
+
spoilerLabel: string;
|
|
166
|
+
link: boolean;
|
|
167
|
+
linkLabel: string;
|
|
168
|
+
}
|
|
169
|
+
|
|
148
170
|
export interface OnContextMenuItemPressEvent {
|
|
149
171
|
itemText: string;
|
|
150
172
|
selectedText: string;
|
|
@@ -230,6 +252,17 @@ export interface NativeProps extends ViewProps {
|
|
|
230
252
|
*/
|
|
231
253
|
contextMenuItems?: ReadonlyArray<Readonly<ContextMenuItemConfig>>;
|
|
232
254
|
|
|
255
|
+
/**
|
|
256
|
+
* Controls built-in items in the text selection context menu.
|
|
257
|
+
* `format` toggles the Format submenu; `copyAsMarkdown` toggles the Copy as Markdown action.
|
|
258
|
+
*/
|
|
259
|
+
selectionMenuConfig: Readonly<InputSelectionMenuConfigInternal>;
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Controls which items appear inside the Format submenu.
|
|
263
|
+
*/
|
|
264
|
+
formatMenuConfig: Readonly<FormatMenuConfigInternal>;
|
|
265
|
+
|
|
233
266
|
/**
|
|
234
267
|
* Regex configuration for automatic link detection.
|
|
235
268
|
* Omit or pass undefined to use platform defaults.
|
|
@@ -322,6 +355,7 @@ interface NativeCommands {
|
|
|
322
355
|
viewRef: React.ElementRef<ComponentType>,
|
|
323
356
|
start: CodegenTypes.Int32
|
|
324
357
|
) => void;
|
|
358
|
+
copyToClipboard: (viewRef: React.ElementRef<ComponentType>) => void;
|
|
325
359
|
requestMarkdown: (
|
|
326
360
|
viewRef: React.ElementRef<ComponentType>,
|
|
327
361
|
requestId: CodegenTypes.Int32
|
|
@@ -351,6 +385,7 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
|
|
351
385
|
'insertMath',
|
|
352
386
|
'updateMath',
|
|
353
387
|
'removeMath',
|
|
388
|
+
'copyToClipboard',
|
|
354
389
|
'requestMarkdown',
|
|
355
390
|
'requestCaretRect',
|
|
356
391
|
],
|
|
@@ -230,6 +230,13 @@ export interface ContextMenuItemConfig {
|
|
|
230
230
|
export interface SelectionMenuConfig {
|
|
231
231
|
copyAsMarkdown: boolean;
|
|
232
232
|
copyImageUrl: boolean;
|
|
233
|
+
copyLabel: string;
|
|
234
|
+
copyAsMarkdownLabel: string;
|
|
235
|
+
copyImageUrlLabel: string;
|
|
236
|
+
copyImageUrlsLabel: string;
|
|
237
|
+
// Precomputed plural templates indexed by image count (0..100). Empty when no
|
|
238
|
+
// pluralLabels are set; native then uses copyImageUrlLabel/copyImageUrlsLabel.
|
|
239
|
+
copyImageUrlPluralTemplates: ReadonlyArray<string>;
|
|
233
240
|
}
|
|
234
241
|
|
|
235
242
|
export interface OnContextMenuItemPressEvent {
|
|
@@ -239,6 +246,35 @@ export interface OnContextMenuItemPressEvent {
|
|
|
239
246
|
selectionEnd: CodegenTypes.Int32;
|
|
240
247
|
}
|
|
241
248
|
|
|
249
|
+
export interface AccessibilityLabelsListProps {
|
|
250
|
+
bulletPoint: string;
|
|
251
|
+
nestedBulletPoint: string;
|
|
252
|
+
orderedItem: string;
|
|
253
|
+
nestedOrderedItem: string;
|
|
254
|
+
}
|
|
255
|
+
export interface AccessibilityLabelsBlockquoteProps {
|
|
256
|
+
quote: string;
|
|
257
|
+
nestedQuote: string;
|
|
258
|
+
}
|
|
259
|
+
export interface AccessibilityLabelsTableProps {
|
|
260
|
+
row: string;
|
|
261
|
+
}
|
|
262
|
+
export interface AccessibilityLabelsMathProps {
|
|
263
|
+
equation: string;
|
|
264
|
+
}
|
|
265
|
+
export interface AccessibilityLabelsRotorProps {
|
|
266
|
+
headings: string;
|
|
267
|
+
links: string;
|
|
268
|
+
images: string;
|
|
269
|
+
}
|
|
270
|
+
export interface AccessibilityLabelsProps {
|
|
271
|
+
list: Readonly<AccessibilityLabelsListProps>;
|
|
272
|
+
blockquote: Readonly<AccessibilityLabelsBlockquoteProps>;
|
|
273
|
+
table: Readonly<AccessibilityLabelsTableProps>;
|
|
274
|
+
math: Readonly<AccessibilityLabelsMathProps>;
|
|
275
|
+
rotor: Readonly<AccessibilityLabelsRotorProps>;
|
|
276
|
+
}
|
|
277
|
+
|
|
242
278
|
/**
|
|
243
279
|
* MD4C parser flags configuration.
|
|
244
280
|
* Controls how the markdown parser interprets certain syntax.
|
|
@@ -393,6 +429,7 @@ export interface NativeProps extends ViewProps {
|
|
|
393
429
|
* Built-in items to show in the text selection context menu.
|
|
394
430
|
*/
|
|
395
431
|
selectionMenuConfig: Readonly<SelectionMenuConfig>;
|
|
432
|
+
accessibilityLabels: Readonly<AccessibilityLabelsProps>;
|
|
396
433
|
/**
|
|
397
434
|
* Fired when a custom context menu item is pressed.
|
|
398
435
|
* Receives the item label, the currently selected text, and the selection range.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Default strings spoken by VoiceOver / TalkBack when the consumer does not
|
|
5
|
+
* provide an override. See `AccessibilityLabels` for the placeholder syntax
|
|
6
|
+
* and the rationale for the no-plural cardinal form.
|
|
7
|
+
*/
|
|
8
|
+
export const DEFAULT_ACCESSIBILITY_LABELS = {
|
|
9
|
+
list: {
|
|
10
|
+
bulletPoint: 'Bullet point',
|
|
11
|
+
nestedBulletPoint: 'Nested bullet point',
|
|
12
|
+
orderedItem: 'List item {n}',
|
|
13
|
+
nestedOrderedItem: 'Nested list item {n}'
|
|
14
|
+
},
|
|
15
|
+
blockquote: {
|
|
16
|
+
quote: 'Blockquote',
|
|
17
|
+
nestedQuote: 'Nested blockquote'
|
|
18
|
+
},
|
|
19
|
+
table: {
|
|
20
|
+
row: 'Row {n}: {content}'
|
|
21
|
+
},
|
|
22
|
+
math: {
|
|
23
|
+
equation: 'Math: {latex}'
|
|
24
|
+
},
|
|
25
|
+
rotor: {
|
|
26
|
+
headings: 'Headings',
|
|
27
|
+
links: 'Links',
|
|
28
|
+
images: 'Images'
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Resolves a partial `AccessibilityLabels` against `DEFAULT_ACCESSIBILITY_LABELS`,
|
|
34
|
+
* returning a fully-populated struct that native code can consume without any
|
|
35
|
+
* null checks. Override resolution is shallow per sub-group: if a consumer
|
|
36
|
+
* passes `{ list: { bulletPoint: 'Punkt' } }`, only that one field changes and
|
|
37
|
+
* the other list entries fall back to the defaults.
|
|
38
|
+
*/
|
|
39
|
+
export function resolveAccessibilityLabels(labels) {
|
|
40
|
+
return {
|
|
41
|
+
list: {
|
|
42
|
+
bulletPoint: labels?.list?.bulletPoint ?? DEFAULT_ACCESSIBILITY_LABELS.list.bulletPoint,
|
|
43
|
+
nestedBulletPoint: labels?.list?.nestedBulletPoint ?? DEFAULT_ACCESSIBILITY_LABELS.list.nestedBulletPoint,
|
|
44
|
+
orderedItem: labels?.list?.orderedItem ?? DEFAULT_ACCESSIBILITY_LABELS.list.orderedItem,
|
|
45
|
+
nestedOrderedItem: labels?.list?.nestedOrderedItem ?? DEFAULT_ACCESSIBILITY_LABELS.list.nestedOrderedItem
|
|
46
|
+
},
|
|
47
|
+
blockquote: {
|
|
48
|
+
quote: labels?.blockquote?.quote ?? DEFAULT_ACCESSIBILITY_LABELS.blockquote.quote,
|
|
49
|
+
nestedQuote: labels?.blockquote?.nestedQuote ?? DEFAULT_ACCESSIBILITY_LABELS.blockquote.nestedQuote
|
|
50
|
+
},
|
|
51
|
+
table: {
|
|
52
|
+
row: labels?.table?.row ?? DEFAULT_ACCESSIBILITY_LABELS.table.row
|
|
53
|
+
},
|
|
54
|
+
math: {
|
|
55
|
+
equation: labels?.math?.equation ?? DEFAULT_ACCESSIBILITY_LABELS.math.equation
|
|
56
|
+
},
|
|
57
|
+
rotor: {
|
|
58
|
+
headings: labels?.rotor?.headings ?? DEFAULT_ACCESSIBILITY_LABELS.rotor.headings,
|
|
59
|
+
links: labels?.rotor?.links ?? DEFAULT_ACCESSIBILITY_LABELS.rotor.links,
|
|
60
|
+
images: labels?.rotor?.images ?? DEFAULT_ACCESSIBILITY_LABELS.rotor.images
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=accessibilityLabelDefaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_ACCESSIBILITY_LABELS","list","bulletPoint","nestedBulletPoint","orderedItem","nestedOrderedItem","blockquote","quote","nestedQuote","table","row","math","equation","rotor","headings","links","images","resolveAccessibilityLabels","labels"],"sourceRoot":"../../src","sources":["accessibilityLabelDefaults.ts"],"mappings":";;AAKA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,4BAAyD,GAAG;EACvEC,IAAI,EAAE;IACJC,WAAW,EAAE,cAAc;IAC3BC,iBAAiB,EAAE,qBAAqB;IACxCC,WAAW,EAAE,eAAe;IAC5BC,iBAAiB,EAAE;EACrB,CAAC;EACDC,UAAU,EAAE;IACVC,KAAK,EAAE,YAAY;IACnBC,WAAW,EAAE;EACf,CAAC;EACDC,KAAK,EAAE;IACLC,GAAG,EAAE;EACP,CAAC;EACDC,IAAI,EAAE;IACJC,QAAQ,EAAE;EACZ,CAAC;EACDC,KAAK,EAAE;IACLC,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE,OAAO;IACdC,MAAM,EAAE;EACV;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,0BAA0BA,CACxCC,MAAuC,EACV;EAC7B,OAAO;IACLjB,IAAI,EAAE;MACJC,WAAW,EACTgB,MAAM,EAAEjB,IAAI,EAAEC,WAAW,IACzBF,4BAA4B,CAACC,IAAI,CAACC,WAAW;MAC/CC,iBAAiB,EACfe,MAAM,EAAEjB,IAAI,EAAEE,iBAAiB,IAC/BH,4BAA4B,CAACC,IAAI,CAACE,iBAAiB;MACrDC,WAAW,EACTc,MAAM,EAAEjB,IAAI,EAAEG,WAAW,IACzBJ,4BAA4B,CAACC,IAAI,CAACG,WAAW;MAC/CC,iBAAiB,EACfa,MAAM,EAAEjB,IAAI,EAAEI,iBAAiB,IAC/BL,4BAA4B,CAACC,IAAI,CAACI;IACtC,CAAC;IACDC,UAAU,EAAE;MACVC,KAAK,EACHW,MAAM,EAAEZ,UAAU,EAAEC,KAAK,IACzBP,4BAA4B,CAACM,UAAU,CAACC,KAAK;MAC/CC,WAAW,EACTU,MAAM,EAAEZ,UAAU,EAAEE,WAAW,IAC/BR,4BAA4B,CAACM,UAAU,CAACE;IAC5C,CAAC;IACDC,KAAK,EAAE;MACLC,GAAG,EAAEQ,MAAM,EAAET,KAAK,EAAEC,GAAG,IAAIV,4BAA4B,CAACS,KAAK,CAACC;IAChE,CAAC;IACDC,IAAI,EAAE;MACJC,QAAQ,EACNM,MAAM,EAAEP,IAAI,EAAEC,QAAQ,IAAIZ,4BAA4B,CAACW,IAAI,CAACC;IAChE,CAAC;IACDC,KAAK,EAAE;MACLC,QAAQ,EACNI,MAAM,EAAEL,KAAK,EAAEC,QAAQ,IAAId,4BAA4B,CAACa,KAAK,CAACC,QAAQ;MACxEC,KAAK,EAAEG,MAAM,EAAEL,KAAK,EAAEE,KAAK,IAAIf,4BAA4B,CAACa,KAAK,CAACE,KAAK;MACvEC,MAAM,EACJE,MAAM,EAAEL,KAAK,EAAEG,MAAM,IAAIhB,4BAA4B,CAACa,KAAK,CAACG;IAChE;EACF,CAAC;AACH","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
export { default as EnrichedMarkdownText } from "./native/EnrichedMarkdownText.js";
|
|
4
|
+
export { DEFAULT_ACCESSIBILITY_LABELS, resolveAccessibilityLabels } from "./accessibilityLabelDefaults.js";
|
|
4
5
|
export { EnrichedMarkdownTextInput } from "./EnrichedMarkdownTextInput.js";
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","EnrichedMarkdownText","EnrichedMarkdownTextInput"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,oBAAoB,QAAQ,kCAA+B;
|
|
1
|
+
{"version":3,"names":["default","EnrichedMarkdownText","DEFAULT_ACCESSIBILITY_LABELS","resolveAccessibilityLabels","EnrichedMarkdownTextInput"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,oBAAoB,QAAQ,kCAA+B;AAmB/E,SACEC,4BAA4B,EAC5BC,0BAA0B,QACrB,iCAA8B;AAErC,SAASC,yBAAyB,QAAQ,gCAA6B","ignoreList":[]}
|
|
@@ -4,7 +4,58 @@ import { useMemo, useCallback, useRef, useEffect } from 'react';
|
|
|
4
4
|
import EnrichedMarkdownTextNativeComponent from '../EnrichedMarkdownTextNativeComponent';
|
|
5
5
|
import EnrichedMarkdownNativeComponent from '../EnrichedMarkdownNativeComponent';
|
|
6
6
|
import { normalizeMarkdownStyle } from '../normalizeMarkdownStyle';
|
|
7
|
+
import { resolveAccessibilityLabels } from "../accessibilityLabelDefaults.js";
|
|
8
|
+
import { normalizeMenuItem, normalizeLegacyBooleanMenuItem } from "../normalizeMenuItem.js";
|
|
7
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
// Default English labels for the built-in selection menu actions. Defaults are
|
|
11
|
+
// resolved here (JS-side) so the native code always receives a concrete string.
|
|
12
|
+
const DEFAULT_COPY_LABEL = 'Copy';
|
|
13
|
+
const DEFAULT_COPY_AS_MARKDOWN_LABEL = 'Copy as Markdown';
|
|
14
|
+
const DEFAULT_COPY_IMAGE_URL_LABEL = 'Copy Image URL';
|
|
15
|
+
const DEFAULT_COPY_IMAGE_URLS_LABEL = 'Copy {count} Image URLs';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Resolves `pluralLabels` into a per-count template table (index = image count,
|
|
19
|
+
* 0..100) the native side can index without any locale logic. `Intl.PluralRules`
|
|
20
|
+
* selects the CLDR category for each count; missing categories fall back to the
|
|
21
|
+
* required `other`. Index 1 uses the singular `label` (the single-image case).
|
|
22
|
+
* Native uses `other` (copyImageUrlsLabel) for counts > 100, and falls back to
|
|
23
|
+
* the singular/`{count}` templates entirely when this returns an empty array
|
|
24
|
+
* (no plural labels set, or `Intl.PluralRules` unavailable).
|
|
25
|
+
*/
|
|
26
|
+
const buildPluralTemplates = (pluralLabels, singularLabel) => {
|
|
27
|
+
if (!pluralLabels) return [];
|
|
28
|
+
const IntlRef = Intl;
|
|
29
|
+
if (typeof IntlRef.PluralRules !== 'function') return [];
|
|
30
|
+
let pluralRules;
|
|
31
|
+
try {
|
|
32
|
+
// TODO: expose `copyImageUrl.pluralLocale?: string` so i18n apps can force
|
|
33
|
+
// a locale independent of the device. Today this resolves to the JS
|
|
34
|
+
// runtime's default locale, so on an English device only `one` and `other`
|
|
35
|
+
// ever fire even when richer plural labels are configured.
|
|
36
|
+
pluralRules = new IntlRef.PluralRules();
|
|
37
|
+
} catch {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
const {
|
|
41
|
+
other
|
|
42
|
+
} = pluralLabels;
|
|
43
|
+
const byCategory = {
|
|
44
|
+
zero: pluralLabels.zero ?? other,
|
|
45
|
+
one: pluralLabels.one ?? other,
|
|
46
|
+
two: pluralLabels.two ?? other,
|
|
47
|
+
few: pluralLabels.few ?? other,
|
|
48
|
+
many: pluralLabels.many ?? other,
|
|
49
|
+
other
|
|
50
|
+
};
|
|
51
|
+
const templates = [];
|
|
52
|
+
for (let n = 0; n <= 100; n++) {
|
|
53
|
+
// The literal single-image case uses the (non-plural) singular label; every
|
|
54
|
+
// other count uses its CLDR category form.
|
|
55
|
+
templates.push(n === 1 ? singularLabel : byCategory[pluralRules.select(n)] ?? other);
|
|
56
|
+
}
|
|
57
|
+
return templates;
|
|
58
|
+
};
|
|
8
59
|
const defaultMd4cFlags = {
|
|
9
60
|
underline: false,
|
|
10
61
|
superscript: false,
|
|
@@ -31,6 +82,7 @@ export const EnrichedMarkdownText = ({
|
|
|
31
82
|
spoilerOverlay = 'particles',
|
|
32
83
|
contextMenuItems,
|
|
33
84
|
selectionMenuConfig,
|
|
85
|
+
accessibilityLabels,
|
|
34
86
|
selectionColor,
|
|
35
87
|
selectionHandleColor,
|
|
36
88
|
textBreakStrategy,
|
|
@@ -115,10 +167,25 @@ export const EnrichedMarkdownText = ({
|
|
|
115
167
|
const normalizedStreamingConfig = useMemo(() => ({
|
|
116
168
|
tableMode
|
|
117
169
|
}), [tableMode]);
|
|
118
|
-
const normalizedSelectionMenuConfig = useMemo(() =>
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
170
|
+
const normalizedSelectionMenuConfig = useMemo(() => {
|
|
171
|
+
// The boolean acceptance is confined to this wrapper boundary via a single
|
|
172
|
+
// `as unknown` cast; the public type only exposes the object shape.
|
|
173
|
+
const config = selectionMenuConfig;
|
|
174
|
+
const copy = normalizeMenuItem(config?.copy, true, DEFAULT_COPY_LABEL);
|
|
175
|
+
const copyAsMarkdown = normalizeLegacyBooleanMenuItem(config?.copyAsMarkdown, 'selectionMenuConfig', 'copyAsMarkdown', true, DEFAULT_COPY_AS_MARKDOWN_LABEL);
|
|
176
|
+
const copyImageUrl = normalizeLegacyBooleanMenuItem(config?.copyImageUrl, 'selectionMenuConfig', 'copyImageUrl', true, DEFAULT_COPY_IMAGE_URL_LABEL);
|
|
177
|
+
const pluralLabels = config?.copyImageUrl?.pluralLabels;
|
|
178
|
+
return {
|
|
179
|
+
copyAsMarkdown: copyAsMarkdown.enabled,
|
|
180
|
+
copyImageUrl: copyImageUrl.enabled,
|
|
181
|
+
copyLabel: copy.label,
|
|
182
|
+
copyAsMarkdownLabel: copyAsMarkdown.label,
|
|
183
|
+
copyImageUrlLabel: copyImageUrl.label,
|
|
184
|
+
copyImageUrlsLabel: pluralLabels?.other ?? DEFAULT_COPY_IMAGE_URLS_LABEL,
|
|
185
|
+
copyImageUrlPluralTemplates: buildPluralTemplates(pluralLabels, copyImageUrl.label)
|
|
186
|
+
};
|
|
187
|
+
}, [selectionMenuConfig]);
|
|
188
|
+
const resolvedAccessibilityLabels = useMemo(() => resolveAccessibilityLabels(accessibilityLabels), [accessibilityLabels]);
|
|
122
189
|
const sharedProps = {
|
|
123
190
|
markdown,
|
|
124
191
|
markdownStyle: normalizedStyle,
|
|
@@ -137,6 +204,7 @@ export const EnrichedMarkdownText = ({
|
|
|
137
204
|
style: containerStyle,
|
|
138
205
|
contextMenuItems: nativeContextMenuItems,
|
|
139
206
|
selectionMenuConfig: normalizedSelectionMenuConfig,
|
|
207
|
+
accessibilityLabels: resolvedAccessibilityLabels,
|
|
140
208
|
onContextMenuItemPress: handleContextMenuItemPress,
|
|
141
209
|
selectionColor,
|
|
142
210
|
selectionHandleColor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useCallback","useRef","useEffect","EnrichedMarkdownTextNativeComponent","EnrichedMarkdownNativeComponent","normalizeMarkdownStyle","jsx","_jsx","defaultMd4cFlags","underline","superscript","subscript","latexMath","highlight","EnrichedMarkdownText","markdown","markdownStyle","containerStyle","onLinkPress","onLinkLongPress","onTaskListItemPress","enableLinkPreview","selectable","md4cFlags","allowFontScaling","maxFontSizeMultiplier","allowTrailingMargin","flavor","streamingAnimation","streamingConfig","spoilerOverlay","contextMenuItems","selectionMenuConfig","selectionColor","selectionHandleColor","textBreakStrategy","lineBreakStrategyIOS","writingDirection","rest","normalizedStyleRef","normalized","current","normalizedStyle","normalizedMd4cFlags","contextMenuCallbacksRef","Map","callbacksMap","item","set","text","onPress","nativeContextMenuItems","filter","visible","map","icon","handleContextMenuItemPress","e","itemText","selectedText","selectionStart","selectionEnd","nativeEvent","callback","get","selection","start","end","handleLinkPress","url","handleLinkLongPress","handleTaskListItemPress","index","checked","tableMode","normalizedStreamingConfig","normalizedSelectionMenuConfig","copyAsMarkdown","copyImageUrl","sharedProps","style","onContextMenuItemPress"],"sourceRoot":"../../../src","sources":["native/EnrichedMarkdownText.tsx"],"mappings":";;AAAA,SAASA,OAAO,EAAEC,WAAW,EAAEC,MAAM,EAAEC,SAAS,QAAQ,OAAO;AAC/D,OAAOC,mCAAmC,MAAM,wCAAwC;AAExF,OAAOC,+BAA+B,MAAM,oCAAoC;AAChF,SAASC,sBAAsB,QAAQ,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA;
|
|
1
|
+
{"version":3,"names":["useMemo","useCallback","useRef","useEffect","EnrichedMarkdownTextNativeComponent","EnrichedMarkdownNativeComponent","normalizeMarkdownStyle","resolveAccessibilityLabels","normalizeMenuItem","normalizeLegacyBooleanMenuItem","jsx","_jsx","DEFAULT_COPY_LABEL","DEFAULT_COPY_AS_MARKDOWN_LABEL","DEFAULT_COPY_IMAGE_URL_LABEL","DEFAULT_COPY_IMAGE_URLS_LABEL","buildPluralTemplates","pluralLabels","singularLabel","IntlRef","Intl","PluralRules","pluralRules","other","byCategory","zero","one","two","few","many","templates","n","push","select","defaultMd4cFlags","underline","superscript","subscript","latexMath","highlight","EnrichedMarkdownText","markdown","markdownStyle","containerStyle","onLinkPress","onLinkLongPress","onTaskListItemPress","enableLinkPreview","selectable","md4cFlags","allowFontScaling","maxFontSizeMultiplier","allowTrailingMargin","flavor","streamingAnimation","streamingConfig","spoilerOverlay","contextMenuItems","selectionMenuConfig","accessibilityLabels","selectionColor","selectionHandleColor","textBreakStrategy","lineBreakStrategyIOS","writingDirection","rest","normalizedStyleRef","normalized","current","normalizedStyle","normalizedMd4cFlags","contextMenuCallbacksRef","Map","callbacksMap","item","set","text","onPress","nativeContextMenuItems","filter","visible","map","icon","handleContextMenuItemPress","e","itemText","selectedText","selectionStart","selectionEnd","nativeEvent","callback","get","selection","start","end","handleLinkPress","url","handleLinkLongPress","handleTaskListItemPress","index","checked","tableMode","normalizedStreamingConfig","normalizedSelectionMenuConfig","config","copy","copyAsMarkdown","copyImageUrl","enabled","copyLabel","label","copyAsMarkdownLabel","copyImageUrlLabel","copyImageUrlsLabel","copyImageUrlPluralTemplates","resolvedAccessibilityLabels","sharedProps","style","onContextMenuItemPress"],"sourceRoot":"../../../src","sources":["native/EnrichedMarkdownText.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Not __DEV__-gated on purpose: deprecation warnings need to surface in
|
|
4
|
+
// staging/TestFlight/CI prod builds too.
|
|
5
|
+
const warned = new Set();
|
|
6
|
+
const warnOnce = (key, msg) => {
|
|
7
|
+
if (warned.has(key)) return;
|
|
8
|
+
warned.add(key);
|
|
9
|
+
console.warn(msg);
|
|
10
|
+
};
|
|
11
|
+
// TODO: revisit grouping cross-cutting utilities (this, styleUtils, linkVariantUtils,
|
|
12
|
+
// normalizeMarkdownStyle, etc.) into a shared module once the set grows further.
|
|
13
|
+
export const normalizeMenuItem = (raw, defaultEnabled, defaultLabel) => {
|
|
14
|
+
if (raw === undefined) return {
|
|
15
|
+
enabled: defaultEnabled,
|
|
16
|
+
label: defaultLabel
|
|
17
|
+
};
|
|
18
|
+
// Validate per leaf so an empty string stays an empty string (an emoji-only
|
|
19
|
+
// item is a legitimate use case), while null / non-object / wrong-typed
|
|
20
|
+
// fields fall back to defaults — `getBoolean` on the Android side throws on
|
|
21
|
+
// non-booleans, and a null root would crash JS on property access.
|
|
22
|
+
const obj = typeof raw === 'object' && raw !== null ? raw : {};
|
|
23
|
+
return {
|
|
24
|
+
enabled: typeof obj.enabled === 'boolean' ? obj.enabled : defaultEnabled,
|
|
25
|
+
label: typeof obj.label === 'string' ? obj.label : defaultLabel
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export const normalizeLegacyBooleanMenuItem = (raw, parentProp, field, defaultEnabled, defaultLabel) => {
|
|
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.`);
|
|
31
|
+
return {
|
|
32
|
+
enabled: raw,
|
|
33
|
+
label: defaultLabel
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return normalizeMenuItem(raw, defaultEnabled, defaultLabel);
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=normalizeMenuItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["warned","Set","warnOnce","key","msg","has","add","console","warn","normalizeMenuItem","raw","defaultEnabled","defaultLabel","undefined","enabled","label","obj","normalizeLegacyBooleanMenuItem","parentProp","field"],"sourceRoot":"../../src","sources":["normalizeMenuItem.ts"],"mappings":";;AAAA;AACA;AACA,MAAMA,MAAM,GAAG,IAAIC,GAAG,CAAS,CAAC;AAEhC,MAAMC,QAAQ,GAAGA,CAACC,GAAW,EAAEC,GAAW,KAAK;EAC7C,IAAIJ,MAAM,CAACK,GAAG,CAACF,GAAG,CAAC,EAAE;EACrBH,MAAM,CAACM,GAAG,CAACH,GAAG,CAAC;EACfI,OAAO,CAACC,IAAI,CAACJ,GAAG,CAAC;AACnB,CAAC;AAID;AACA;AACA,OAAO,MAAMK,iBAAiB,GAAGA,CAC/BC,GAAY,EACZC,cAAuB,EACvBC,YAAoB,KACG;EACvB,IAAIF,GAAG,KAAKG,SAAS,EACnB,OAAO;IAAEC,OAAO,EAAEH,cAAc;IAAEI,KAAK,EAAEH;EAAa,CAAC;EACzD;EACA;EACA;EACA;EACA,MAAMI,GAAG,GACP,OAAON,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,IAAI,GAClCA,GAAG,GACJ,CAAC,CAAC;EACR,OAAO;IACLI,OAAO,EAAE,OAAOE,GAAG,CAACF,OAAO,KAAK,SAAS,GAAGE,GAAG,CAACF,OAAO,GAAGH,cAAc;IACxEI,KAAK,EAAE,OAAOC,GAAG,CAACD,KAAK,KAAK,QAAQ,GAAGC,GAAG,CAACD,KAAK,GAAGH;EACrD,CAAC;AACH,CAAC;AAED,OAAO,MAAMK,8BAA8B,GAAGA,CAC5CP,GAAY,EACZQ,UAAkB,EAClBC,KAAa,EACbR,cAAuB,EACvBC,YAAoB,KACG;EACvB,IAAI,OAAOF,GAAG,KAAK,SAAS,EAAE;IAC5BR,QAAQ,CACN,GAAGgB,UAAU,IAAIC,KAAK,EAAE,EACxB,oCAAoCD,UAAU,IAAIC,KAAK,mBAAmB,GACxE,8BAA8BT,GAAG,8CACrC,CAAC;IACD,OAAO;MAAEI,OAAO,EAAEJ,GAAG;MAAEK,KAAK,EAAEH;IAAa,CAAC;EAC9C;EACA,OAAOH,iBAAiB,CAACC,GAAG,EAAEC,cAAc,EAAEC,YAAY,CAAC;AAC7D,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/AccessibilityLabels.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -191,6 +191,11 @@ export interface ContextMenuItemConfig {
|
|
|
191
191
|
export interface SelectionMenuConfig {
|
|
192
192
|
copyAsMarkdown: boolean;
|
|
193
193
|
copyImageUrl: boolean;
|
|
194
|
+
copyLabel: string;
|
|
195
|
+
copyAsMarkdownLabel: string;
|
|
196
|
+
copyImageUrlLabel: string;
|
|
197
|
+
copyImageUrlsLabel: string;
|
|
198
|
+
copyImageUrlPluralTemplates: ReadonlyArray<string>;
|
|
194
199
|
}
|
|
195
200
|
export interface OnContextMenuItemPressEvent {
|
|
196
201
|
itemText: string;
|
|
@@ -198,6 +203,34 @@ export interface OnContextMenuItemPressEvent {
|
|
|
198
203
|
selectionStart: CodegenTypes.Int32;
|
|
199
204
|
selectionEnd: CodegenTypes.Int32;
|
|
200
205
|
}
|
|
206
|
+
export interface AccessibilityLabelsListProps {
|
|
207
|
+
bulletPoint: string;
|
|
208
|
+
nestedBulletPoint: string;
|
|
209
|
+
orderedItem: string;
|
|
210
|
+
nestedOrderedItem: string;
|
|
211
|
+
}
|
|
212
|
+
export interface AccessibilityLabelsBlockquoteProps {
|
|
213
|
+
quote: string;
|
|
214
|
+
nestedQuote: string;
|
|
215
|
+
}
|
|
216
|
+
export interface AccessibilityLabelsTableProps {
|
|
217
|
+
row: string;
|
|
218
|
+
}
|
|
219
|
+
export interface AccessibilityLabelsMathProps {
|
|
220
|
+
equation: string;
|
|
221
|
+
}
|
|
222
|
+
export interface AccessibilityLabelsRotorProps {
|
|
223
|
+
headings: string;
|
|
224
|
+
links: string;
|
|
225
|
+
images: string;
|
|
226
|
+
}
|
|
227
|
+
export interface AccessibilityLabelsProps {
|
|
228
|
+
list: Readonly<AccessibilityLabelsListProps>;
|
|
229
|
+
blockquote: Readonly<AccessibilityLabelsBlockquoteProps>;
|
|
230
|
+
table: Readonly<AccessibilityLabelsTableProps>;
|
|
231
|
+
math: Readonly<AccessibilityLabelsMathProps>;
|
|
232
|
+
rotor: Readonly<AccessibilityLabelsRotorProps>;
|
|
233
|
+
}
|
|
201
234
|
/**
|
|
202
235
|
* MD4C parser flags configuration.
|
|
203
236
|
* Controls how the markdown parser interprets certain syntax.
|
|
@@ -350,6 +383,7 @@ export interface NativeProps extends ViewProps {
|
|
|
350
383
|
* Built-in items to show in the text selection context menu.
|
|
351
384
|
*/
|
|
352
385
|
selectionMenuConfig: Readonly<SelectionMenuConfig>;
|
|
386
|
+
accessibilityLabels: Readonly<AccessibilityLabelsProps>;
|
|
353
387
|
/**
|
|
354
388
|
* Fired when a custom context menu item is pressed.
|
|
355
389
|
* Receives the item label, the currently selected text, and the selection range.
|