@apollohg/react-native-rich-text-editor 2.0.0
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/LICENSE +160 -0
- package/README.md +259 -0
- package/RUST-STANDARD-LIBRARY-NOTICES.html +8266 -0
- package/ReactNativeProseEditor.podspec +59 -0
- package/THIRD_PARTY_NOTICES.md +31155 -0
- package/android/build.gradle +188 -0
- package/android/consumer-rules.pro +18 -0
- package/android/expo/build.gradle +17 -0
- package/android/src/debug/java/com/apollohg/editor/viewer/PreparedProseDrawInstrumentation.kt +7 -0
- package/android/src/main/assets/editor-icons/MaterialIcons.json +2236 -0
- package/android/src/main/assets/editor-icons/MaterialIcons.ttf +0 -0
- package/android/src/main/java/com/apollohg/editor/AndroidApiCompat.kt +19 -0
- package/android/src/main/java/com/apollohg/editor/AndroidCollaborationTransport.kt +860 -0
- package/android/src/main/java/com/apollohg/editor/CaretGeometry.kt +91 -0
- package/android/src/main/java/com/apollohg/editor/CodeHighlighting.kt +141 -0
- package/android/src/main/java/com/apollohg/editor/DecodedBitmapBudget.kt +250 -0
- package/android/src/main/java/com/apollohg/editor/EditorAddons.kt +133 -0
- package/android/src/main/java/com/apollohg/editor/EditorBlockSpacing.kt +51 -0
- package/android/src/main/java/com/apollohg/editor/EditorBoxDrawable.kt +16 -0
- package/android/src/main/java/com/apollohg/editor/EditorBoxDrawing.kt +234 -0
- package/android/src/main/java/com/apollohg/editor/EditorCheckboxSpan.kt +87 -0
- package/android/src/main/java/com/apollohg/editor/EditorCodeHighlighting.kt +120 -0
- package/android/src/main/java/com/apollohg/editor/EditorDecorationLayer.java +18 -0
- package/android/src/main/java/com/apollohg/editor/EditorDocumentLayout.kt +626 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditText.kt +1042 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextAnnotations.kt +191 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextCaret.kt +100 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextClipboard.kt +101 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextComposition.kt +220 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextConfiguration.kt +316 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextCorrection.kt +303 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextDeferredUpdates.kt +327 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextDeletion.kt +258 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextDiagnostics.kt +83 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextDragDrop.kt +67 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextExternalComposition.kt +357 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextHardwareInput.kt +277 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextImages.kt +280 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextInputLifecycle.kt +183 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextInputPreparation.kt +79 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextInputTraits.kt +384 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextLayout.kt +100 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextNativeMutation.kt +243 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextPlaceholder.kt +154 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextRenderPatch.kt +347 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextRendering.kt +313 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextRustCommands.kt +281 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextSelection.kt +352 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextState.kt +113 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextTaskMarkers.kt +92 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextTextCommit.kt +327 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextToolbar.kt +84 -0
- package/android/src/main/java/com/apollohg/editor/EditorEditTextUpdates.kt +245 -0
- package/android/src/main/java/com/apollohg/editor/EditorGlyphHeightCursorDrawable.kt +42 -0
- package/android/src/main/java/com/apollohg/editor/EditorHeightBehavior.kt +13 -0
- package/android/src/main/java/com/apollohg/editor/EditorInputConnection.kt +923 -0
- package/android/src/main/java/com/apollohg/editor/EditorInputCoordinates.kt +191 -0
- package/android/src/main/java/com/apollohg/editor/EditorInputCorrection.kt +107 -0
- package/android/src/main/java/com/apollohg/editor/EditorInputCursorGeometry.kt +128 -0
- package/android/src/main/java/com/apollohg/editor/EditorInputSnapshots.kt +134 -0
- package/android/src/main/java/com/apollohg/editor/EditorInputSurroundingDeletion.kt +321 -0
- package/android/src/main/java/com/apollohg/editor/EditorKeyboardToolbarView.kt +851 -0
- package/android/src/main/java/com/apollohg/editor/EditorMentionStyle.kt +192 -0
- package/android/src/main/java/com/apollohg/editor/EditorReconciliationWatcher.kt +46 -0
- package/android/src/main/java/com/apollohg/editor/EditorStyleSheet.kt +303 -0
- package/android/src/main/java/com/apollohg/editor/EditorStyleSheetSpans.kt +253 -0
- package/android/src/main/java/com/apollohg/editor/EditorSurfaceInputConnection.kt +67 -0
- package/android/src/main/java/com/apollohg/editor/EditorTextDecorationDrawing.kt +143 -0
- package/android/src/main/java/com/apollohg/editor/EditorTextSurface.kt +712 -0
- package/android/src/main/java/com/apollohg/editor/EditorTextSurfaceDragDrop.kt +94 -0
- package/android/src/main/java/com/apollohg/editor/EditorTextSurfaceInteraction.kt +708 -0
- package/android/src/main/java/com/apollohg/editor/EditorTheme.kt +650 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2Adapter.kt +912 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2AdapterMutations.kt +402 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2AdapterRendering.kt +123 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2AdapterSelection.kt +203 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2Backend.kt +120 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2Driver.kt +87 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2Registry.kt +97 -0
- package/android/src/main/java/com/apollohg/editor/EditorV2RenderValidation.kt +409 -0
- package/android/src/main/java/com/apollohg/editor/ExpoAutoGrowStyleSizePublisher.kt +34 -0
- package/android/src/main/java/com/apollohg/editor/ImageResizeOverlayView.kt +266 -0
- package/android/src/main/java/com/apollohg/editor/ImeTextCoordinateMapper.kt +102 -0
- package/android/src/main/java/com/apollohg/editor/KeyboardToolbarImeAnimationController.kt +101 -0
- package/android/src/main/java/com/apollohg/editor/MentionSuggestionChipView.kt +234 -0
- package/android/src/main/java/com/apollohg/editor/NativeCollaborationTransportRegistry.kt +493 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoView.kt +813 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewAtoms.kt +68 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewBinding.kt +126 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewDiagnostics.kt +208 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewErrors.kt +146 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewEvents.kt +150 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewExternalComposition.kt +39 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewFocus.kt +176 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewLifecycle.kt +302 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewMentions.kt +259 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewNativeActions.kt +179 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewOutsideTap.kt +214 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewPendingUpdates.kt +376 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewProperties.kt +234 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewPropertyRetries.kt +197 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewToolbar.kt +285 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewTypes.kt +28 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewUpdates.kt +271 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorModule.kt +687 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorOutsideTapDispatcher.kt +380 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorV2Numbers.kt +45 -0
- package/android/src/main/java/com/apollohg/editor/NativeEditorViewRegistry.kt +372 -0
- package/android/src/main/java/com/apollohg/editor/NativeImagePipeline.kt +22 -0
- package/android/src/main/java/com/apollohg/editor/NativeToolbar.kt +193 -0
- package/android/src/main/java/com/apollohg/editor/NativeToolbarIcons.kt +177 -0
- package/android/src/main/java/com/apollohg/editor/NativeToolbarItem.kt +274 -0
- package/android/src/main/java/com/apollohg/editor/OkHttpCollaborationSocket.kt +102 -0
- package/android/src/main/java/com/apollohg/editor/OrderedListMarkerFormatter.kt +130 -0
- package/android/src/main/java/com/apollohg/editor/PointerTransparentView.java +18 -0
- package/android/src/main/java/com/apollohg/editor/PositionBridge.kt +128 -0
- package/android/src/main/java/com/apollohg/editor/ProseViewerView.kt +854 -0
- package/android/src/main/java/com/apollohg/editor/RemoteSelectionOverlayView.kt +314 -0
- package/android/src/main/java/com/apollohg/editor/RenderBlockSpans.kt +314 -0
- package/android/src/main/java/com/apollohg/editor/RenderBridge.kt +224 -0
- package/android/src/main/java/com/apollohg/editor/RenderBridgeBlockStyles.kt +407 -0
- package/android/src/main/java/com/apollohg/editor/RenderBridgeElements.kt +544 -0
- package/android/src/main/java/com/apollohg/editor/RenderBridgeInlineAndAtoms.kt +631 -0
- package/android/src/main/java/com/apollohg/editor/RenderBridgeParagraphs.kt +215 -0
- package/android/src/main/java/com/apollohg/editor/RenderImageDecoder.kt +748 -0
- package/android/src/main/java/com/apollohg/editor/RenderImageLoader.kt +900 -0
- package/android/src/main/java/com/apollohg/editor/RenderLayoutConstants.kt +117 -0
- package/android/src/main/java/com/apollohg/editor/RenderMediaSpans.kt +337 -0
- package/android/src/main/java/com/apollohg/editor/RenderParagraphSpans.kt +182 -0
- package/android/src/main/java/com/apollohg/editor/RichTextEditorView.kt +951 -0
- package/android/src/main/java/com/apollohg/editor/SharedNativeImagePipeline.kt +78 -0
- package/android/src/main/java/com/apollohg/editor/UniffiEditorV2Backend.kt +261 -0
- package/android/src/main/java/com/apollohg/editor/viewer/AndroidProseLayoutEngine.kt +1656 -0
- package/android/src/main/java/com/apollohg/editor/viewer/FabricAttachmentSidecars.kt +80 -0
- package/android/src/main/java/com/apollohg/editor/viewer/FabricLeaseHandleBridge.kt +59 -0
- package/android/src/main/java/com/apollohg/editor/viewer/FallbackSelectionGeometry.kt +450 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseDrawingView.kt +678 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseInstrumentation.kt +608 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseLayout.kt +186 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseLayoutCache.kt +393 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseLayoutRegistry.kt +828 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseTheme.kt +316 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseViewerManager.kt +900 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseViewerPackage.kt +16 -0
- package/android/src/main/java/com/apollohg/editor/viewer/PreparedViewerAtoms.kt +89 -0
- package/android/src/main/java/com/apollohg/editor/viewer/ViewerCodeHighlighting.kt +91 -0
- package/android/src/main/java/com/apollohg/editor/viewer/ViewerDocument.kt +453 -0
- package/android/src/main/java/com/apollohg/editor/viewer/ViewerFontEnvironment.kt +282 -0
- package/android/src/main/java/com/apollohg/editor/viewer/ViewerImagePipeline.kt +460 -0
- package/android/src/main/jni/CMakeLists.txt +85 -0
- package/android/src/main/jni/PreparedProseViewerMeasurementsManager.cpp +334 -0
- package/android/src/main/jni/ReactNativeProseEditorSpec.h +17 -0
- package/android/src/main/jni/reactnativeproseeditor.h +6 -0
- package/android/src/main/res/values/attrs.xml +6 -0
- package/android/src/release/java/com/apollohg/editor/viewer/PreparedProseDrawInstrumentation.kt +9 -0
- package/app.plugin.js +62 -0
- package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseMeasurementsManager.h +62 -0
- package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseViewerComponentDescriptor.h +30 -0
- package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseViewerShadowNode.cpp +192 -0
- package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseViewerShadowNode.h +46 -0
- package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseViewerState.h +145 -0
- package/dist/AtomHost.d.ts +17 -0
- package/dist/AtomHost.js +135 -0
- package/dist/DefaultAtomChip.d.ts +2 -0
- package/dist/DefaultAtomChip.js +22 -0
- package/dist/EditorAddon.d.ts +32 -0
- package/dist/EditorAddon.js +29 -0
- package/dist/EditorAddonNormalization.d.ts +6 -0
- package/dist/EditorAddonNormalization.js +48 -0
- package/dist/EditorMentionThemeNormalization.d.ts +8 -0
- package/dist/EditorMentionThemeNormalization.js +22 -0
- package/dist/EditorMentionThemeValidation.d.ts +12 -0
- package/dist/EditorMentionThemeValidation.js +95 -0
- package/dist/EditorStyleSheet.d.ts +4 -0
- package/dist/EditorStyleSheet.js +10 -0
- package/dist/EditorStyleSheetNormalization.d.ts +3 -0
- package/dist/EditorStyleSheetNormalization.js +226 -0
- package/dist/EditorStyleSheetTypes.d.ts +151 -0
- package/dist/EditorStyleSheetTypes.js +2 -0
- package/dist/EditorTheme.d.ts +117 -0
- package/dist/EditorTheme.js +41 -0
- package/dist/EditorToolbar.d.ts +4 -0
- package/dist/EditorToolbar.js +17 -0
- package/dist/EditorToolbarComponent.d.ts +13 -0
- package/dist/EditorToolbarComponent.js +24 -0
- package/dist/EditorToolbarItems.d.ts +9 -0
- package/dist/EditorToolbarItems.js +58 -0
- package/dist/EditorToolbarRegistry.d.ts +59 -0
- package/dist/EditorToolbarRegistry.js +175 -0
- package/dist/EditorToolbarTypes.d.ts +273 -0
- package/dist/EditorToolbarTypes.js +2 -0
- package/dist/EditorToolbarVisuals.d.ts +154 -0
- package/dist/EditorToolbarVisuals.js +228 -0
- package/dist/EditorUpdateRevision.d.ts +8 -0
- package/dist/EditorUpdateRevision.js +22 -0
- package/dist/ExternalTextComposition.d.ts +45 -0
- package/dist/ExternalTextComposition.js +537 -0
- package/dist/ImageLoadingPolicy.d.ts +54 -0
- package/dist/ImageLoadingPolicy.js +60 -0
- package/dist/NativeEditorBoundaryError.d.ts +111 -0
- package/dist/NativeEditorBoundaryError.js +268 -0
- package/dist/NativeEditorBridge.d.ts +9 -0
- package/dist/NativeEditorBridge.js +37 -0
- package/dist/NativeEditorCollaborationTransport.d.ts +154 -0
- package/dist/NativeEditorCollaborationTransport.js +275 -0
- package/dist/NativeEditorCreateConfig.d.ts +16 -0
- package/dist/NativeEditorCreateConfig.js +249 -0
- package/dist/NativeEditorCreateJson.d.ts +76 -0
- package/dist/NativeEditorCreateJson.js +474 -0
- package/dist/NativeEditorCreateValidation.d.ts +32 -0
- package/dist/NativeEditorCreateValidation.js +150 -0
- package/dist/NativeEditorDocumentBridge.d.ts +72 -0
- package/dist/NativeEditorDocumentBridge.js +305 -0
- package/dist/NativeEditorDocumentHandle.d.ts +70 -0
- package/dist/NativeEditorDocumentHandle.js +89 -0
- package/dist/NativeEditorLocalAwareness.d.ts +34 -0
- package/dist/NativeEditorLocalAwareness.js +153 -0
- package/dist/NativeEditorNativeModule.d.ts +48 -0
- package/dist/NativeEditorNativeModule.js +34 -0
- package/dist/NativeEditorRenderNormalization.d.ts +22 -0
- package/dist/NativeEditorRenderNormalization.js +274 -0
- package/dist/NativeEditorResultNormalization.d.ts +108 -0
- package/dist/NativeEditorResultNormalization.js +400 -0
- package/dist/NativeEditorTypes.d.ts +318 -0
- package/dist/NativeEditorTypes.js +15 -0
- package/dist/NativeEditorV2Decimal.d.ts +5 -0
- package/dist/NativeEditorV2Decimal.js +18 -0
- package/dist/NativeProseViewer.d.ts +122 -0
- package/dist/NativeProseViewer.js +130 -0
- package/dist/NativeRichTextEditor.d.ts +3 -0
- package/dist/NativeRichTextEditor.js +6 -0
- package/dist/ResourceLimits.d.ts +100 -0
- package/dist/ResourceLimits.js +80 -0
- package/dist/RichTextEditor.d.ts +4 -0
- package/dist/RichTextEditor.js +25 -0
- package/dist/RichTextEditorNativeTypes.d.ts +122 -0
- package/dist/RichTextEditorNativeTypes.js +2 -0
- package/dist/RichTextEditorNativeView.d.ts +12 -0
- package/dist/RichTextEditorNativeView.js +15 -0
- package/dist/RichTextEditorSerialization.d.ts +53 -0
- package/dist/RichTextEditorSerialization.js +283 -0
- package/dist/RichTextEditorTypes.d.ts +281 -0
- package/dist/RichTextEditorTypes.js +2 -0
- package/dist/ViewerConfiguration.d.ts +22 -0
- package/dist/ViewerConfiguration.js +6 -0
- package/dist/YjsCollaboration.d.ts +146 -0
- package/dist/YjsCollaboration.js +496 -0
- package/dist/addons.d.ts +193 -0
- package/dist/addons.js +122 -0
- package/dist/atomConstants.d.ts +3 -0
- package/dist/atomConstants.js +6 -0
- package/dist/atomInstances.d.ts +35 -0
- package/dist/atomInstances.js +79 -0
- package/dist/atomPolicy.d.ts +4 -0
- package/dist/atomPolicy.js +47 -0
- package/dist/atomUpdates.d.ts +2 -0
- package/dist/atomUpdates.js +38 -0
- package/dist/atoms.d.ts +92 -0
- package/dist/atoms.js +222 -0
- package/dist/attributeValidation.d.ts +4 -0
- package/dist/attributeValidation.js +97 -0
- package/dist/contentExpression.d.ts +6 -0
- package/dist/contentExpression.js +335 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +78 -0
- package/dist/listMarkers.d.ts +15 -0
- package/dist/listMarkers.js +21 -0
- package/dist/schemaDefinition.d.ts +143 -0
- package/dist/schemaDefinition.js +206 -0
- package/dist/schemaDocument.d.ts +17 -0
- package/dist/schemaDocument.js +69 -0
- package/dist/schemaDocumentConstruction.d.ts +5 -0
- package/dist/schemaDocumentConstruction.js +125 -0
- package/dist/schemaNormalization.d.ts +29 -0
- package/dist/schemaNormalization.js +313 -0
- package/dist/schemaPresets.d.ts +68 -0
- package/dist/schemaPresets.js +198 -0
- package/dist/schemaResolution.d.ts +9 -0
- package/dist/schemaResolution.js +211 -0
- package/dist/schemas.d.ts +5 -0
- package/dist/schemas.js +28 -0
- package/dist/specs/PreparedProseViewerNativeComponent.d.ts +37 -0
- package/dist/specs/PreparedProseViewerNativeComponent.js +6 -0
- package/dist/useEditorToolbarInteractions.d.ts +12 -0
- package/dist/useEditorToolbarInteractions.js +218 -0
- package/dist/useEditorToolbarItems.d.ts +8 -0
- package/dist/useEditorToolbarItems.js +280 -0
- package/dist/useEditorToolbarPresentation.d.ts +4 -0
- package/dist/useEditorToolbarPresentation.js +203 -0
- package/dist/useEditorToolbarState.d.ts +63 -0
- package/dist/useEditorToolbarState.js +108 -0
- package/dist/useFocusPreservingFrames.d.ts +17 -0
- package/dist/useFocusPreservingFrames.js +108 -0
- package/dist/useNativeEditor.d.ts +66 -0
- package/dist/useNativeEditor.js +370 -0
- package/dist/useRichTextEditorCommands.d.ts +21 -0
- package/dist/useRichTextEditorCommands.js +299 -0
- package/dist/useRichTextEditorEvents.d.ts +18 -0
- package/dist/useRichTextEditorEvents.js +216 -0
- package/dist/useRichTextEditorMentions.d.ts +11 -0
- package/dist/useRichTextEditorMentions.js +316 -0
- package/dist/useRichTextEditorPresentation.d.ts +5 -0
- package/dist/useRichTextEditorPresentation.js +178 -0
- package/dist/useRichTextEditorState.d.ts +180 -0
- package/dist/useRichTextEditorState.js +405 -0
- package/dist/useRichTextEditorUpdates.d.ts +10 -0
- package/dist/useRichTextEditorUpdates.js +308 -0
- package/dist/useViewerAtoms.d.ts +38 -0
- package/dist/useViewerAtoms.js +288 -0
- package/expo-module.config.json +13 -0
- package/ios/EditorAddons.swift +354 -0
- package/ios/EditorCodeHighlighting.swift +184 -0
- package/ios/EditorCore.xcframework/Info.plist +44 -0
- package/ios/EditorCore.xcframework/ios-arm64/libeditor_core.a +0 -0
- package/ios/EditorCore.xcframework/ios-arm64_x86_64-simulator/libeditor_core.a +0 -0
- package/ios/EditorInteractionOverlays.swift +697 -0
- package/ios/EditorLayoutManager.swift +971 -0
- package/ios/EditorNodeTypes.swift +37 -0
- package/ios/EditorStyleSheet.swift +461 -0
- package/ios/EditorTextView+AttributedPatch.swift +305 -0
- package/ios/EditorTextView+Binding.swift +61 -0
- package/ios/EditorTextView+Caret.swift +333 -0
- package/ios/EditorTextView+Commands.swift +203 -0
- package/ios/EditorTextView+Delegate.swift +65 -0
- package/ios/EditorTextView+Diagnostics.swift +225 -0
- package/ios/EditorTextView+DragDrop.swift +290 -0
- package/ios/EditorTextView+ExternalComposition.swift +364 -0
- package/ios/EditorTextView+Images.swift +354 -0
- package/ios/EditorTextView+InputTraits.swift +200 -0
- package/ios/EditorTextView+KeyboardInput.swift +318 -0
- package/ios/EditorTextView+Layout.swift +245 -0
- package/ios/EditorTextView+MarkedText.swift +267 -0
- package/ios/EditorTextView+NativeInputLifecycle.swift +372 -0
- package/ios/EditorTextView+NativeMutation.swift +471 -0
- package/ios/EditorTextView+Reconciliation.swift +97 -0
- package/ios/EditorTextView+RenderPatch.swift +573 -0
- package/ios/EditorTextView+Rendering.swift +539 -0
- package/ios/EditorTextView+Selection.swift +542 -0
- package/ios/EditorTextView.swift +953 -0
- package/ios/EditorTheme.swift +626 -0
- package/ios/EditorV2Adapter+Commands.swift +204 -0
- package/ios/EditorV2Adapter+Envelope.swift +238 -0
- package/ios/EditorV2Adapter+Mutation.swift +392 -0
- package/ios/EditorV2Adapter+Registry.swift +185 -0
- package/ios/EditorV2Adapter+RenderState.swift +360 -0
- package/ios/EditorV2Adapter+RenderValidation.swift +420 -0
- package/ios/EditorV2Adapter+Selection.swift +329 -0
- package/ios/EditorV2Adapter+TextCommands.swift +430 -0
- package/ios/EditorV2Adapter.swift +376 -0
- package/ios/EditorV2Shadow.swift +353 -0
- package/ios/Generated_editor_core.swift +2378 -0
- package/ios/NativeCodeHighlighting.swift +159 -0
- package/ios/NativeCollaborationSocket.swift +144 -0
- package/ios/NativeCollaborationTransport+Protocol.swift +258 -0
- package/ios/NativeCollaborationTransport+Socket.swift +379 -0
- package/ios/NativeCollaborationTransport+Validation.swift +103 -0
- package/ios/NativeCollaborationTransport.swift +322 -0
- package/ios/NativeCollaborationTransportRegistry.swift +521 -0
- package/ios/NativeEditorExpoView+AccessoryRetry.swift +219 -0
- package/ios/NativeEditorExpoView+Binding.swift +268 -0
- package/ios/NativeEditorExpoView+Diagnostics.swift +66 -0
- package/ios/NativeEditorExpoView+Events.swift +131 -0
- package/ios/NativeEditorExpoView+Focus.swift +169 -0
- package/ios/NativeEditorExpoView+MentionRetry.swift +288 -0
- package/ios/NativeEditorExpoView+Mentions.swift +288 -0
- package/ios/NativeEditorExpoView+Properties.swift +300 -0
- package/ios/NativeEditorExpoView+Toolbar.swift +86 -0
- package/ios/NativeEditorExpoView+Updates.swift +312 -0
- package/ios/NativeEditorExpoView.swift +349 -0
- package/ios/NativeEditorModule.swift +856 -0
- package/ios/NativeEditorViewRegistry.swift +226 -0
- package/ios/NativeToolbar+ButtonStyle.swift +214 -0
- package/ios/NativeToolbar+Buttons.swift +228 -0
- package/ios/NativeToolbar+Diagnostics.swift +114 -0
- package/ios/NativeToolbar+Menu.swift +101 -0
- package/ios/NativeToolbar+Models.swift +519 -0
- package/ios/NativeToolbar+Placeholder.swift +39 -0
- package/ios/NativeToolbar.swift +612 -0
- package/ios/OrderedListMarkerFormatter.swift +103 -0
- package/ios/PositionBridge.swift +596 -0
- package/ios/ProseViewerView.swift +462 -0
- package/ios/RenderBridge+Atoms.swift +288 -0
- package/ios/RenderBridge+Attachments.swift +246 -0
- package/ios/RenderBridge+BlockBoundaries.swift +313 -0
- package/ios/RenderBridge+Style.swift +343 -0
- package/ios/RenderBridge.swift +704 -0
- package/ios/RichTextEditorView.swift +930 -0
- package/ios/SharedNativeImagePipeline+Cache.swift +189 -0
- package/ios/SharedNativeImagePipeline+Transport.swift +328 -0
- package/ios/SharedNativeImagePipeline.swift +533 -0
- package/ios/Viewer/CoreTextProseLayoutEngine+AttributedText.swift +436 -0
- package/ios/Viewer/CoreTextProseLayoutEngine+Models.swift +322 -0
- package/ios/Viewer/CoreTextProseLayoutEngine.swift +635 -0
- package/ios/Viewer/Fabric/PREPPreparedProseViewerComponentView.h +4 -0
- package/ios/Viewer/Fabric/PREPPreparedProseViewerComponentView.mm +767 -0
- package/ios/Viewer/Fabric/PreparedProseMeasurementsManager.mm +118 -0
- package/ios/Viewer/NativeSVGImageDecoder.h +9 -0
- package/ios/Viewer/NativeSVGImageDecoder.mm +106 -0
- package/ios/Viewer/NativeSVGPreflight.h +11 -0
- package/ios/Viewer/NativeSVGPreflight.mm +219 -0
- package/ios/Viewer/PreparedProseDrawingView.swift +639 -0
- package/ios/Viewer/PreparedProseInstrumentation.swift +387 -0
- package/ios/Viewer/PreparedProseLayout.swift +326 -0
- package/ios/Viewer/PreparedProseLayoutCache.swift +766 -0
- package/ios/Viewer/PreparedProseLayoutRegistry+Artifacts.swift +377 -0
- package/ios/Viewer/PreparedProseLayoutRegistry+Fabric.swift +582 -0
- package/ios/Viewer/PreparedProseLayoutRegistry+FabricOwnership.swift +128 -0
- package/ios/Viewer/PreparedProseLayoutRegistry.swift +381 -0
- package/ios/Viewer/ViewerDocument.swift +575 -0
- package/ios/Viewer/ViewerFontEnvironment.swift +283 -0
- package/ios/Viewer/ViewerImagePipeline.swift +478 -0
- package/ios/editor_coreFFI/editor_coreFFI.h +1023 -0
- package/ios/editor_coreFFI/module.modulemap +7 -0
- package/package.json +151 -0
- package/react-native.config.js +17 -0
- package/rust/android/arm64-v8a/libeditor_core.so +0 -0
- package/rust/android/armeabi-v7a/libeditor_core.so +0 -0
- package/rust/android/x86/libeditor_core.so +0 -0
- package/rust/android/x86_64/libeditor_core.so +0 -0
- package/rust/bindings/kotlin/uniffi/editor_core/editor_core.kt +3146 -0
- package/src/AtomHost.tsx +180 -0
- package/src/DefaultAtomChip.tsx +27 -0
- package/src/EditorAddon.ts +65 -0
- package/src/EditorAddonNormalization.ts +49 -0
- package/src/EditorMentionThemeNormalization.ts +25 -0
- package/src/EditorMentionThemeValidation.ts +133 -0
- package/src/EditorStyleSheet.ts +9 -0
- package/src/EditorStyleSheetNormalization.ts +219 -0
- package/src/EditorStyleSheetTypes.ts +189 -0
- package/src/EditorTheme.ts +196 -0
- package/src/EditorToolbar.tsx +31 -0
- package/src/EditorToolbarComponent.tsx +23 -0
- package/src/EditorToolbarItems.tsx +64 -0
- package/src/EditorToolbarRegistry.tsx +254 -0
- package/src/EditorToolbarTypes.tsx +322 -0
- package/src/EditorToolbarVisuals.tsx +270 -0
- package/src/EditorUpdateRevision.ts +26 -0
- package/src/ExternalTextComposition.ts +658 -0
- package/src/ImageLoadingPolicy.ts +125 -0
- package/src/NativeEditorBoundaryError.ts +345 -0
- package/src/NativeEditorBridge.ts +93 -0
- package/src/NativeEditorCollaborationTransport.ts +493 -0
- package/src/NativeEditorCreateConfig.ts +326 -0
- package/src/NativeEditorCreateJson.ts +579 -0
- package/src/NativeEditorCreateValidation.ts +178 -0
- package/src/NativeEditorDocumentBridge.ts +485 -0
- package/src/NativeEditorDocumentHandle.ts +168 -0
- package/src/NativeEditorLocalAwareness.ts +168 -0
- package/src/NativeEditorNativeModule.ts +97 -0
- package/src/NativeEditorRenderNormalization.ts +320 -0
- package/src/NativeEditorResultNormalization.ts +469 -0
- package/src/NativeEditorTypes.ts +366 -0
- package/src/NativeEditorV2Decimal.ts +13 -0
- package/src/NativeProseViewer.tsx +356 -0
- package/src/NativeRichTextEditor.tsx +33 -0
- package/src/ResourceLimits.ts +187 -0
- package/src/RichTextEditor.tsx +27 -0
- package/src/RichTextEditorNativeTypes.tsx +144 -0
- package/src/RichTextEditorNativeView.tsx +21 -0
- package/src/RichTextEditorSerialization.tsx +381 -0
- package/src/RichTextEditorTypes.tsx +327 -0
- package/src/ViewerConfiguration.ts +23 -0
- package/src/YjsCollaboration.ts +692 -0
- package/src/addons.ts +311 -0
- package/src/atomConstants.ts +3 -0
- package/src/atomInstances.ts +123 -0
- package/src/atomPolicy.ts +47 -0
- package/src/atomUpdates.ts +52 -0
- package/src/atoms.ts +379 -0
- package/src/attributeValidation.ts +116 -0
- package/src/contentExpression.ts +338 -0
- package/src/index.ts +295 -0
- package/src/listMarkers.ts +18 -0
- package/src/schemaDefinition.ts +395 -0
- package/src/schemaDocument.ts +92 -0
- package/src/schemaDocumentConstruction.ts +148 -0
- package/src/schemaNormalization.ts +367 -0
- package/src/schemaPresets.ts +250 -0
- package/src/schemaResolution.ts +242 -0
- package/src/schemas.ts +43 -0
- package/src/specs/PreparedProseViewerNativeComponent.ts +40 -0
- package/src/useEditorToolbarInteractions.tsx +329 -0
- package/src/useEditorToolbarItems.tsx +390 -0
- package/src/useEditorToolbarPresentation.tsx +483 -0
- package/src/useEditorToolbarState.tsx +172 -0
- package/src/useFocusPreservingFrames.ts +171 -0
- package/src/useNativeEditor.ts +534 -0
- package/src/useRichTextEditorCommands.tsx +478 -0
- package/src/useRichTextEditorEvents.tsx +342 -0
- package/src/useRichTextEditorMentions.tsx +441 -0
- package/src/useRichTextEditorPresentation.tsx +563 -0
- package/src/useRichTextEditorState.tsx +620 -0
- package/src/useRichTextEditorUpdates.tsx +403 -0
- package/src/useViewerAtoms.tsx +427 -0
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
import type { SerializedEditorMentionTheme } from './EditorMentionThemeNormalization';
|
|
2
|
+
import { type SchemaDefinition } from './schemas';
|
|
3
|
+
import {
|
|
4
|
+
type EditorCollaborationLimits,
|
|
5
|
+
type EditorEditingLimits,
|
|
6
|
+
type EditorResourceLimits,
|
|
7
|
+
} from './ResourceLimits';
|
|
8
|
+
|
|
9
|
+
// Neutral document/render state types shared by the v2 document
|
|
10
|
+
// handle, the React components, and the schema/addon helpers.
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A selection in engine document positions.
|
|
14
|
+
*
|
|
15
|
+
* `anchor`/`head` are set for a `'text'` selection, `pos` for a `'node'` one,
|
|
16
|
+
* and neither for `'all'`. The `*Scalar` variants carry the same points
|
|
17
|
+
* measured in Unicode scalars instead of document positions.
|
|
18
|
+
*/
|
|
19
|
+
export interface Selection {
|
|
20
|
+
type: 'text' | 'node' | 'all';
|
|
21
|
+
/** Fixed end of a text selection. */
|
|
22
|
+
anchor?: number;
|
|
23
|
+
/** Moving end of a text selection. Equals `anchor` for a collapsed caret. */
|
|
24
|
+
head?: number;
|
|
25
|
+
/** Position of the selected node, for a `'node'` selection. */
|
|
26
|
+
pos?: number;
|
|
27
|
+
/** `anchor` in Unicode scalars. */
|
|
28
|
+
anchorScalar?: number;
|
|
29
|
+
/** `head` in Unicode scalars. */
|
|
30
|
+
headScalar?: number;
|
|
31
|
+
/** `pos` in Unicode scalars. */
|
|
32
|
+
posScalar?: number;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* An opaque, factory-created document range for local awareness publication.
|
|
37
|
+
* Its provenance is verified at runtime before a native call; the type brand
|
|
38
|
+
* prevents accidental literal construction in TypeScript consumers.
|
|
39
|
+
*/
|
|
40
|
+
export class NativeEditorLocalAwarenessSelectionValue {
|
|
41
|
+
private readonly _nativeEditorLocalAwarenessSelectionBrand!: undefined;
|
|
42
|
+
|
|
43
|
+
constructor(
|
|
44
|
+
readonly anchor: number,
|
|
45
|
+
readonly head: number
|
|
46
|
+
) {}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export type NativeEditorLocalAwarenessSelection = NativeEditorLocalAwarenessSelectionValue;
|
|
50
|
+
|
|
51
|
+
/** What this client publishes to other peers in one awareness update. */
|
|
52
|
+
export interface NativeEditorLocalAwarenessIntent {
|
|
53
|
+
/**
|
|
54
|
+
* Application-defined presence payload, e.g. `{ user: { name, color } }`.
|
|
55
|
+
* Published at the awareness root, so `cursor` and `focused` are reserved.
|
|
56
|
+
*/
|
|
57
|
+
state: Record<string, unknown>;
|
|
58
|
+
/** Whether this client currently holds editing focus. */
|
|
59
|
+
focused: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* How this intent treats the local cursor. Rust owns it as a sticky
|
|
62
|
+
* index, so the three cases are deliberately distinct:
|
|
63
|
+
*
|
|
64
|
+
* - **omitted** — retain the cursor already published. Use this for
|
|
65
|
+
* focus-only or state-only updates: restating a document position
|
|
66
|
+
* that the document has since invalidated would be refused.
|
|
67
|
+
* - **`null`** — publish presence with no cursor at all.
|
|
68
|
+
* - **a factory selection** — set the cursor to these positions, which
|
|
69
|
+
* must resolve against the current document.
|
|
70
|
+
*/
|
|
71
|
+
selection?: NativeEditorLocalAwarenessSelection | null;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** Where a list item sits in its list, supplied with every rendered list block. */
|
|
75
|
+
export interface ListContext {
|
|
76
|
+
/** Whether the enclosing list is numbered. */
|
|
77
|
+
ordered: boolean;
|
|
78
|
+
/** Zero-based position of this item among its siblings. */
|
|
79
|
+
index: number;
|
|
80
|
+
/** Number of sibling items in the enclosing list. */
|
|
81
|
+
total: number;
|
|
82
|
+
/** The list's `start` attribute — the number the first item takes. */
|
|
83
|
+
start: number;
|
|
84
|
+
isFirst: boolean;
|
|
85
|
+
isLast: boolean;
|
|
86
|
+
/** List variant, e.g. `'task'` for a checklist. */
|
|
87
|
+
kind?: string | null;
|
|
88
|
+
/** Checked state, for a task list item. */
|
|
89
|
+
checked?: boolean | null;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** A mark carrying attributes, e.g. a link with its `href`. */
|
|
93
|
+
export interface RenderMarkWithAttrs {
|
|
94
|
+
type: string;
|
|
95
|
+
[key: string]: unknown;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/** A mark on a rendered text run: its name alone, or its name plus attributes. */
|
|
99
|
+
export type RenderMark = string | RenderMarkWithAttrs;
|
|
100
|
+
|
|
101
|
+
/** One piece of the flattened render stream the engine produces for a document. */
|
|
102
|
+
export interface RenderElement {
|
|
103
|
+
type:
|
|
104
|
+
| 'textRun'
|
|
105
|
+
| 'blockStart'
|
|
106
|
+
| 'blockEnd'
|
|
107
|
+
| 'voidInline'
|
|
108
|
+
| 'voidBlock'
|
|
109
|
+
| 'opaqueInlineAtom'
|
|
110
|
+
| 'opaqueBlockAtom';
|
|
111
|
+
text?: string;
|
|
112
|
+
marks?: RenderMark[];
|
|
113
|
+
nodeType?: string;
|
|
114
|
+
depth?: number;
|
|
115
|
+
docPos?: number;
|
|
116
|
+
atomId?: string;
|
|
117
|
+
label?: string;
|
|
118
|
+
attrs?: Record<string, unknown>;
|
|
119
|
+
mentionTheme?: SerializedEditorMentionTheme;
|
|
120
|
+
listContext?: ListContext;
|
|
121
|
+
language?: string;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* A splice against the previously rendered block list: replace `deleteCount`
|
|
126
|
+
* blocks at `startIndex` with `renderBlocks`. Lets a view redraw only the
|
|
127
|
+
* blocks that changed.
|
|
128
|
+
*/
|
|
129
|
+
export interface RenderBlocksPatch {
|
|
130
|
+
baseDocumentVersion: string;
|
|
131
|
+
startIndex: number;
|
|
132
|
+
deleteCount: number;
|
|
133
|
+
renderBlocks: RenderElement[][];
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/** What the current selection can do — the state a toolbar renders from. */
|
|
137
|
+
export interface ActiveState {
|
|
138
|
+
/** Marks active at the selection, keyed by mark name. */
|
|
139
|
+
marks: Record<string, boolean>;
|
|
140
|
+
/** Attributes of each active mark, e.g. `{ link: { href } }`. */
|
|
141
|
+
markAttrs: Record<string, Record<string, unknown>>;
|
|
142
|
+
/** Node types enclosing the selection, keyed by node name. */
|
|
143
|
+
nodes: Record<string, boolean>;
|
|
144
|
+
/** Whether each command would apply at the selection, keyed by command name. */
|
|
145
|
+
commands: Record<string, boolean>;
|
|
146
|
+
/** Mark names the schema permits at the selection. */
|
|
147
|
+
allowedMarks: string[];
|
|
148
|
+
/** Node names that can be inserted at the selection. */
|
|
149
|
+
insertableNodes: string[];
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/** Undo and redo availability. */
|
|
153
|
+
export interface HistoryState {
|
|
154
|
+
canUndo: boolean;
|
|
155
|
+
canRedo: boolean;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export type DeepReadonly<T> =
|
|
159
|
+
T extends ReadonlyArray<infer Item>
|
|
160
|
+
? ReadonlyArray<DeepReadonly<Item>>
|
|
161
|
+
: T extends object
|
|
162
|
+
? { readonly [Key in keyof T]: DeepReadonly<T[Key]> }
|
|
163
|
+
: T;
|
|
164
|
+
|
|
165
|
+
/** A recursively immutable active-state view supplied by atomic render snapshots. */
|
|
166
|
+
export type ReadonlyActiveState = DeepReadonly<ActiveState>;
|
|
167
|
+
|
|
168
|
+
export type NativeEditorAtomicRenderPayload =
|
|
169
|
+
| { renderBlocks: RenderElement[][]; renderPatch: null }
|
|
170
|
+
| { renderBlocks: null; renderPatch: RenderBlocksPatch };
|
|
171
|
+
|
|
172
|
+
export type NativeEditorAtomicRenderSnapshotShape = NativeEditorAtomicRenderPayload & {
|
|
173
|
+
selection: Selection;
|
|
174
|
+
activeState: ActiveState;
|
|
175
|
+
historyState: HistoryState;
|
|
176
|
+
documentVersion: string;
|
|
177
|
+
stateRevision: string;
|
|
178
|
+
scalarLength: number;
|
|
179
|
+
/** The core's own answer for whether the document holds no content. */
|
|
180
|
+
documentIsEmpty: boolean;
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
/** A recursively immutable view of the value frozen by renderUpdate(). */
|
|
184
|
+
export type NativeEditorAtomicRenderSnapshot =
|
|
185
|
+
DeepReadonly<NativeEditorAtomicRenderSnapshotShape>;
|
|
186
|
+
|
|
187
|
+
/** One coherent view of the document after a change: what to draw, plus selection and state. */
|
|
188
|
+
export interface EditorUpdate {
|
|
189
|
+
/** The whole document as a flat render stream. */
|
|
190
|
+
renderElements: RenderElement[];
|
|
191
|
+
/** The same content grouped into blocks. */
|
|
192
|
+
renderBlocks?: RenderElement[][];
|
|
193
|
+
/** Blocks that changed since the previous update, when the engine could compute a splice. */
|
|
194
|
+
renderPatch?: RenderBlocksPatch;
|
|
195
|
+
selection: Selection;
|
|
196
|
+
activeState: ActiveState;
|
|
197
|
+
historyState: HistoryState;
|
|
198
|
+
/** Decimal-string engine document revision this update describes. */
|
|
199
|
+
documentVersion?: string;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/** The document in both serialized forms, read in one pass. */
|
|
203
|
+
export interface ContentSnapshot {
|
|
204
|
+
html: string;
|
|
205
|
+
json: DocumentJSON;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* A ProseMirror-style JSON document or fragment. Deliberately open: the shape
|
|
210
|
+
* is whatever the active {@link SchemaDefinition} admits, so nodes carry
|
|
211
|
+
* `type`, optional `attrs`, `content`, `marks`, and `text`.
|
|
212
|
+
*/
|
|
213
|
+
export interface DocumentJSON {
|
|
214
|
+
[key: string]: unknown;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/** A participant in a collaboration room. */
|
|
218
|
+
export interface CollaborationPeer {
|
|
219
|
+
/** Yjs client identity, as a decimal string. */
|
|
220
|
+
clientId: string;
|
|
221
|
+
/** Whether this record describes this device. */
|
|
222
|
+
isLocal: boolean;
|
|
223
|
+
/** The peer's published awareness state. */
|
|
224
|
+
state: Record<string, unknown> | null;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export type CommandBlockedReason =
|
|
228
|
+
| 'composition'
|
|
229
|
+
| 'detached'
|
|
230
|
+
| 'pendingUpdate'
|
|
231
|
+
| 'destroyed'
|
|
232
|
+
| 'unknown';
|
|
233
|
+
|
|
234
|
+
export interface CommandBlockedInfo {
|
|
235
|
+
blocked: boolean;
|
|
236
|
+
reason: CommandBlockedReason | null;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
export type NativeEditorHistoryMode = 'undoableBoundary' | 'resetAndClear';
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Provenance of an exported room snapshot. A snapshot only restores into a
|
|
243
|
+
* handle whose document, lineage, fragment, and schema match.
|
|
244
|
+
*/
|
|
245
|
+
export interface NativeEditorSnapshotMetadata {
|
|
246
|
+
/** Snapshot format version, so older exports can be recognized. */
|
|
247
|
+
formatVersion: number;
|
|
248
|
+
documentId: string;
|
|
249
|
+
lineageId: string;
|
|
250
|
+
fragmentName: string;
|
|
251
|
+
/** Digest of the schema the snapshot was taken under. */
|
|
252
|
+
schemaFingerprint: string;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/** An exported room document: its provenance plus the encoded Yjs state. */
|
|
256
|
+
export interface NativeEditorRoomSnapshot {
|
|
257
|
+
metadata: NativeEditorSnapshotMetadata;
|
|
258
|
+
/** Encoded Yjs state. Bounded by `EditorResourceLimits.maxEncodedStateBytes`. */
|
|
259
|
+
encodedState: Uint8Array;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* How a document handle's content starts out. Fixed at creation — there is no
|
|
264
|
+
* prop equivalent.
|
|
265
|
+
*
|
|
266
|
+
* - `localEmpty` — the schema's empty document.
|
|
267
|
+
* - `localJson` / `localHtml` — seeded from the given content.
|
|
268
|
+
* - `room` — a collaborative document. It renders nothing until the server's
|
|
269
|
+
* document arrives, unless a `snapshot` seeds it offline.
|
|
270
|
+
*/
|
|
271
|
+
export type NativeEditorInitialization =
|
|
272
|
+
| { type: 'localEmpty' }
|
|
273
|
+
| { type: 'localJson'; json: DocumentJSON }
|
|
274
|
+
| { type: 'localHtml'; html: string }
|
|
275
|
+
| {
|
|
276
|
+
type: 'room';
|
|
277
|
+
/** Room identity. Must match the collaboration controller's `documentId`. */
|
|
278
|
+
documentId: string;
|
|
279
|
+
/** Application-owned lineage tag, e.g. `` `my-app|${documentId}` ``. A
|
|
280
|
+
* snapshot only restores into a handle declaring the same lineage. */
|
|
281
|
+
lineageId: string;
|
|
282
|
+
/** Previously exported state, for offline restore. */
|
|
283
|
+
snapshot?: NativeEditorRoomSnapshot;
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Everything fixed for the lifetime of a document handle. Initialization,
|
|
288
|
+
* schema, editing policy, and limits all live here rather than on the view,
|
|
289
|
+
* so an editor and its collaboration controller cannot disagree about them.
|
|
290
|
+
*/
|
|
291
|
+
export interface NativeEditorCreateConfig {
|
|
292
|
+
initialization: NativeEditorInitialization;
|
|
293
|
+
/** Node and mark types this document admits. Defaults to `defaultSchema`. */
|
|
294
|
+
schema?: SchemaDefinition;
|
|
295
|
+
/** Yjs fragment the document lives in. Defaults to `'prosemirror'`. */
|
|
296
|
+
fragmentName?: string;
|
|
297
|
+
/** Engine-enforced editing policy. `RichTextEditor.editable` is a separate, per-view interaction gate. */
|
|
298
|
+
policy?: {
|
|
299
|
+
/** Maximum document text length in Unicode scalars. A change that would exceed it is rejected. */
|
|
300
|
+
maxLength?: number;
|
|
301
|
+
/** Whether the engine refuses every mutation, raising `MUTATION_REJECTED`. */
|
|
302
|
+
readOnly?: boolean;
|
|
303
|
+
/** Regular expression applied per character to typed input; characters that do not match are dropped. */
|
|
304
|
+
inputFilter?: string;
|
|
305
|
+
/** Whether `data:` image sources are admitted. Defaults to false. */
|
|
306
|
+
allowBase64Images?: boolean;
|
|
307
|
+
};
|
|
308
|
+
/** Resource bounds. See {@link EditorResourceLimits}. */
|
|
309
|
+
limits?: {
|
|
310
|
+
resource?: EditorResourceLimits;
|
|
311
|
+
editing?: EditorEditingLimits;
|
|
312
|
+
collaboration?: EditorCollaborationLimits;
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
export interface NativeEditorInputRequest {
|
|
317
|
+
baseDocumentRevision: string;
|
|
318
|
+
text: string;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
export interface NativeEditorCommandRequest {
|
|
322
|
+
baseDocumentRevision: string;
|
|
323
|
+
command: Record<string, unknown>;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
export interface NativeEditorLocalApiRequest {
|
|
327
|
+
baseDocumentRevision: string;
|
|
328
|
+
setJson?: DocumentJSON;
|
|
329
|
+
setHtml?: string;
|
|
330
|
+
history: NativeEditorHistoryMode;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
export type NativeEditorOffsetKind = 'scalar' | 'utf16';
|
|
334
|
+
|
|
335
|
+
export type NativeEditorPositionAffinity = 'before' | 'after';
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Mirrors the Rust `PositionEnvelope`. `offset` is measured in the currency
|
|
339
|
+
* named by `kind` — scalar offsets are Unicode scalars, not document positions.
|
|
340
|
+
*/
|
|
341
|
+
export interface NativeEditorPositionEnvelope {
|
|
342
|
+
offset: number;
|
|
343
|
+
kind: NativeEditorOffsetKind;
|
|
344
|
+
affinity?: NativeEditorPositionAffinity;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
export type NativeEditorSelectionEnvelope =
|
|
348
|
+
| {
|
|
349
|
+
type: 'text';
|
|
350
|
+
anchor: NativeEditorPositionEnvelope;
|
|
351
|
+
head: NativeEditorPositionEnvelope;
|
|
352
|
+
}
|
|
353
|
+
| { type: 'node'; at: NativeEditorPositionEnvelope }
|
|
354
|
+
| { type: 'atom'; docPos: number; edge: 'node' | 'before' | 'after' }
|
|
355
|
+
| { type: 'all' };
|
|
356
|
+
|
|
357
|
+
export interface NativeEditorSelectionRequest {
|
|
358
|
+
baseDocumentRevision: string;
|
|
359
|
+
selection: NativeEditorSelectionEnvelope;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
export interface NativeEditorReplaceDocumentRequest {
|
|
363
|
+
setJson?: DocumentJSON;
|
|
364
|
+
setHtml?: string;
|
|
365
|
+
history: NativeEditorHistoryMode;
|
|
366
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const CANONICAL_V2_U64 = /^(0|[1-9]\d*)$/;
|
|
2
|
+
const V2_U64_MAX = '18446744073709551615';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Canonical v2 u64 wire values are decimal strings only. The range check is
|
|
6
|
+
* lexical after syntax validation, so JavaScript never coerces the value.
|
|
7
|
+
*/
|
|
8
|
+
export function normalizeNativeEditorV2U64(value: unknown): string | null {
|
|
9
|
+
if (typeof value !== 'string' || !CANONICAL_V2_U64.test(value)) return null;
|
|
10
|
+
if (value.length < V2_U64_MAX.length) return value;
|
|
11
|
+
if (value.length > V2_U64_MAX.length || value > V2_U64_MAX) return null;
|
|
12
|
+
return value;
|
|
13
|
+
}
|