@openeditor/react-native-prose-editor 0.0.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 (91) hide show
  1. package/LICENSE +160 -0
  2. package/README.md +180 -0
  3. package/android/build.gradle +69 -0
  4. package/android/consumer-rules.pro +18 -0
  5. package/android/src/androidTest/AndroidManifest.xml +8 -0
  6. package/android/src/androidTest/java/com/apollohg/editor/MeasureHeightInstrumentedTest.kt +53 -0
  7. package/android/src/androidTest/java/com/apollohg/editor/NativeDeviceCollaborationInitialSyncTest.kt +241 -0
  8. package/android/src/androidTest/java/com/apollohg/editor/NativeDeviceImeRegressionTest.kt +338 -0
  9. package/android/src/androidTest/java/com/apollohg/editor/NativeDeviceOutsideTapTest.kt +789 -0
  10. package/android/src/androidTest/java/com/apollohg/editor/NativeDevicePerformanceTest.kt +350 -0
  11. package/android/src/androidTest/java/com/apollohg/editor/NativeEditorOutsideTapActivity.kt +5 -0
  12. package/android/src/main/assets/editor-icons/MaterialIcons.json +2236 -0
  13. package/android/src/main/assets/editor-icons/MaterialIcons.ttf +0 -0
  14. package/android/src/main/java/com/apollohg/editor/CaretGeometry.kt +50 -0
  15. package/android/src/main/java/com/apollohg/editor/EditorAddons.kt +135 -0
  16. package/android/src/main/java/com/apollohg/editor/EditorEditText.kt +4527 -0
  17. package/android/src/main/java/com/apollohg/editor/EditorHeightBehavior.kt +14 -0
  18. package/android/src/main/java/com/apollohg/editor/EditorInputConnection.kt +999 -0
  19. package/android/src/main/java/com/apollohg/editor/EditorTheme.kt +474 -0
  20. package/android/src/main/java/com/apollohg/editor/ImageResizeOverlayView.kt +199 -0
  21. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoView.kt +3137 -0
  22. package/android/src/main/java/com/apollohg/editor/NativeEditorModule.kt +561 -0
  23. package/android/src/main/java/com/apollohg/editor/NativeProseViewerExpoView.kt +315 -0
  24. package/android/src/main/java/com/apollohg/editor/NativeToolbar.kt +1413 -0
  25. package/android/src/main/java/com/apollohg/editor/PositionBridge.kt +133 -0
  26. package/android/src/main/java/com/apollohg/editor/RemoteSelectionOverlayView.kt +315 -0
  27. package/android/src/main/java/com/apollohg/editor/RenderBridge.kt +2172 -0
  28. package/android/src/main/java/com/apollohg/editor/RichTextEditorView.kt +399 -0
  29. package/android/src/sharedTest/java/com/apollohg/editor/NativePerformanceSupport.kt +482 -0
  30. package/android/src/test/java/com/apollohg/editor/CaretGeometryTest.kt +137 -0
  31. package/android/src/test/java/com/apollohg/editor/EditorEditTextHardwareKeyTest.kt +321 -0
  32. package/android/src/test/java/com/apollohg/editor/EditorInputConnectionTest.kt +4202 -0
  33. package/android/src/test/java/com/apollohg/editor/NativeEditorExpoViewTest.kt +2581 -0
  34. package/android/src/test/java/com/apollohg/editor/NativeEditorModuleTest.kt +27 -0
  35. package/android/src/test/java/com/apollohg/editor/NativePerformanceTest.kt +197 -0
  36. package/android/src/test/java/com/apollohg/editor/NativeProseViewerExpoViewTest.kt +84 -0
  37. package/android/src/test/java/com/apollohg/editor/NativeToolbarTest.kt +544 -0
  38. package/android/src/test/java/com/apollohg/editor/PositionBridgeTest.kt +461 -0
  39. package/android/src/test/java/com/apollohg/editor/RenderBridgeTest.kt +2054 -0
  40. package/android/src/test/java/com/apollohg/editor/RichTextEditorViewTest.kt +1367 -0
  41. package/app.plugin.js +62 -0
  42. package/dist/EditorTheme.d.ts +113 -0
  43. package/dist/EditorTheme.js +29 -0
  44. package/dist/EditorToolbar.d.ts +191 -0
  45. package/dist/EditorToolbar.js +1095 -0
  46. package/dist/NativeEditorBridge.d.ts +325 -0
  47. package/dist/NativeEditorBridge.js +933 -0
  48. package/dist/NativeProseViewer.d.ts +53 -0
  49. package/dist/NativeProseViewer.js +480 -0
  50. package/dist/NativeRichTextEditor.d.ts +183 -0
  51. package/dist/NativeRichTextEditor.js +2574 -0
  52. package/dist/YjsCollaboration.d.ts +90 -0
  53. package/dist/YjsCollaboration.js +743 -0
  54. package/dist/addons.d.ts +100 -0
  55. package/dist/addons.js +82 -0
  56. package/dist/heightCache.d.ts +6 -0
  57. package/dist/heightCache.js +45 -0
  58. package/dist/index.d.ts +10 -0
  59. package/dist/index.js +30 -0
  60. package/dist/schemas.d.ts +37 -0
  61. package/dist/schemas.js +263 -0
  62. package/dist/useNativeEditor.d.ts +42 -0
  63. package/dist/useNativeEditor.js +124 -0
  64. package/expo-module.config.json +9 -0
  65. package/ios/EditorAddons.swift +327 -0
  66. package/ios/EditorCore.xcframework/Info.plist +44 -0
  67. package/ios/EditorCore.xcframework/ios-arm64/libeditor_core.a +0 -0
  68. package/ios/EditorCore.xcframework/ios-arm64_x86_64-simulator/libeditor_core.a +0 -0
  69. package/ios/EditorLayoutManager.swift +774 -0
  70. package/ios/EditorTheme.swift +515 -0
  71. package/ios/Generated_editor_core.swift +1513 -0
  72. package/ios/NativeEditorExpoView.swift +3593 -0
  73. package/ios/NativeEditorModule.swift +624 -0
  74. package/ios/NativeProseViewerExpoView.swift +276 -0
  75. package/ios/PositionBridge.swift +558 -0
  76. package/ios/ReactNativeProseEditor.podspec +49 -0
  77. package/ios/RenderBridge.swift +1708 -0
  78. package/ios/RichTextEditorView.swift +6150 -0
  79. package/ios/Tests/NativePerformanceTests.swift +687 -0
  80. package/ios/Tests/PositionBridgeTests.swift +706 -0
  81. package/ios/Tests/RenderBridgeTests.swift +2236 -0
  82. package/ios/Tests/RichTextEditorViewTests.swift +6548 -0
  83. package/ios/editor_coreFFI/editor_coreFFI.h +1289 -0
  84. package/ios/editor_coreFFI/module.modulemap +7 -0
  85. package/ios/editor_coreFFI.h +904 -0
  86. package/ios/editor_coreFFI.modulemap +7 -0
  87. package/package.json +74 -0
  88. package/rust/android/arm64-v8a/libeditor_core.so +0 -0
  89. package/rust/android/armeabi-v7a/libeditor_core.so +0 -0
  90. package/rust/android/x86_64/libeditor_core.so +0 -0
  91. package/rust/bindings/kotlin/uniffi/editor_core/editor_core.kt +2563 -0
