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
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownTextProps.d.ts","sourceRoot":"","sources":["../../../../src/types/MarkdownTextProps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownTextProps.d.ts","sourceRoot":"","sources":["../../../../src/types/MarkdownTextProps.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-enriched-markdown-scaffold",
3
- "version": "0.6.0-scaffold.8",
3
+ "version": "0.7.4-scaffold.2",
4
4
  "description": "Markdown Text component for React Native",
5
5
  "main": "./lib/module/index",
6
6
  "module": "./lib/module/index",
@@ -24,7 +24,9 @@
24
24
  "!**/__fixtures__",
25
25
  "!**/__mocks__",
26
26
  "!**/.*",
27
- "app.plugin.js"
27
+ "app.plugin.js",
28
+ "plugin",
29
+ "docs"
28
30
  ],
29
31
  "keywords": [
30
32
  "react-native",
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withAndroidMath = void 0;
4
+ const config_plugins_1 = require("@expo/config-plugins");
5
+ const withAndroidMath = (config, { enableMath = true }) => {
6
+ if (enableMath) {
7
+ return config;
8
+ }
9
+ return (0, config_plugins_1.withGradleProperties)(config, (gradleConfig) => {
10
+ gradleConfig.modResults = gradleConfig.modResults.filter((prop) => prop.type !== 'property' || prop.key !== 'enrichedMarkdown.enableMath');
11
+ gradleConfig.modResults.push({
12
+ type: 'property',
13
+ key: 'enrichedMarkdown.enableMath',
14
+ value: 'false',
15
+ });
16
+ return gradleConfig;
17
+ });
18
+ };
19
+ exports.withAndroidMath = withAndroidMath;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.withIosMath = void 0;
7
+ const config_plugins_1 = require("@expo/config-plugins");
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const IOS_MATH_OPTION = "ENV['ENRICHED_MARKDOWN_ENABLE_MATH'] = '0'";
11
+ const withIosMath = (config, { enableMath = true }) => {
12
+ if (enableMath) {
13
+ return config;
14
+ }
15
+ return (0, config_plugins_1.withDangerousMod)(config, [
16
+ 'ios',
17
+ async (modConfig) => {
18
+ const file = path_1.default.join(modConfig.modRequest.platformProjectRoot, 'Podfile');
19
+ const contents = fs_1.default.readFileSync(file, 'utf8');
20
+ const lines = contents.split('\n');
21
+ const filteredLines = lines.filter((line) => !line.includes('ENRICHED_MARKDOWN_ENABLE_MATH'));
22
+ filteredLines.unshift(IOS_MATH_OPTION);
23
+ fs_1.default.writeFileSync(file, filteredLines.join('\n'));
24
+ return modConfig;
25
+ },
26
+ ]);
27
+ };
28
+ exports.withIosMath = withIosMath;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const withIosMath_1 = require("./withIosMath");
4
+ const withAndroidMath_1 = require("./withAndroidMath");
5
+ const withEnrichedMarkdown = (config, props) => {
6
+ const enableMath = props?.enableMath !== false;
7
+ config = (0, withAndroidMath_1.withAndroidMath)(config, { enableMath });
8
+ config = (0, withIosMath_1.withIosMath)(config, { enableMath });
9
+ return config;
10
+ };
11
+ exports.default = withEnrichedMarkdown;
@@ -0,0 +1,16 @@
1
+ {
2
+ "compilerOptions": {
3
+ "module": "commonjs",
4
+ "moduleResolution": "node",
5
+ "ignoreDeprecations": "6.0",
6
+ "target": "ES2020",
7
+ "outDir": "./build",
8
+ "rootDir": "./src",
9
+ "esModuleInterop": true,
10
+ "strict": true,
11
+ "skipLibCheck": true,
12
+ "declaration": false,
13
+ "types": ["node"]
14
+ },
15
+ "include": ["./src/**/*.ts"]
16
+ }
@@ -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.
@@ -394,6 +430,7 @@ export interface NativeProps extends ViewProps {
394
430
  * Built-in items to show in the text selection context menu.
395
431
  */
396
432
  selectionMenuConfig: Readonly<SelectionMenuConfig>;
433
+ accessibilityLabels: Readonly<AccessibilityLabelsProps>;
397
434
  /**
398
435
  * Fired when a custom context menu item is pressed.
399
436
  * Receives the item label, the currently selected text, and the selection range.
@@ -38,6 +38,7 @@ import type {
38
38
  ColorValue,
39
39
  } from 'react-native';
40
40
  import { normalizeMarkdownTextInputStyle } from './normalizeMarkdownTextInputStyle';
41
+ import { normalizeMenuItem } from './normalizeMenuItem';
41
42
  import { toNativeRegexConfig } from './utils/regexParser';
42
43
  import type { RefObject } from 'react';
43
44
 
@@ -149,10 +150,48 @@ export interface EnrichedMarkdownTextInputInstance {
149
150
  options?: InsertMathOptions
150
151
  ) => void;
151
152
  removeMath: (start: number) => void;
153
+ copyToClipboard: () => void;
152
154
  getMarkdown: () => Promise<string>;
153
155
  getCaretRect: () => Promise<CaretRect>;
154
156
  }
155
157
 
158
+ /**
159
+ * Per-item shape: `{ enabled }` toggles visibility, `label` overrides the
160
+ * English default. Wire `label` to your i18n library to localize the menu.
161
+ */
162
+ type MenuItem = { enabled?: boolean; label?: string };
163
+
164
+ export interface InputSelectionMenuConfig {
165
+ /**
166
+ * The built-in "Format" submenu (Bold, Italic, Underline, etc.) in the
167
+ * text selection context menu. `label` overrides the submenu title.
168
+ * @default { enabled: true, label: "Format" }
169
+ */
170
+ format?: MenuItem;
171
+ /**
172
+ * The built-in "Copy as Markdown" action in the text selection context
173
+ * menu. `label` overrides the action title.
174
+ * @default { enabled: true, label: "Copy as Markdown" }
175
+ */
176
+ copyAsMarkdown?: MenuItem;
177
+ }
178
+
179
+ /** Controls the individual items inside the Format submenu. */
180
+ export interface FormatMenuConfig {
181
+ /** @default { enabled: true, label: "Bold" } */
182
+ bold?: MenuItem;
183
+ /** @default { enabled: true, label: "Italic" } */
184
+ italic?: MenuItem;
185
+ /** @default { enabled: true, label: "Underline" } */
186
+ underline?: MenuItem;
187
+ /** @default { enabled: true, label: "Strikethrough" } */
188
+ strikethrough?: MenuItem;
189
+ /** @default { enabled: true, label: "Spoiler" } */
190
+ spoiler?: MenuItem;
191
+ /** @default { enabled: true, label: "Link" } */
192
+ link?: MenuItem;
193
+ }
194
+
156
195
  export interface EnrichedMarkdownTextInputProps extends Omit<
157
196
  ViewProps,
158
197
  'style' | 'children'
@@ -184,6 +223,22 @@ export interface EnrichedMarkdownTextInputProps extends Omit<
184
223
  onFocus?: () => void;
185
224
  onBlur?: () => void;
186
225
  contextMenuItems?: ContextMenuItem[];
226
+ /**
227
+ * Controls built-in items in the text selection context menu.
228
+ * Omitting the prop or any field reproduces today's exact menu.
229
+ * Custom app-provided actions are controlled separately via `contextMenuItems`.
230
+ * @default { format: true, copyAsMarkdown: true }
231
+ * @platform ios, android, macos
232
+ */
233
+ selectionMenuConfig?: InputSelectionMenuConfig;
234
+ /**
235
+ * Controls which items appear inside the Format submenu.
236
+ * Only effective when `selectionMenuConfig.format` is `true` (the default).
237
+ * Omitting the prop or any field shows all items.
238
+ * @default { bold: true, italic: true, underline: true, strikethrough: true, spoiler: true, link: true }
239
+ * @platform ios, android, macos
240
+ */
241
+ formatMenuConfig?: FormatMenuConfig;
187
242
  linkRegex?: RegExp | null;
188
243
  /**
189
244
  * Paragraph writing direction.
@@ -246,11 +301,15 @@ export const EnrichedMarkdownTextInput = ({
246
301
  onFocus,
247
302
  onBlur,
248
303
  contextMenuItems,
304
+ selectionMenuConfig,
305
+ formatMenuConfig,
249
306
  linkRegex: _linkRegex,
250
307
  writingDirection = 'first-strong',
251
308
  ...rest
252
309
  }: EnrichedMarkdownTextInputProps) => {
253
310
  const nativeRef = useRef<NativeRef | null>(null);
311
+ // Freeze `defaultValue` at mount (RN TextInput semantics): post-mount changes are ignored.
312
+ const initialDefaultValue = useRef(defaultValue).current;
254
313
 
255
314
  const nextRequestId = useRef(1);
256
315
  const pendingRequests = useRef(new Map<number, PendingRequest<string>>());
@@ -294,6 +353,60 @@ export const EnrichedMarkdownTextInput = ({
294
353
 
295
354
  const normalizedStyle = normalizeMarkdownTextInputStyle(markdownStyle);
296
355
 
356
+ const normalizedSelectionMenuConfig = useMemo(() => {
357
+ const format = normalizeMenuItem(
358
+ selectionMenuConfig?.format,
359
+ true,
360
+ 'Format'
361
+ );
362
+ const copyAsMarkdown = normalizeMenuItem(
363
+ selectionMenuConfig?.copyAsMarkdown,
364
+ true,
365
+ 'Copy as Markdown'
366
+ );
367
+ return {
368
+ format: format.enabled,
369
+ formatLabel: format.label,
370
+ copyAsMarkdown: copyAsMarkdown.enabled,
371
+ copyAsMarkdownLabel: copyAsMarkdown.label,
372
+ };
373
+ }, [selectionMenuConfig]);
374
+
375
+ const normalizedFormatMenuConfig = useMemo(() => {
376
+ const bold = normalizeMenuItem(formatMenuConfig?.bold, true, 'Bold');
377
+ const italic = normalizeMenuItem(formatMenuConfig?.italic, true, 'Italic');
378
+ const underline = normalizeMenuItem(
379
+ formatMenuConfig?.underline,
380
+ true,
381
+ 'Underline'
382
+ );
383
+ const strikethrough = normalizeMenuItem(
384
+ formatMenuConfig?.strikethrough,
385
+ true,
386
+ 'Strikethrough'
387
+ );
388
+ const spoiler = normalizeMenuItem(
389
+ formatMenuConfig?.spoiler,
390
+ true,
391
+ 'Spoiler'
392
+ );
393
+ const link = normalizeMenuItem(formatMenuConfig?.link, true, 'Link');
394
+ return {
395
+ bold: bold.enabled,
396
+ boldLabel: bold.label,
397
+ italic: italic.enabled,
398
+ italicLabel: italic.label,
399
+ underline: underline.enabled,
400
+ underlineLabel: underline.label,
401
+ strikethrough: strikethrough.enabled,
402
+ strikethroughLabel: strikethrough.label,
403
+ spoiler: spoiler.enabled,
404
+ spoilerLabel: spoiler.label,
405
+ link: link.enabled,
406
+ linkLabel: link.label,
407
+ };
408
+ }, [formatMenuConfig]);
409
+
297
410
  const linkRegex = useMemo(
298
411
  () => toNativeRegexConfig(_linkRegex),
299
412
  [_linkRegex]
@@ -476,6 +589,7 @@ export const EnrichedMarkdownTextInput = ({
476
589
  options?.display ?? false
477
590
  ),
478
591
  removeMath: (start) => Commands.removeMath(commandRef, start),
592
+ copyToClipboard: () => Commands.copyToClipboard(commandRef),
479
593
  getMarkdown: () =>
480
594
  new Promise<string>((resolve, reject) => {
481
595
  const requestId = nextRequestId.current++;
@@ -499,7 +613,7 @@ export const EnrichedMarkdownTextInput = ({
499
613
  ref={nativeRef}
500
614
  style={style}
501
615
  markdownStyle={normalizedStyle}
502
- defaultValue={defaultValue}
616
+ defaultValue={initialDefaultValue}
503
617
  placeholder={placeholder}
504
618
  placeholderTextColor={placeholderTextColor}
505
619
  editable={editable}
@@ -530,6 +644,8 @@ export const EnrichedMarkdownTextInput = ({
530
644
  handleCaretRectChange as NativeProps['onCaretRectChange']
531
645
  }
532
646
  contextMenuItems={nativeContextMenuItems}
647
+ selectionMenuConfig={normalizedSelectionMenuConfig}
648
+ formatMenuConfig={normalizedFormatMenuConfig}
533
649
  mentionIndicators={mentionIndicators}
534
650
  onContextMenuItemPress={
535
651
  handleContextMenuItemPress as NativeProps['onContextMenuItemPress']
@@ -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,83 @@
1
+ import type {
2
+ AccessibilityLabels,
3
+ ResolvedAccessibilityLabels,
4
+ } from './types/AccessibilityLabels';
5
+
6
+ /**
7
+ * Default strings spoken by VoiceOver / TalkBack when the consumer does not
8
+ * provide an override. See `AccessibilityLabels` for the placeholder syntax
9
+ * and the rationale for the no-plural cardinal form.
10
+ */
11
+ export const DEFAULT_ACCESSIBILITY_LABELS: ResolvedAccessibilityLabels = {
12
+ list: {
13
+ bulletPoint: 'Bullet point',
14
+ nestedBulletPoint: 'Nested bullet point',
15
+ orderedItem: 'List item {n}',
16
+ nestedOrderedItem: 'Nested list item {n}',
17
+ },
18
+ blockquote: {
19
+ quote: 'Blockquote',
20
+ nestedQuote: 'Nested blockquote',
21
+ },
22
+ table: {
23
+ row: 'Row {n}: {content}',
24
+ },
25
+ math: {
26
+ equation: 'Math: {latex}',
27
+ },
28
+ rotor: {
29
+ headings: 'Headings',
30
+ links: 'Links',
31
+ images: 'Images',
32
+ },
33
+ };
34
+
35
+ /**
36
+ * Resolves a partial `AccessibilityLabels` against `DEFAULT_ACCESSIBILITY_LABELS`,
37
+ * returning a fully-populated struct that native code can consume without any
38
+ * null checks. Override resolution is shallow per sub-group: if a consumer
39
+ * passes `{ list: { bulletPoint: 'Punkt' } }`, only that one field changes and
40
+ * the other list entries fall back to the defaults.
41
+ */
42
+ export function resolveAccessibilityLabels(
43
+ labels: AccessibilityLabels | undefined
44
+ ): ResolvedAccessibilityLabels {
45
+ return {
46
+ list: {
47
+ bulletPoint:
48
+ labels?.list?.bulletPoint ??
49
+ DEFAULT_ACCESSIBILITY_LABELS.list.bulletPoint,
50
+ nestedBulletPoint:
51
+ labels?.list?.nestedBulletPoint ??
52
+ DEFAULT_ACCESSIBILITY_LABELS.list.nestedBulletPoint,
53
+ orderedItem:
54
+ labels?.list?.orderedItem ??
55
+ DEFAULT_ACCESSIBILITY_LABELS.list.orderedItem,
56
+ nestedOrderedItem:
57
+ labels?.list?.nestedOrderedItem ??
58
+ DEFAULT_ACCESSIBILITY_LABELS.list.nestedOrderedItem,
59
+ },
60
+ blockquote: {
61
+ quote:
62
+ labels?.blockquote?.quote ??
63
+ DEFAULT_ACCESSIBILITY_LABELS.blockquote.quote,
64
+ nestedQuote:
65
+ labels?.blockquote?.nestedQuote ??
66
+ DEFAULT_ACCESSIBILITY_LABELS.blockquote.nestedQuote,
67
+ },
68
+ table: {
69
+ row: labels?.table?.row ?? DEFAULT_ACCESSIBILITY_LABELS.table.row,
70
+ },
71
+ math: {
72
+ equation:
73
+ labels?.math?.equation ?? DEFAULT_ACCESSIBILITY_LABELS.math.equation,
74
+ },
75
+ rotor: {
76
+ headings:
77
+ labels?.rotor?.headings ?? DEFAULT_ACCESSIBILITY_LABELS.rotor.headings,
78
+ links: labels?.rotor?.links ?? DEFAULT_ACCESSIBILITY_LABELS.rotor.links,
79
+ images:
80
+ labels?.rotor?.images ?? DEFAULT_ACCESSIBILITY_LABELS.rotor.images,
81
+ },
82
+ };
83
+ }
package/src/index.tsx CHANGED
@@ -6,12 +6,21 @@ export type {
6
6
  Md4cFlags,
7
7
  ContextMenuItem as TextContextMenuItem,
8
8
  SelectionMenuConfig as TextSelectionMenuConfig,
9
+ SelectionMenuPluralLabels as TextSelectionMenuPluralLabels,
9
10
  } from './native/EnrichedMarkdownText';
10
11
  export type {
11
12
  LinkPressEvent,
12
13
  LinkLongPressEvent,
13
14
  TaskListItemPressEvent,
14
15
  } from './types/events';
16
+ export type {
17
+ AccessibilityLabels,
18
+ ResolvedAccessibilityLabels,
19
+ } from './types/AccessibilityLabels';
20
+ export {
21
+ DEFAULT_ACCESSIBILITY_LABELS,
22
+ resolveAccessibilityLabels,
23
+ } from './accessibilityLabelDefaults';
15
24
 
16
25
  export { EnrichedMarkdownTextInput } from './EnrichedMarkdownTextInput';
17
26
  export type {
@@ -20,6 +29,8 @@ export type {
20
29
  MarkdownTextInputStyle,
21
30
  StyleState,
22
31
  ContextMenuItem,
32
+ InputSelectionMenuConfig,
33
+ FormatMenuConfig,
23
34
  OnLinkDetected,
24
35
  OnStartMentionEvent,
25
36
  OnChangeMentionEvent,