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.
Files changed (150) hide show
  1. package/ReactNativeEnrichedMarkdown.podspec +62 -11
  2. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerDelegate.java +3 -0
  3. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerInterface.java +1 -0
  4. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerDelegate.java +9 -0
  5. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerInterface.java +3 -0
  6. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerDelegate.java +3 -0
  7. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerInterface.java +1 -0
  8. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.cpp +20 -0
  9. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.h +744 -0
  10. package/android/src/main/baseline-prof.txt +75 -2
  11. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdown.kt +62 -0
  12. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownInternalText.kt +10 -2
  13. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownManager.kt +10 -0
  14. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownText.kt +9 -2
  15. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownTextManager.kt +10 -0
  16. package/android/src/main/java/com/swmansion/enriched/markdown/accessibility/AccessibilityLabels.kt +15 -0
  17. package/android/src/main/java/com/swmansion/enriched/markdown/accessibility/MarkdownAccessibilityHelper.kt +44 -7
  18. package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputManager.kt +52 -0
  19. package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputView.kt +89 -11
  20. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/FormattingStore.kt +19 -0
  21. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputParser.kt +22 -3
  22. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputRemend.kt +1 -0
  23. package/android/src/main/java/com/swmansion/enriched/markdown/input/layout/InputMeasurementStore.kt +7 -1
  24. package/android/src/main/java/com/swmansion/enriched/markdown/input/toolbar/InputContextMenu.kt +54 -13
  25. package/android/src/main/java/com/swmansion/enriched/markdown/parser/MarkdownASTNode.kt +17 -0
  26. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/SpanStyleCache.kt +4 -4
  27. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/MarkdownViewManagerUtils.kt +30 -0
  28. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/LinkEvents.kt +22 -0
  29. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/SelectionActionMode.kt +36 -7
  30. package/android/src/main/java/com/swmansion/enriched/markdown/views/TableContainerView.kt +73 -3
  31. package/android/src/main/jni/CMakeLists.txt +15 -1
  32. package/android/src/math/java/com/swmansion/enriched/markdown/views/MathContainerView.kt +24 -2
  33. package/app.plugin.js +2 -1
  34. package/cpp/parser/MD4CParser.cpp +1 -1
  35. package/cpp/wasm/build.sh +9 -9
  36. package/docs/ACCESSIBILITY.md +172 -0
  37. package/docs/API_REFERENCE.md +948 -0
  38. package/docs/COPY_OPTIONS.md +127 -0
  39. package/docs/ELEMENTS_STRUCTURE.md +112 -0
  40. package/docs/IMAGE_CACHING.md +25 -0
  41. package/docs/INPUT.md +233 -0
  42. package/docs/LATEX_MATH.md +136 -0
  43. package/docs/MACOS.md +19 -0
  44. package/docs/MARKDOWN_STREAMING.md +36 -0
  45. package/docs/MENTIONS.md +97 -0
  46. package/docs/RTL.md +82 -0
  47. package/docs/STYLES.md +519 -0
  48. package/docs/TEXT.md +110 -0
  49. package/docs/WEB.md +49 -0
  50. package/ios/EnrichedMarkdown.mm +82 -25
  51. package/ios/EnrichedMarkdownText.mm +37 -5
  52. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.cpp +20 -0
  53. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.h +744 -0
  54. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/RCTComponentViewHelpers.h +15 -0
  55. package/ios/input/ENRMFormattingStore.h +5 -0
  56. package/ios/input/ENRMFormattingStore.mm +34 -0
  57. package/ios/input/ENRMInputTextView.h +2 -0
  58. package/ios/input/ENRMInputTextView.mm +8 -17
  59. package/ios/input/ENRMMarkdownSerializer.mm +1 -1
  60. package/ios/input/EnrichedMarkdownTextInput+ContextMenu.mm +71 -53
  61. package/ios/input/EnrichedMarkdownTextInput+Internal.h +26 -0
  62. package/ios/input/EnrichedMarkdownTextInput.h +1 -0
  63. package/ios/input/EnrichedMarkdownTextInput.mm +230 -29
  64. package/ios/input/styles/ENRMBoldStyleHandler.mm +3 -2
  65. package/ios/input/styles/ENRMItalicStyleHandler.mm +3 -2
  66. package/ios/renderer/AttributedRenderer.m +51 -6
  67. package/ios/renderer/ENRMMathInlineRenderer.m +5 -1
  68. package/ios/styles/ENRMFontSlot.h +1 -1
  69. package/ios/utils/ENRMAccessibilityLabels.h +36 -0
  70. package/ios/utils/ENRMAccessibilityLabels.m +5 -0
  71. package/ios/utils/EditMenuUtils+macOS.m +4 -5
  72. package/ios/utils/EditMenuUtils.h +70 -0
  73. package/ios/utils/EditMenuUtils.m +14 -11
  74. package/ios/utils/LastElementUtils.h +39 -2
  75. package/ios/utils/MarkdownAccessibilityElementBuilder.h +18 -16
  76. package/ios/utils/MarkdownAccessibilityElementBuilder.m +64 -32
  77. package/ios/utils/ParagraphStyleUtils.m +21 -2
  78. package/ios/views/ENRMMathContainerView.h +8 -0
  79. package/ios/views/ENRMMathContainerView.m +7 -5
  80. package/ios/views/ENRMTableIOSGridView.h +40 -0
  81. package/ios/views/ENRMTableIOSGridView.m +216 -0
  82. package/ios/views/EnrichedMarkdownInternalText.h +2 -0
  83. package/ios/views/EnrichedMarkdownInternalText.m +2 -0
  84. package/ios/views/TableContainerView.h +8 -0
  85. package/ios/views/TableContainerView.m +72 -128
  86. package/lib/module/EnrichedMarkdownNativeComponent.ts +37 -0
  87. package/lib/module/EnrichedMarkdownTextInput.js +48 -1
  88. package/lib/module/EnrichedMarkdownTextInput.js.map +1 -1
  89. package/lib/module/EnrichedMarkdownTextInputNativeComponent.ts +35 -0
  90. package/lib/module/EnrichedMarkdownTextNativeComponent.ts +37 -0
  91. package/lib/module/accessibilityLabelDefaults.js +64 -0
  92. package/lib/module/accessibilityLabelDefaults.js.map +1 -0
  93. package/lib/module/index.js +1 -0
  94. package/lib/module/index.js.map +1 -1
  95. package/lib/module/native/EnrichedMarkdownText.js +72 -4
  96. package/lib/module/native/EnrichedMarkdownText.js.map +1 -1
  97. package/lib/module/normalizeMenuItem.js +38 -0
  98. package/lib/module/normalizeMenuItem.js.map +1 -0
  99. package/lib/module/types/AccessibilityLabels.js +2 -0
  100. package/lib/module/types/AccessibilityLabels.js.map +1 -0
  101. package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts +34 -0
  102. package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts.map +1 -1
  103. package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts +55 -1
  104. package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts.map +1 -1
  105. package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts +30 -0
  106. package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts.map +1 -1
  107. package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts +34 -0
  108. package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts.map +1 -1
  109. package/lib/typescript/src/accessibilityLabelDefaults.d.ts +16 -0
  110. package/lib/typescript/src/accessibilityLabelDefaults.d.ts.map +1 -0
  111. package/lib/typescript/src/index.d.ts +4 -2
  112. package/lib/typescript/src/index.d.ts.map +1 -1
  113. package/lib/typescript/src/native/EnrichedMarkdownText.d.ts +3 -3
  114. package/lib/typescript/src/native/EnrichedMarkdownText.d.ts.map +1 -1
  115. package/lib/typescript/src/normalizeMenuItem.d.ts +7 -0
  116. package/lib/typescript/src/normalizeMenuItem.d.ts.map +1 -0
  117. package/lib/typescript/src/types/AccessibilityLabels.d.ts +114 -0
  118. package/lib/typescript/src/types/AccessibilityLabels.d.ts.map +1 -0
  119. package/lib/typescript/src/types/MarkdownTextProps.d.ts +78 -9
  120. package/lib/typescript/src/types/MarkdownTextProps.d.ts.map +1 -1
  121. package/package.json +4 -2
  122. package/plugin/build/withAndroidMath.js +19 -0
  123. package/plugin/build/withIosMath.js +28 -0
  124. package/plugin/build/withReactNativeEnrichedMarkdown.js +11 -0
  125. package/plugin/tsconfig.build.json +16 -0
  126. package/src/EnrichedMarkdownNativeComponent.ts +37 -0
  127. package/src/EnrichedMarkdownTextInput.tsx +117 -1
  128. package/src/EnrichedMarkdownTextInputNativeComponent.ts +35 -0
  129. package/src/EnrichedMarkdownTextNativeComponent.ts +37 -0
  130. package/src/accessibilityLabelDefaults.ts +83 -0
  131. package/src/index.tsx +11 -0
  132. package/src/native/EnrichedMarkdownText.tsx +120 -6
  133. package/src/normalizeMenuItem.ts +52 -0
  134. package/src/types/AccessibilityLabels.ts +118 -0
  135. package/src/types/MarkdownTextProps.ts +74 -9
  136. package/lib/module/plugin/withAndroidMath.js +0 -20
  137. package/lib/module/plugin/withAndroidMath.js.map +0 -1
  138. package/lib/module/plugin/withIosMath.js +0 -23
  139. package/lib/module/plugin/withIosMath.js.map +0 -1
  140. package/lib/module/plugin/withReactNativeEnrichedMarkdown.js +0 -16
  141. package/lib/module/plugin/withReactNativeEnrichedMarkdown.js.map +0 -1
  142. package/lib/typescript/src/plugin/withAndroidMath.d.ts +0 -5
  143. package/lib/typescript/src/plugin/withAndroidMath.d.ts.map +0 -1
  144. package/lib/typescript/src/plugin/withIosMath.d.ts +0 -5
  145. package/lib/typescript/src/plugin/withIosMath.d.ts.map +0 -1
  146. package/lib/typescript/src/plugin/withReactNativeEnrichedMarkdown.d.ts +0 -6
  147. package/lib/typescript/src/plugin/withReactNativeEnrichedMarkdown.d.ts.map +0 -1
  148. /package/{src/plugin → plugin/src}/withAndroidMath.ts +0 -0
  149. /package/{src/plugin → plugin/src}/withIosMath.ts +0 -0
  150. /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: 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":[]}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"names":["default","EnrichedMarkdownText","EnrichedMarkdownTextInput"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,oBAAoB,QAAQ,kCAA+B;AAe/E,SAASC,yBAAyB,QAAQ,gCAA6B","ignoreList":[]}
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
- copyAsMarkdown: selectionMenuConfig?.copyAsMarkdown ?? true,
120
- copyImageUrl: selectionMenuConfig?.copyImageUrl ?? true
121
- }), [selectionMenuConfig]);
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":"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","ignoreList":[]}
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,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=AccessibilityLabels.js.map
@@ -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.