react-native-enriched-markdown-scaffold 1.0.2-scaffold.1 → 1.0.2-scaffold.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +2 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerDelegate.java +18 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerInterface.java +4 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerDelegate.java +18 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerInterface.java +4 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/EventEmitters.cpp +148 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/EventEmitters.h +120 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.cpp +30 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.h +210 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdown.kt +176 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownInternalText.kt +45 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownManager.kt +35 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownText.kt +112 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownTextManager.kt +34 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/MeasurementStore.kt +46 -8
- package/android/src/main/java/com/swmansion/enriched/markdown/events/CopyRequestEvent.kt +28 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/events/LinkLayoutEvent.kt +36 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/events/SelectionChangeEvent.kt +43 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputView.kt +25 -3
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/InputConnectionWrapper.kt +7 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/LinkRenderer.kt +37 -7
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/SpanStyleCache.kt +5 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/CodeBackgroundSpan.kt +13 -99
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/InlineChipPainter.kt +140 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/LinkChipSpans.kt +177 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/LinkSpan.kt +1 -6
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/InlineMathStyle.kt +16 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/LinkStyle.kt +36 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/LinkVariantEntry.kt +7 -3
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/MathStyle.kt +3 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/MarkdownViewManagerUtils.kt +51 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/input/PasteTextUtils.kt +34 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/conversion/HTMLGenerator.kt +2 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/conversion/MarkdownExtractor.kt +6 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/HeadlessActionMode.kt +88 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/LinkLayoutCollector.kt +100 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/SelectionActionMode.kt +53 -14
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/SelectionChangeReporter.kt +232 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/views/BlockMenuOptions.kt +64 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/views/CodeBlockContainerView.kt +29 -3
- package/android/src/main/java/com/swmansion/enriched/markdown/views/TableContainerView.kt +30 -7
- package/android/src/math/java/com/swmansion/enriched/markdown/renderer/MathInlineRenderer.kt +1 -0
- package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathInlineSpan.kt +13 -6
- package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathMeasureHelper.kt +2 -1
- package/android/src/math/java/com/swmansion/enriched/markdown/views/MathContainerView.kt +25 -9
- package/docs/API_REFERENCE.md +183 -4
- package/docs/COPY_OPTIONS.md +40 -0
- package/docs/INPUT.md +3 -1
- package/docs/MENTIONS.md +8 -1
- package/docs/STYLES.md +27 -0
- package/docs/TEXT.md +2 -0
- package/docs/WEB.md +1 -0
- package/ios/EnrichedMarkdown.mm +321 -9
- package/ios/EnrichedMarkdownText.mm +203 -6
- package/ios/attachments/ENRMMathInlineAttachment+macOS.m +2 -1
- package/ios/attachments/ENRMMathInlineAttachment.h +3 -0
- package/ios/attachments/ENRMMathInlineAttachment.m +2 -1
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/EventEmitters.cpp +148 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/EventEmitters.h +120 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.cpp +30 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.h +210 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/RCTComponentViewHelpers.h +50 -2
- package/ios/internals/MeasurementCache.h +8 -2
- package/ios/math/ENRMRaTeXBridge.swift +23 -5
- package/ios/renderer/ENRMMathInlineRenderer.m +1 -0
- package/ios/renderer/LinkRenderer.m +47 -15
- package/ios/styles/StyleConfig.h +20 -0
- package/ios/styles/StyleConfig.mm +84 -0
- package/ios/utils/CodeBackground.m +3 -65
- package/ios/utils/ENRMBlockMenu.h +66 -0
- package/ios/utils/ENRMChipDrawing.h +24 -0
- package/ios/utils/ENRMChipDrawing.m +83 -0
- package/ios/utils/ENRMLinkChip.h +70 -0
- package/ios/utils/ENRMLinkChip.m +213 -0
- package/ios/utils/ENRMLinkLayout.h +50 -0
- package/ios/utils/ENRMLinkLayout.m +45 -0
- package/ios/utils/ENRMSelectionChange.h +120 -0
- package/ios/utils/ENRMSelectionChange.m +282 -0
- package/ios/utils/EditMenuUtils+macOS.m +4 -1
- package/ios/utils/EditMenuUtils.h +35 -6
- package/ios/utils/EditMenuUtils.m +171 -15
- package/ios/utils/HTMLGenerator.m +2 -1
- package/ios/utils/MarkdownAccessibilityElementBuilder.m +3 -1
- package/ios/utils/MarkdownExtractor.m +2 -1
- package/ios/utils/RTFExportUtils.m +2 -0
- package/ios/utils/StylePropsUtils.h +47 -1
- package/ios/utils/TextViewLayoutManager.mm +3 -0
- package/ios/views/ENRMCodeBlockContainerView.h +16 -2
- package/ios/views/ENRMCodeBlockContainerView.m +22 -19
- package/ios/views/ENRMMathContainerView.h +11 -0
- package/ios/views/ENRMMathContainerView.m +17 -20
- package/ios/views/TableContainerView.h +14 -0
- package/ios/views/TableContainerView.m +34 -18
- package/lib/module/EnrichedMarkdownNativeComponent.ts +138 -1
- package/lib/module/EnrichedMarkdownTextNativeComponent.ts +138 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/jest/index.js +14 -0
- package/lib/module/jest/index.js.map +1 -1
- package/lib/module/native/EnrichedMarkdownText.js +169 -11
- package/lib/module/native/EnrichedMarkdownText.js.map +1 -1
- package/lib/module/normalizeMarkdownStyle.js +17 -4
- package/lib/module/normalizeMarkdownStyle.js.map +1 -1
- package/lib/module/normalizeMarkdownStyle.web.js +17 -4
- package/lib/module/normalizeMarkdownStyle.web.js.map +1 -1
- package/lib/module/web/EnrichedMarkdownText.js +6 -3
- package/lib/module/web/EnrichedMarkdownText.js.map +1 -1
- package/lib/module/web/renderers/InlineRenderers.js +96 -3
- package/lib/module/web/renderers/InlineRenderers.js.map +1 -1
- package/lib/module/web/styles.js +18 -0
- package/lib/module/web/styles.js.map +1 -1
- package/lib/module/web/utils.js +13 -0
- package/lib/module/web/utils.js.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts +123 -2
- package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts +123 -2
- package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/index.web.d.ts +1 -1
- package/lib/typescript/src/index.web.d.ts.map +1 -1
- package/lib/typescript/src/jest/index.d.ts +1 -1
- package/lib/typescript/src/jest/index.d.ts.map +1 -1
- package/lib/typescript/src/native/EnrichedMarkdownText.d.ts +5 -5
- package/lib/typescript/src/native/EnrichedMarkdownText.d.ts.map +1 -1
- package/lib/typescript/src/normalizeMarkdownStyle.d.ts.map +1 -1
- package/lib/typescript/src/normalizeMarkdownStyle.web.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownStyle.d.ts +50 -5
- package/lib/typescript/src/types/MarkdownStyle.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownStyleInternal.d.ts +12 -0
- package/lib/typescript/src/types/MarkdownStyleInternal.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownTextProps.d.ts +144 -11
- package/lib/typescript/src/types/MarkdownTextProps.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownTextProps.web.d.ts +41 -1
- package/lib/typescript/src/types/MarkdownTextProps.web.d.ts.map +1 -1
- package/lib/typescript/src/types/events.d.ts +66 -0
- package/lib/typescript/src/types/events.d.ts.map +1 -1
- package/lib/typescript/src/web/EnrichedMarkdownText.d.ts +1 -1
- package/lib/typescript/src/web/EnrichedMarkdownText.d.ts.map +1 -1
- package/lib/typescript/src/web/renderers/InlineRenderers.d.ts.map +1 -1
- package/lib/typescript/src/web/styles.d.ts.map +1 -1
- package/lib/typescript/src/web/types.d.ts +4 -0
- package/lib/typescript/src/web/types.d.ts.map +1 -1
- package/lib/typescript/src/web/utils.d.ts +4 -0
- package/lib/typescript/src/web/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/EnrichedMarkdownNativeComponent.ts +138 -1
- package/src/EnrichedMarkdownTextNativeComponent.ts +138 -1
- package/src/index.tsx +6 -0
- package/src/index.web.tsx +5 -1
- package/src/jest/index.tsx +22 -1
- package/src/native/EnrichedMarkdownText.tsx +220 -9
- package/src/normalizeMarkdownStyle.ts +15 -0
- package/src/normalizeMarkdownStyle.web.ts +13 -0
- package/src/types/MarkdownStyle.ts +51 -5
- package/src/types/MarkdownStyleInternal.ts +12 -0
- package/src/types/MarkdownTextProps.ts +151 -11
- package/src/types/MarkdownTextProps.web.ts +43 -1
- package/src/types/events.ts +69 -0
- package/src/web/EnrichedMarkdownText.tsx +10 -3
- package/src/web/renderers/InlineRenderers.tsx +111 -3
- package/src/web/styles.ts +25 -0
- package/src/web/types.ts +4 -0
- package/src/web/utils.ts +8 -0
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
codegenNativeComponent,
|
|
3
|
+
codegenNativeCommands,
|
|
3
4
|
type ViewProps,
|
|
4
5
|
type CodegenTypes,
|
|
5
6
|
type ColorValue,
|
|
7
|
+
type HostComponent,
|
|
6
8
|
} from 'react-native';
|
|
9
|
+
import type React from 'react';
|
|
7
10
|
|
|
8
11
|
// All block styles extend this interface
|
|
9
12
|
interface BaseBlockStyleInternal {
|
|
@@ -75,6 +78,11 @@ interface LinkStyleInternal {
|
|
|
75
78
|
color: ColorValue;
|
|
76
79
|
underline: boolean;
|
|
77
80
|
backgroundColor: ColorValue;
|
|
81
|
+
borderRadius: CodegenTypes.Float;
|
|
82
|
+
paddingHorizontal: CodegenTypes.Float;
|
|
83
|
+
paddingVertical: CodegenTypes.Float;
|
|
84
|
+
borderColor: ColorValue;
|
|
85
|
+
borderWidth: CodegenTypes.Float;
|
|
78
86
|
}
|
|
79
87
|
|
|
80
88
|
// Mirrors EnrichedMarkdownNativeComponent.ts — kept in sync manually (codegen spec files must be self-contained).
|
|
@@ -83,6 +91,11 @@ interface LinkVariantEntryInternal {
|
|
|
83
91
|
color: ColorValue;
|
|
84
92
|
underline: boolean;
|
|
85
93
|
backgroundColor: ColorValue;
|
|
94
|
+
borderRadius: CodegenTypes.Float;
|
|
95
|
+
paddingHorizontal: CodegenTypes.Float;
|
|
96
|
+
paddingVertical: CodegenTypes.Float;
|
|
97
|
+
borderColor: ColorValue;
|
|
98
|
+
borderWidth: CodegenTypes.Float;
|
|
86
99
|
}
|
|
87
100
|
|
|
88
101
|
interface StrongStyleInternal {
|
|
@@ -169,12 +182,14 @@ interface MathStyleInternal {
|
|
|
169
182
|
marginBottom: CodegenTypes.Float;
|
|
170
183
|
textAlign: string;
|
|
171
184
|
fontWeight: string;
|
|
185
|
+
glyphOverflow: CodegenTypes.Float;
|
|
172
186
|
}
|
|
173
187
|
|
|
174
188
|
interface InlineMathStyleInternal {
|
|
175
189
|
color: ColorValue;
|
|
176
190
|
paddingVertical: CodegenTypes.Float;
|
|
177
191
|
fontWeight: string;
|
|
192
|
+
glyphOverflow: CodegenTypes.Float;
|
|
178
193
|
}
|
|
179
194
|
|
|
180
195
|
interface SpoilerParticlesStyleInternal {
|
|
@@ -246,6 +261,59 @@ export interface LinkLongPressEvent {
|
|
|
246
261
|
url: string;
|
|
247
262
|
}
|
|
248
263
|
|
|
264
|
+
/**
|
|
265
|
+
* `fragments` holds one entry per laid-out line of a link (a wrapping link
|
|
266
|
+
* yields several). Rects are in dp, relative to the native view's origin, and
|
|
267
|
+
* cover the drawn chip (glyphs + padding). Flattened rather than nested per
|
|
268
|
+
* link, and written inline, because codegen only accepts inline object
|
|
269
|
+
* literals as event array elements.
|
|
270
|
+
*/
|
|
271
|
+
export interface LinkLayoutEvent {
|
|
272
|
+
fragments: {
|
|
273
|
+
linkIndex: CodegenTypes.Int32;
|
|
274
|
+
url: string;
|
|
275
|
+
text: string;
|
|
276
|
+
x: CodegenTypes.Double;
|
|
277
|
+
y: CodegenTypes.Double;
|
|
278
|
+
width: CodegenTypes.Double;
|
|
279
|
+
height: CodegenTypes.Double;
|
|
280
|
+
}[];
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Current text selection, or a long-pressed table / math / code block while
|
|
285
|
+
* `contextMenuHidden` is on. `active: false` means the selection was cleared
|
|
286
|
+
* (every other field is then empty / zero). Rects are in dp / pt, relative to
|
|
287
|
+
* the native view's origin; rect objects are written inline because codegen
|
|
288
|
+
* only accepts inline object literals in event payloads.
|
|
289
|
+
*/
|
|
290
|
+
export interface SelectionChangeEvent {
|
|
291
|
+
active: boolean;
|
|
292
|
+
source: string;
|
|
293
|
+
text: string;
|
|
294
|
+
markdown: string;
|
|
295
|
+
whole: boolean;
|
|
296
|
+
rect: {
|
|
297
|
+
x: CodegenTypes.Double;
|
|
298
|
+
y: CodegenTypes.Double;
|
|
299
|
+
width: CodegenTypes.Double;
|
|
300
|
+
height: CodegenTypes.Double;
|
|
301
|
+
};
|
|
302
|
+
startRect: {
|
|
303
|
+
x: CodegenTypes.Double;
|
|
304
|
+
y: CodegenTypes.Double;
|
|
305
|
+
width: CodegenTypes.Double;
|
|
306
|
+
height: CodegenTypes.Double;
|
|
307
|
+
};
|
|
308
|
+
endRect: {
|
|
309
|
+
x: CodegenTypes.Double;
|
|
310
|
+
y: CodegenTypes.Double;
|
|
311
|
+
width: CodegenTypes.Double;
|
|
312
|
+
height: CodegenTypes.Double;
|
|
313
|
+
};
|
|
314
|
+
adjusting: boolean;
|
|
315
|
+
}
|
|
316
|
+
|
|
249
317
|
export interface TaskListItemPressEvent {
|
|
250
318
|
index: CodegenTypes.Int32;
|
|
251
319
|
checked: boolean;
|
|
@@ -257,6 +325,14 @@ export interface CopyPressEvent {
|
|
|
257
325
|
language: string;
|
|
258
326
|
}
|
|
259
327
|
|
|
328
|
+
export interface CopyRequestEvent {
|
|
329
|
+
// 'selection' | 'math' | 'table' | 'code'
|
|
330
|
+
source: string;
|
|
331
|
+
markdown: string;
|
|
332
|
+
text: string;
|
|
333
|
+
whole: boolean;
|
|
334
|
+
}
|
|
335
|
+
|
|
260
336
|
export interface ContextMenuItemConfig {
|
|
261
337
|
text: string;
|
|
262
338
|
icon?: string;
|
|
@@ -277,6 +353,16 @@ export interface SelectionMenuConfig {
|
|
|
277
353
|
// Precomputed plural templates indexed by image count (0..100). Empty when no
|
|
278
354
|
// pluralLabels are set; native then uses copyImageUrlLabel/copyImageUrlsLabel.
|
|
279
355
|
copyImageUrlPluralTemplates: ReadonlyArray<string>;
|
|
356
|
+
// false removes the Copy item from the text and block menus.
|
|
357
|
+
copyEnabled: boolean;
|
|
358
|
+
// true: Copy writes Markdown (plain text) instead of rich text / raw block content.
|
|
359
|
+
copyFormatMarkdown: boolean;
|
|
360
|
+
// true: the text selection menu drops every system-provided item.
|
|
361
|
+
systemItemsNone: boolean;
|
|
362
|
+
// false hides the copy button in the code block header.
|
|
363
|
+
codeBlockCopyButton: boolean;
|
|
364
|
+
// true: the Copy item emits onCopyRequest instead of writing the clipboard.
|
|
365
|
+
interceptCopy: boolean;
|
|
280
366
|
}
|
|
281
367
|
|
|
282
368
|
export interface OnContextMenuItemPressEvent {
|
|
@@ -383,6 +469,30 @@ export interface NativeProps extends ViewProps {
|
|
|
383
469
|
* - Android: Handles long press gestures on links.
|
|
384
470
|
*/
|
|
385
471
|
onLinkLongPress?: CodegenTypes.BubblingEventHandler<LinkLongPressEvent>;
|
|
472
|
+
/**
|
|
473
|
+
* When true, the view reports the laid-out rects of every link through
|
|
474
|
+
* `onLinkLayout` (after each render and whenever its size changes).
|
|
475
|
+
* Set by the JS wrapper only when `renderLinkDecoration` is provided.
|
|
476
|
+
* @default false
|
|
477
|
+
*/
|
|
478
|
+
emitLinkLayout?: CodegenTypes.WithDefault<boolean, false>;
|
|
479
|
+
/**
|
|
480
|
+
* Fired with the rects of every link fragment while `emitLinkLayout` is on.
|
|
481
|
+
* Deduplicated: not re-fired when the payload is unchanged.
|
|
482
|
+
*/
|
|
483
|
+
onLinkLayout?: CodegenTypes.DirectEventHandler<LinkLayoutEvent>;
|
|
484
|
+
/**
|
|
485
|
+
* When true, the view reports selection changes (and, with
|
|
486
|
+
* `contextMenuHidden`, block long-presses) through `onSelectionChange`.
|
|
487
|
+
* Set by the JS wrapper only when `onSelectionChange` is provided.
|
|
488
|
+
* @default false
|
|
489
|
+
*/
|
|
490
|
+
emitSelectionChange?: CodegenTypes.WithDefault<boolean, false>;
|
|
491
|
+
/**
|
|
492
|
+
* Fired while `emitSelectionChange` is on: coalesced to one event per frame,
|
|
493
|
+
* deduplicated, and `active: false` once the selection is gone.
|
|
494
|
+
*/
|
|
495
|
+
onSelectionChange?: CodegenTypes.DirectEventHandler<SelectionChangeEvent>;
|
|
386
496
|
/**
|
|
387
497
|
* Callback fired when a task list checkbox is tapped.
|
|
388
498
|
* Receives the 0-based task index, current checked state, and the item's plain text.
|
|
@@ -403,6 +513,12 @@ export interface NativeProps extends ViewProps {
|
|
|
403
513
|
* action. Receives the copied code and its language.
|
|
404
514
|
*/
|
|
405
515
|
onCopyPress?: CodegenTypes.BubblingEventHandler<CopyPressEvent>;
|
|
516
|
+
/**
|
|
517
|
+
* Fired instead of writing the clipboard when the Copy item of the text
|
|
518
|
+
* selection menu or a table / math / code block menu is pressed while
|
|
519
|
+
* `selectionMenuConfig.interceptCopy` is set.
|
|
520
|
+
*/
|
|
521
|
+
onCopyRequest?: CodegenTypes.BubblingEventHandler<CopyRequestEvent>;
|
|
406
522
|
/**
|
|
407
523
|
* Controls whether the system link preview is shown on long press (iOS only).
|
|
408
524
|
*
|
|
@@ -416,6 +532,16 @@ export interface NativeProps extends ViewProps {
|
|
|
416
532
|
* @default true
|
|
417
533
|
*/
|
|
418
534
|
enableLinkPreview?: CodegenTypes.WithDefault<boolean, true>;
|
|
535
|
+
/**
|
|
536
|
+
* When `true`, long-pressing a link selects its label and shows the
|
|
537
|
+
* selection edit menu instead of the system link preview (iOS only).
|
|
538
|
+
* Takes precedence over `enableLinkPreview` and `onLinkLongPress`.
|
|
539
|
+
*
|
|
540
|
+
* Android: No-op.
|
|
541
|
+
*
|
|
542
|
+
* @default false
|
|
543
|
+
*/
|
|
544
|
+
linkLongPressSelects?: CodegenTypes.WithDefault<boolean, false>;
|
|
419
545
|
/**
|
|
420
546
|
* - iOS: Controls text selection and link previews on long press.
|
|
421
547
|
* - Android: Controls text selection.
|
|
@@ -529,6 +655,17 @@ export interface NativeProps extends ViewProps {
|
|
|
529
655
|
writingDirection?: CodegenTypes.WithDefault<string, 'first-strong'>;
|
|
530
656
|
}
|
|
531
657
|
|
|
658
|
+
type ComponentType = HostComponent<NativeProps>;
|
|
659
|
+
|
|
660
|
+
interface NativeCommands {
|
|
661
|
+
/** Clears the text selection (and any active block) and fires `onSelectionChange` with `active: false`. */
|
|
662
|
+
clearSelection: (viewRef: React.ElementRef<ComponentType>) => void;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
|
666
|
+
supportedCommands: ['clearSelection'],
|
|
667
|
+
});
|
|
668
|
+
|
|
532
669
|
export default codegenNativeComponent<NativeProps>('EnrichedMarkdownText', {
|
|
533
670
|
interfaceOnly: true,
|
|
534
|
-
})
|
|
671
|
+
}) as HostComponent<NativeProps>;
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AA2B/E,SACEC,4BAA4B,EAC5BC,0BAA0B,QACrB,iCAA8B;AAErC,SAASC,yBAAyB,QAAQ,gCAA6B","ignoreList":[]}
|
package/lib/module/jest/index.js
CHANGED
|
@@ -143,6 +143,7 @@ export const EnrichedMarkdownTextInput = ({
|
|
|
143
143
|
});
|
|
144
144
|
};
|
|
145
145
|
export const EnrichedMarkdownText = ({
|
|
146
|
+
ref,
|
|
146
147
|
markdown,
|
|
147
148
|
containerStyle,
|
|
148
149
|
testID,
|
|
@@ -156,7 +157,9 @@ export const EnrichedMarkdownText = ({
|
|
|
156
157
|
onLinkPress: _onLinkPress,
|
|
157
158
|
onLinkLongPress: _onLinkLongPress,
|
|
158
159
|
onTaskListItemPress: _onTaskListItemPress,
|
|
160
|
+
onSelectionChange: _onSelectionChange,
|
|
159
161
|
enableLinkPreview: _enableLinkPreview,
|
|
162
|
+
linkLongPressSelects: _linkLongPressSelects,
|
|
160
163
|
selectable: _selectable,
|
|
161
164
|
md4cFlags: _md4cFlags,
|
|
162
165
|
allowFontScaling: _allowFontScaling,
|
|
@@ -176,6 +179,17 @@ export const EnrichedMarkdownText = ({
|
|
|
176
179
|
lineBreakStrategyIOS: _lineBreakStrategyIOS,
|
|
177
180
|
writingDirection: _writingDirection
|
|
178
181
|
}) => {
|
|
182
|
+
const instanceRef = useRef(null);
|
|
183
|
+
if (instanceRef.current === null) {
|
|
184
|
+
instanceRef.current = {
|
|
185
|
+
// No native selection under Jest; the mock records the call.
|
|
186
|
+
clearSelection: spy(() => {}),
|
|
187
|
+
measure: spy(callback => callback(0, 0, 0, 0, 0, 0)),
|
|
188
|
+
measureInWindow: spy(callback => callback(0, 0, 0, 0)),
|
|
189
|
+
measureLayout: spy((_relativeToNativeNode, onSuccess) => onSuccess(0, 0, 0, 0))
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
useImperativeHandle(ref, () => instanceRef.current);
|
|
179
193
|
return /*#__PURE__*/_jsx(Text, {
|
|
180
194
|
style: containerStyle,
|
|
181
195
|
testID: testID,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useImperativeHandle","useRef","useState","Text","TextInput","jsx","_jsx","DEFAULT_ACCESSIBILITY_LABELS","resolveAccessibilityLabels","spy","impl","jest","fn","EMPTY_CARET_RECT","x","y","width","height","EnrichedMarkdownTextInput","ref","defaultValue","onChangeText","onChangeMarkdown","onFocus","onBlur","editable","placeholder","placeholderTextColor","autoFocus","multiline","scrollEnabled","style","testID","accessible","accessibilityLabel","accessibilityHint","accessibilityRole","accessibilityState","nativeID","markdownStyle","_markdownStyle","cursorColor","_cursorColor","selectionColor","_selectionColor","autoCapitalize","_autoCapitalize","onChangeSelection","_onChangeSelection","onChangeState","_onChangeState","onKeyPress","_onKeyPress","onCaretRectChange","_onCaretRectChange","onLinkDetected","_onLinkDetected","mentionIndicators","_mentionIndicators","onStartMention","_onStartMention","onChangeMention","_onChangeMention","onEndMention","_onEndMention","contextMenuItems","_contextMenuItems","selectionMenuConfig","_selectionMenuConfig","formatMenuConfig","_formatMenuConfig","linkRegex","_linkRegex","writingDirection","_writingDirection","text","setText","textRef","inputRef","applyText","next","current","handleChangeText","instanceRef","focus","blur","measure","callback","measureInWindow","measureLayout","_relativeToNativeNode","onSuccess","setValue","markdown","setSelection","_start","_end","toggleBold","toggleItalic","toggleUnderline","toggleStrikethrough","toggleSpoiler","toggleHeading","_level","toggleUnorderedList","toggleOrderedList","indentList","outdentList","setLink","_url","insertLink","_text","insertText","insertMention","_displayText","startMention","_indicator","removeLink","copyToClipboard","resolvePaste","_markdown","insertMath","_latex","_options","updateMath","removeMath","getMarkdown","Promise","resolve","getCaretRect","value","EnrichedMarkdownText","containerStyle","onLinkPress","_onLinkPress","onLinkLongPress","_onLinkLongPress","onTaskListItemPress","_onTaskListItemPress","enableLinkPreview","_enableLinkPreview","selectable","_selectable","md4cFlags","_md4cFlags","allowFontScaling","_allowFontScaling","maxFontSizeMultiplier","_maxFontSizeMultiplier","allowTrailingMargin","_allowTrailingMargin","flavor","_flavor","streamingAnimation","_streamingAnimation","streamingConfig","_streamingConfig","spoilerOverlay","_spoilerOverlay","imageRequestHeaders","_imageRequestHeaders","accessibilityLabels","_accessibilityLabels","selectionHandleColor","_selectionHandleColor","textBreakStrategy","_textBreakStrategy","lineBreakStrategyIOS","_lineBreakStrategyIOS","children"],"sourceRoot":"../../../src","sources":["jest/index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,mBAAmB,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAE7D,SAASC,IAAI,EAAEC,SAAS,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;
|
|
1
|
+
{"version":3,"names":["useImperativeHandle","useRef","useState","Text","TextInput","jsx","_jsx","DEFAULT_ACCESSIBILITY_LABELS","resolveAccessibilityLabels","spy","impl","jest","fn","EMPTY_CARET_RECT","x","y","width","height","EnrichedMarkdownTextInput","ref","defaultValue","onChangeText","onChangeMarkdown","onFocus","onBlur","editable","placeholder","placeholderTextColor","autoFocus","multiline","scrollEnabled","style","testID","accessible","accessibilityLabel","accessibilityHint","accessibilityRole","accessibilityState","nativeID","markdownStyle","_markdownStyle","cursorColor","_cursorColor","selectionColor","_selectionColor","autoCapitalize","_autoCapitalize","onChangeSelection","_onChangeSelection","onChangeState","_onChangeState","onKeyPress","_onKeyPress","onCaretRectChange","_onCaretRectChange","onLinkDetected","_onLinkDetected","mentionIndicators","_mentionIndicators","onStartMention","_onStartMention","onChangeMention","_onChangeMention","onEndMention","_onEndMention","contextMenuItems","_contextMenuItems","selectionMenuConfig","_selectionMenuConfig","formatMenuConfig","_formatMenuConfig","linkRegex","_linkRegex","writingDirection","_writingDirection","text","setText","textRef","inputRef","applyText","next","current","handleChangeText","instanceRef","focus","blur","measure","callback","measureInWindow","measureLayout","_relativeToNativeNode","onSuccess","setValue","markdown","setSelection","_start","_end","toggleBold","toggleItalic","toggleUnderline","toggleStrikethrough","toggleSpoiler","toggleHeading","_level","toggleUnorderedList","toggleOrderedList","indentList","outdentList","setLink","_url","insertLink","_text","insertText","insertMention","_displayText","startMention","_indicator","removeLink","copyToClipboard","resolvePaste","_markdown","insertMath","_latex","_options","updateMath","removeMath","getMarkdown","Promise","resolve","getCaretRect","value","EnrichedMarkdownText","containerStyle","onLinkPress","_onLinkPress","onLinkLongPress","_onLinkLongPress","onTaskListItemPress","_onTaskListItemPress","onSelectionChange","_onSelectionChange","enableLinkPreview","_enableLinkPreview","linkLongPressSelects","_linkLongPressSelects","selectable","_selectable","md4cFlags","_md4cFlags","allowFontScaling","_allowFontScaling","maxFontSizeMultiplier","_maxFontSizeMultiplier","allowTrailingMargin","_allowTrailingMargin","flavor","_flavor","streamingAnimation","_streamingAnimation","streamingConfig","_streamingConfig","spoilerOverlay","_spoilerOverlay","imageRequestHeaders","_imageRequestHeaders","accessibilityLabels","_accessibilityLabels","selectionHandleColor","_selectionHandleColor","textBreakStrategy","_textBreakStrategy","lineBreakStrategyIOS","_lineBreakStrategyIOS","clearSelection","children"],"sourceRoot":"../../../src","sources":["jest/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { useMemo, useCallback, useRef, useEffect } from 'react';
|
|
4
|
-
import EnrichedMarkdownTextNativeComponent from '../EnrichedMarkdownTextNativeComponent';
|
|
5
|
-
import EnrichedMarkdownNativeComponent from '../EnrichedMarkdownNativeComponent';
|
|
3
|
+
import { useMemo, useCallback, useRef, useEffect, useState, useImperativeHandle } from 'react';
|
|
4
|
+
import EnrichedMarkdownTextNativeComponent, { Commands as TextCommands } from '../EnrichedMarkdownTextNativeComponent';
|
|
5
|
+
import EnrichedMarkdownNativeComponent, { Commands as MarkdownCommands } from '../EnrichedMarkdownNativeComponent';
|
|
6
6
|
import { normalizeMarkdownStyle } from '../normalizeMarkdownStyle';
|
|
7
7
|
import { resolveAccessibilityLabels } from "../accessibilityLabelDefaults.js";
|
|
8
8
|
import { normalizeMenuItem, normalizeLegacyBooleanMenuItem } from "../normalizeMenuItem.js";
|
|
9
|
-
import {
|
|
9
|
+
import { StyleSheet, View } from 'react-native';
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
11
|
// Default English labels for the built-in selection menu actions. Defaults are
|
|
11
12
|
// resolved here (JS-side) so the native code always receives a concrete string.
|
|
12
13
|
const DEFAULT_COPY_LABEL = 'Copy';
|
|
@@ -56,6 +57,44 @@ const buildPluralTemplates = (pluralLabels, singularLabel) => {
|
|
|
56
57
|
}
|
|
57
58
|
return templates;
|
|
58
59
|
};
|
|
60
|
+
/** Groups the flat per-line fragments native reports into one entry per link. */
|
|
61
|
+
const groupLinkFragments = fragments => {
|
|
62
|
+
const byIndex = new Map();
|
|
63
|
+
for (const {
|
|
64
|
+
linkIndex,
|
|
65
|
+
url,
|
|
66
|
+
text,
|
|
67
|
+
x,
|
|
68
|
+
y,
|
|
69
|
+
width,
|
|
70
|
+
height
|
|
71
|
+
} of fragments) {
|
|
72
|
+
const rect = {
|
|
73
|
+
x,
|
|
74
|
+
y,
|
|
75
|
+
width,
|
|
76
|
+
height
|
|
77
|
+
};
|
|
78
|
+
const info = byIndex.get(linkIndex);
|
|
79
|
+
if (info) {
|
|
80
|
+
info.rects.push(rect);
|
|
81
|
+
info.rect = rect;
|
|
82
|
+
} else {
|
|
83
|
+
byIndex.set(linkIndex, {
|
|
84
|
+
index: linkIndex,
|
|
85
|
+
url,
|
|
86
|
+
text,
|
|
87
|
+
rect,
|
|
88
|
+
rects: [rect]
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return [...byIndex.values()];
|
|
93
|
+
};
|
|
94
|
+
const ZERO_OFFSET = {
|
|
95
|
+
x: 0,
|
|
96
|
+
y: 0
|
|
97
|
+
};
|
|
59
98
|
const defaultMd4cFlags = {
|
|
60
99
|
underline: false,
|
|
61
100
|
superscript: false,
|
|
@@ -65,6 +104,7 @@ const defaultMd4cFlags = {
|
|
|
65
104
|
hardSoftBreaks: false
|
|
66
105
|
};
|
|
67
106
|
export const EnrichedMarkdownText = ({
|
|
107
|
+
ref,
|
|
68
108
|
markdown,
|
|
69
109
|
markdownStyle = {},
|
|
70
110
|
containerStyle,
|
|
@@ -73,7 +113,10 @@ export const EnrichedMarkdownText = ({
|
|
|
73
113
|
onTaskListItemPress,
|
|
74
114
|
enableTaskListItemToggle = true,
|
|
75
115
|
onCopyPress,
|
|
116
|
+
onCopy,
|
|
117
|
+
onSelectionChange,
|
|
76
118
|
enableLinkPreview,
|
|
119
|
+
linkLongPressSelects = false,
|
|
77
120
|
selectable = true,
|
|
78
121
|
md4cFlags = defaultMd4cFlags,
|
|
79
122
|
allowFontScaling = true,
|
|
@@ -93,6 +136,8 @@ export const EnrichedMarkdownText = ({
|
|
|
93
136
|
textBreakStrategy,
|
|
94
137
|
lineBreakStrategyIOS,
|
|
95
138
|
writingDirection = 'first-strong',
|
|
139
|
+
renderLinkDecoration,
|
|
140
|
+
onLayout,
|
|
96
141
|
...rest
|
|
97
142
|
}) => {
|
|
98
143
|
const normalizedStyleRef = useRef(null);
|
|
@@ -183,6 +228,75 @@ export const EnrichedMarkdownText = ({
|
|
|
183
228
|
language
|
|
184
229
|
});
|
|
185
230
|
}, [onCopyPress]);
|
|
231
|
+
const handleCopyRequest = useCallback(
|
|
232
|
+
// Codegen types `source` as a plain string; native only sends the four
|
|
233
|
+
// values of CopyEvent['source'].
|
|
234
|
+
e => {
|
|
235
|
+
const {
|
|
236
|
+
source,
|
|
237
|
+
markdown: copied,
|
|
238
|
+
text,
|
|
239
|
+
whole
|
|
240
|
+
} = e.nativeEvent;
|
|
241
|
+
onCopy?.({
|
|
242
|
+
source: source,
|
|
243
|
+
markdown: copied,
|
|
244
|
+
text,
|
|
245
|
+
whole
|
|
246
|
+
});
|
|
247
|
+
}, [onCopy]);
|
|
248
|
+
const interceptCopy = onCopy != null;
|
|
249
|
+
const decorated = renderLinkDecoration != null;
|
|
250
|
+
const [linkLayout, setLinkLayout] = useState([]);
|
|
251
|
+
// Where the native view sits inside the wrapper (the wrapper's padding).
|
|
252
|
+
const [nativeOffset, setNativeOffset] = useState(ZERO_OFFSET);
|
|
253
|
+
const handleLinkLayout = useCallback(e => {
|
|
254
|
+
setLinkLayout(groupLinkFragments(e.nativeEvent.fragments));
|
|
255
|
+
}, []);
|
|
256
|
+
const handleNativeLayout = useCallback(e => {
|
|
257
|
+
const {
|
|
258
|
+
x,
|
|
259
|
+
y
|
|
260
|
+
} = e.nativeEvent.layout;
|
|
261
|
+
setNativeOffset(prev => prev.x === x && prev.y === y ? prev : {
|
|
262
|
+
x,
|
|
263
|
+
y
|
|
264
|
+
});
|
|
265
|
+
}, []);
|
|
266
|
+
|
|
267
|
+
// Rects stay relative to the native view — the view the ref's
|
|
268
|
+
// `measureInWindow` measures — even when decorations wrap it.
|
|
269
|
+
const handleSelectionChange = useCallback(
|
|
270
|
+
// Codegen types `source` as a plain string; native only sends the four
|
|
271
|
+
// values of SelectionChangeEvent['source'].
|
|
272
|
+
e => {
|
|
273
|
+
const {
|
|
274
|
+
source,
|
|
275
|
+
...payload
|
|
276
|
+
} = e.nativeEvent;
|
|
277
|
+
onSelectionChange?.({
|
|
278
|
+
...payload,
|
|
279
|
+
source: source
|
|
280
|
+
});
|
|
281
|
+
}, [onSelectionChange]);
|
|
282
|
+
const nativeRef = useRef(null);
|
|
283
|
+
const isGithubFlavor = flavor === 'github';
|
|
284
|
+
useImperativeHandle(ref, () => ({
|
|
285
|
+
clearSelection: () => {
|
|
286
|
+
const node = nativeRef.current;
|
|
287
|
+
if (node == null) return;
|
|
288
|
+
// Codegen's ViewRef resolves to `never` with RN 0.84's function-based
|
|
289
|
+
// HostComponent type — the cast is safe at runtime.
|
|
290
|
+
if (isGithubFlavor) {
|
|
291
|
+
MarkdownCommands.clearSelection(node);
|
|
292
|
+
} else {
|
|
293
|
+
TextCommands.clearSelection(node);
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
measure: callback => nativeRef.current?.measure(callback),
|
|
297
|
+
measureInWindow: callback => nativeRef.current?.measureInWindow(callback),
|
|
298
|
+
measureLayout: (relativeToNativeNode, onSuccess, onFail) => nativeRef.current?.measureLayout(relativeToNativeNode, onSuccess, onFail)
|
|
299
|
+
}), [isGithubFlavor]);
|
|
186
300
|
const tableMode = streamingConfig?.tableMode ?? 'progressive';
|
|
187
301
|
const codeBlockMode = streamingConfig?.codeBlockMode ?? 'progressive';
|
|
188
302
|
const normalizedStreamingConfig = useMemo(() => ({
|
|
@@ -194,6 +308,8 @@ export const EnrichedMarkdownText = ({
|
|
|
194
308
|
// `as unknown` cast; the public type only exposes the object shape.
|
|
195
309
|
const config = selectionMenuConfig;
|
|
196
310
|
const copy = normalizeMenuItem(config?.copy, true, DEFAULT_COPY_LABEL);
|
|
311
|
+
const copyFormat = config?.copy?.format;
|
|
312
|
+
const codeBlockCopyButton = normalizeMenuItem(config?.codeBlockCopyButton, true, '');
|
|
197
313
|
const copyAsMarkdown = normalizeLegacyBooleanMenuItem(config?.copyAsMarkdown, 'selectionMenuConfig', 'copyAsMarkdown', true, DEFAULT_COPY_AS_MARKDOWN_LABEL);
|
|
198
314
|
const copyImageUrl = normalizeLegacyBooleanMenuItem(config?.copyImageUrl, 'selectionMenuConfig', 'copyImageUrl', true, DEFAULT_COPY_IMAGE_URL_LABEL);
|
|
199
315
|
const pluralLabels = config?.copyImageUrl?.pluralLabels;
|
|
@@ -204,9 +320,14 @@ export const EnrichedMarkdownText = ({
|
|
|
204
320
|
copyAsMarkdownLabel: copyAsMarkdown.label,
|
|
205
321
|
copyImageUrlLabel: copyImageUrl.label,
|
|
206
322
|
copyImageUrlsLabel: pluralLabels?.other ?? DEFAULT_COPY_IMAGE_URLS_LABEL,
|
|
207
|
-
copyImageUrlPluralTemplates: buildPluralTemplates(pluralLabels, copyImageUrl.label)
|
|
323
|
+
copyImageUrlPluralTemplates: buildPluralTemplates(pluralLabels, copyImageUrl.label),
|
|
324
|
+
copyEnabled: copy.enabled,
|
|
325
|
+
copyFormatMarkdown: copyFormat === 'markdown',
|
|
326
|
+
systemItemsNone: config?.systemItems === 'none',
|
|
327
|
+
codeBlockCopyButton: codeBlockCopyButton.enabled,
|
|
328
|
+
interceptCopy
|
|
208
329
|
};
|
|
209
|
-
}, [selectionMenuConfig]);
|
|
330
|
+
}, [selectionMenuConfig, interceptCopy]);
|
|
210
331
|
const resolvedAccessibilityLabels = useMemo(() => resolveAccessibilityLabels(accessibilityLabels), [accessibilityLabels]);
|
|
211
332
|
const sharedProps = {
|
|
212
333
|
markdown,
|
|
@@ -216,7 +337,11 @@ export const EnrichedMarkdownText = ({
|
|
|
216
337
|
onTaskListItemPress: handleTaskListItemPress,
|
|
217
338
|
enableTaskListItemToggle,
|
|
218
339
|
onCopyPress: handleCopyPress,
|
|
340
|
+
onCopyRequest: handleCopyRequest,
|
|
341
|
+
emitSelectionChange: onSelectionChange != null,
|
|
342
|
+
onSelectionChange: handleSelectionChange,
|
|
219
343
|
enableLinkPreview: onLinkLongPress == null && (enableLinkPreview ?? true),
|
|
344
|
+
linkLongPressSelects,
|
|
220
345
|
selectable,
|
|
221
346
|
md4cFlags: normalizedMd4cFlags,
|
|
222
347
|
allowFontScaling,
|
|
@@ -239,14 +364,47 @@ export const EnrichedMarkdownText = ({
|
|
|
239
364
|
writingDirection,
|
|
240
365
|
...rest
|
|
241
366
|
};
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
367
|
+
const NativeComponent = isGithubFlavor ? EnrichedMarkdownNativeComponent : EnrichedMarkdownTextNativeComponent;
|
|
368
|
+
|
|
369
|
+
// Without decorations the native view is returned as-is (no wrapper, no
|
|
370
|
+
// layout events) so existing layouts are untouched.
|
|
371
|
+
if (!decorated) {
|
|
372
|
+
return /*#__PURE__*/_jsx(NativeComponent, {
|
|
373
|
+
...sharedProps,
|
|
374
|
+
ref: nativeRef,
|
|
375
|
+
onLayout: onLayout
|
|
245
376
|
});
|
|
246
377
|
}
|
|
247
|
-
return /*#__PURE__*/
|
|
248
|
-
|
|
378
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
379
|
+
style: containerStyle,
|
|
380
|
+
onLayout: onLayout,
|
|
381
|
+
children: [/*#__PURE__*/_jsx(NativeComponent, {
|
|
382
|
+
...sharedProps,
|
|
383
|
+
ref: nativeRef,
|
|
384
|
+
style: undefined,
|
|
385
|
+
emitLinkLayout: true,
|
|
386
|
+
onLinkLayout: handleLinkLayout,
|
|
387
|
+
onLayout: handleNativeLayout
|
|
388
|
+
}), linkLayout.map(info => {
|
|
389
|
+
const decoration = renderLinkDecoration(info);
|
|
390
|
+
if (decoration == null) return null;
|
|
391
|
+
return /*#__PURE__*/_jsx(View, {
|
|
392
|
+
pointerEvents: "box-none",
|
|
393
|
+
style: [styles.decoration, {
|
|
394
|
+
left: nativeOffset.x + info.rect.x,
|
|
395
|
+
top: nativeOffset.y + info.rect.y,
|
|
396
|
+
width: info.rect.width,
|
|
397
|
+
height: info.rect.height
|
|
398
|
+
}],
|
|
399
|
+
children: decoration
|
|
400
|
+
}, info.index);
|
|
401
|
+
})]
|
|
249
402
|
});
|
|
250
403
|
};
|
|
404
|
+
const styles = StyleSheet.create({
|
|
405
|
+
decoration: {
|
|
406
|
+
position: 'absolute'
|
|
407
|
+
}
|
|
408
|
+
});
|
|
251
409
|
export default EnrichedMarkdownText;
|
|
252
410
|
//# sourceMappingURL=EnrichedMarkdownText.js.map
|
|
@@ -1 +1 @@
|
|
|
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","hardSoftBreaks","EnrichedMarkdownText","markdown","markdownStyle","containerStyle","onLinkPress","onLinkLongPress","onTaskListItemPress","enableTaskListItemToggle","onCopyPress","enableLinkPreview","selectable","md4cFlags","allowFontScaling","maxFontSizeMultiplier","allowTrailingMargin","flavor","streamingAnimation","streamingConfig","spoilerOverlay","contextMenuItems","imageRequestHeaders","contextMenuHidden","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","nativeImageRequestHeaders","Object","entries","name","value","sort","a","b","undefined","handleContextMenuItemPress","e","itemText","selectedText","selectionStart","selectionEnd","nativeEvent","callback","get","selection","start","end","handleLinkPress","url","handleLinkLongPress","handleTaskListItemPress","index","checked","handleCopyPress","code","language","tableMode","codeBlockMode","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":[]}
|
|
1
|
+
{"version":3,"names":["useMemo","useCallback","useRef","useEffect","useState","useImperativeHandle","EnrichedMarkdownTextNativeComponent","Commands","TextCommands","EnrichedMarkdownNativeComponent","MarkdownCommands","normalizeMarkdownStyle","resolveAccessibilityLabels","normalizeMenuItem","normalizeLegacyBooleanMenuItem","StyleSheet","View","jsx","_jsx","jsxs","_jsxs","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","groupLinkFragments","fragments","byIndex","Map","linkIndex","url","text","x","y","width","height","rect","info","get","rects","set","index","values","ZERO_OFFSET","defaultMd4cFlags","underline","superscript","subscript","latexMath","highlight","hardSoftBreaks","EnrichedMarkdownText","ref","markdown","markdownStyle","containerStyle","onLinkPress","onLinkLongPress","onTaskListItemPress","enableTaskListItemToggle","onCopyPress","onCopy","onSelectionChange","enableLinkPreview","linkLongPressSelects","selectable","md4cFlags","allowFontScaling","maxFontSizeMultiplier","allowTrailingMargin","flavor","streamingAnimation","streamingConfig","spoilerOverlay","contextMenuItems","imageRequestHeaders","contextMenuHidden","selectionMenuConfig","accessibilityLabels","selectionColor","selectionHandleColor","textBreakStrategy","lineBreakStrategyIOS","writingDirection","renderLinkDecoration","onLayout","rest","normalizedStyleRef","normalized","current","normalizedStyle","normalizedMd4cFlags","contextMenuCallbacksRef","callbacksMap","item","onPress","nativeContextMenuItems","filter","visible","map","icon","nativeImageRequestHeaders","Object","entries","name","value","sort","a","b","undefined","handleContextMenuItemPress","e","itemText","selectedText","selectionStart","selectionEnd","nativeEvent","callback","selection","start","end","handleLinkPress","handleLinkLongPress","handleTaskListItemPress","checked","handleCopyPress","code","language","handleCopyRequest","source","copied","whole","interceptCopy","decorated","linkLayout","setLinkLayout","nativeOffset","setNativeOffset","handleLinkLayout","handleNativeLayout","layout","prev","handleSelectionChange","payload","nativeRef","isGithubFlavor","clearSelection","node","measure","measureInWindow","measureLayout","relativeToNativeNode","onSuccess","onFail","tableMode","codeBlockMode","normalizedStreamingConfig","normalizedSelectionMenuConfig","config","copy","copyFormat","format","codeBlockCopyButton","copyAsMarkdown","copyImageUrl","enabled","copyLabel","label","copyAsMarkdownLabel","copyImageUrlLabel","copyImageUrlsLabel","copyImageUrlPluralTemplates","copyEnabled","copyFormatMarkdown","systemItemsNone","systemItems","resolvedAccessibilityLabels","sharedProps","onCopyRequest","emitSelectionChange","style","onContextMenuItemPress","NativeComponent","children","emitLinkLayout","onLinkLayout","decoration","pointerEvents","styles","left","top","create","position"],"sourceRoot":"../../../src","sources":["native/EnrichedMarkdownText.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -197,7 +197,12 @@ const DEFAULT_NORMALIZED_STYLE = Object.freeze({
|
|
|
197
197
|
fontFamily: '',
|
|
198
198
|
color: normalizeColor('#2563EB'),
|
|
199
199
|
underline: true,
|
|
200
|
-
backgroundColor: normalizeColor('transparent')
|
|
200
|
+
backgroundColor: normalizeColor('transparent'),
|
|
201
|
+
borderRadius: 0,
|
|
202
|
+
paddingHorizontal: 0,
|
|
203
|
+
paddingVertical: 0,
|
|
204
|
+
borderColor: normalizeColor('transparent'),
|
|
205
|
+
borderWidth: 0
|
|
201
206
|
},
|
|
202
207
|
linkVariants: [],
|
|
203
208
|
strong: {
|
|
@@ -279,12 +284,14 @@ const DEFAULT_NORMALIZED_STYLE = Object.freeze({
|
|
|
279
284
|
marginTop: 0,
|
|
280
285
|
marginBottom: 16,
|
|
281
286
|
textAlign: 'center',
|
|
282
|
-
fontWeight: 'normal'
|
|
287
|
+
fontWeight: 'normal',
|
|
288
|
+
glyphOverflow: 0
|
|
283
289
|
},
|
|
284
290
|
inlineMath: {
|
|
285
291
|
color: defaultTextColor,
|
|
286
292
|
paddingVertical: 4,
|
|
287
|
-
fontWeight: 'normal'
|
|
293
|
+
fontWeight: 'normal',
|
|
294
|
+
glyphOverflow: 0
|
|
288
295
|
},
|
|
289
296
|
taskList: {
|
|
290
297
|
checkedColor: Platform.select({
|
|
@@ -358,7 +365,13 @@ export const normalizeMarkdownStyle = style => {
|
|
|
358
365
|
pattern,
|
|
359
366
|
color: (override.color ? normalizeColor(override.color) : null) ?? linkBase.color,
|
|
360
367
|
underline: override.underline ?? linkBase.underline,
|
|
361
|
-
|
|
368
|
+
// Chip ("box") properties never inherit from the base link style.
|
|
369
|
+
backgroundColor: override.backgroundColor ? normalizeColor(override.backgroundColor) ?? transparent : transparent,
|
|
370
|
+
borderRadius: override.borderRadius ?? 0,
|
|
371
|
+
paddingHorizontal: override.paddingHorizontal ?? 0,
|
|
372
|
+
paddingVertical: override.paddingVertical ?? 0,
|
|
373
|
+
borderColor: override.borderColor ? normalizeColor(override.borderColor) ?? transparent : transparent,
|
|
374
|
+
borderWidth: override.borderWidth ?? 0
|
|
362
375
|
};
|
|
363
376
|
});
|
|
364
377
|
if (style.taskList?.checkboxSize === undefined) {
|