@@ -0,0 +1,90 @@
1
+ import { type CollaborationPeer, type DocumentJSON, type EncodedCollaborationStateInput, type Selection } from './NativeEditorBridge';
2
+ import type { RemoteSelectionDecoration } from './NativeRichTextEditor';
3
+ import type { SchemaDefinition } from './schemas';
4
+ export type YjsTransportStatus = 'idle' | 'connecting' | 'connected' | 'disconnected' | 'error';
5
+ export interface YjsRetryContext {
6
+ attempt: number;
7
+ documentId: string;
8
+ lastError?: Error;
9
+ }
10
+ export type YjsRetryInterval = number | ((context: YjsRetryContext) => number | null | false);
11
+ export interface LocalAwarenessUser {
12
+ userId: string;
13
+ name: string;
14
+ color: string;
15
+ avatarUrl?: string;
16
+ extra?: Record<string, unknown>;
17
+ }
18
+ export interface LocalAwarenessState {
19
+ user: LocalAwarenessUser;
20
+ selection?: {
21
+ anchor: number;
22
+ head: number;
23
+ };
24
+ focused?: boolean;
25
+ }
26
+ export interface YjsCollaborationState {
27
+ documentId: string;
28
+ status: YjsTransportStatus;
29
+ isConnected: boolean;
30
+ documentJson: DocumentJSON;
31
+ /** Local selection remapped through the latest collaboration document update. */
32
+ selectionOnValueJSONReset?: Selection;
33
+ lastError?: Error;
34
+ }
35
+ export interface YjsCollaborationOptions {
36
+ documentId: string;
37
+ createWebSocket: () => WebSocket;
38
+ connect?: boolean;
39
+ retryIntervalMs?: YjsRetryInterval | false;
40
+ fragmentName?: string;
41
+ schema?: SchemaDefinition;
42
+ initialDocumentJson?: DocumentJSON;
43
+ initialEncodedState?: EncodedCollaborationStateInput;
44
+ localAwareness: LocalAwarenessUser;
45
+ onPeersChange?: (peers: CollaborationPeer[]) => void;
46
+ onStateChange?: (state: YjsCollaborationState) => void;
47
+ onError?: (error: Error) => void;
48
+ }
49
+ export interface YjsCollaborationController {
50
+ readonly state: YjsCollaborationState;
51
+ readonly peers: CollaborationPeer[];
52
+ connect(): void;
53
+ disconnect(): void;
54
+ reconnect(): void;
55
+ destroy(): void;
56
+ getEncodedState(): Uint8Array;
57
+ getEncodedStateBase64(): string;
58
+ applyEncodedState(encodedState: EncodedCollaborationStateInput): void;
59
+ replaceEncodedState(encodedState: EncodedCollaborationStateInput): void;
60
+ updateLocalAwareness(partial: Partial<LocalAwarenessState>): void;
61
+ handleLocalDocumentChange(doc: DocumentJSON): void;
62
+ handleSelectionChange(selection: Selection): void;
63
+ handleFocusChange(focused: boolean): void;
64
+ }
65
+ export interface UseYjsCollaborationResult {
66
+ state: YjsCollaborationState;
67
+ peers: CollaborationPeer[];
68
+ isConnected: boolean;
69
+ connect(): void;
70
+ disconnect(): void;
71
+ reconnect(): void;
72
+ getEncodedState(): Uint8Array;
73
+ getEncodedStateBase64(): string;
74
+ applyEncodedState(encodedState: EncodedCollaborationStateInput): void;
75
+ replaceEncodedState(encodedState: EncodedCollaborationStateInput): void;
76
+ updateLocalAwareness(partial: Partial<LocalAwarenessState>): void;
77
+ editorBindings: {
78
+ valueJSON: DocumentJSON;
79
+ valueJSONUpdateMode: 'reset';
80
+ preserveSelectionOnValueJSONReset: true;
81
+ selectionOnValueJSONReset?: Selection;
82
+ remoteSelections: RemoteSelectionDecoration[];
83
+ onContentChangeJSON: (doc: DocumentJSON) => void;
84
+ onSelectionChange: (selection: Selection) => void;
85
+ onFocus: () => void;
86
+ onBlur: () => void;
87
+ };
88
+ }
89
+ export declare function createYjsCollaborationController(options: YjsCollaborationOptions): YjsCollaborationController;
90
+ export declare function useYjsCollaboration(options: YjsCollaborationOptions): UseYjsCollaborationResult;