@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,283 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializedJsonCache = exports.EMPTY_ACTIVE_STATE = exports.nextNativeEditorToolbarFrameOwnerId = exports.IMAGE_TOOLBAR_ACTION_KEY = exports.LINK_TOOLBAR_ACTION_KEY = void 0;
|
|
4
|
+
exports.externalCompositionErrorPayload = externalCompositionErrorPayload;
|
|
5
|
+
exports.mergeMentionSuggestionTheme = mergeMentionSuggestionTheme;
|
|
6
|
+
exports.allocateToolbarFrameOwnerId = allocateToolbarFrameOwnerId;
|
|
7
|
+
exports.selectedAtomKeys = selectedAtomKeys;
|
|
8
|
+
exports.equalStringSets = equalStringSets;
|
|
9
|
+
exports.equalAtomInstances = equalAtomInstances;
|
|
10
|
+
exports.isRecord = isRecord;
|
|
11
|
+
exports.parseSelectionFromUpdate = parseSelectionFromUpdate;
|
|
12
|
+
exports.stringArray = stringArray;
|
|
13
|
+
exports.booleanMap = booleanMap;
|
|
14
|
+
exports.parseActiveStateFromUpdate = parseActiveStateFromUpdate;
|
|
15
|
+
exports.isRevisionMismatchError = isRevisionMismatchError;
|
|
16
|
+
exports.isPositionInvalidError = isPositionInvalidError;
|
|
17
|
+
exports.acceptNativeCommitPayload = acceptNativeCommitPayload;
|
|
18
|
+
exports.mapToolbarChildForNative = mapToolbarChildForNative;
|
|
19
|
+
exports.mapToolbarItemsForNative = mapToolbarItemsForNative;
|
|
20
|
+
exports.serializeRemoteSelections = serializeRemoteSelections;
|
|
21
|
+
exports.serializeToolbarFrames = serializeToolbarFrames;
|
|
22
|
+
exports.parseCaretRectJson = parseCaretRectJson;
|
|
23
|
+
exports.stringifyCachedJson = stringifyCachedJson;
|
|
24
|
+
exports.useSerializedValue = useSerializedValue;
|
|
25
|
+
const NativeEditorBoundaryError_1 = require("./NativeEditorBoundaryError");
|
|
26
|
+
const NativeEditorBridge_1 = require("./NativeEditorBridge");
|
|
27
|
+
const atomInstances_1 = require("./atomInstances");
|
|
28
|
+
const schemas_1 = require("./schemas");
|
|
29
|
+
const react_1 = require("react");
|
|
30
|
+
function externalCompositionErrorPayload(error) {
|
|
31
|
+
return error instanceof NativeEditorBoundaryError_1.NativeEditorErrorBase ? error.error : error;
|
|
32
|
+
}
|
|
33
|
+
exports.LINK_TOOLBAR_ACTION_KEY = '__native-editor-link__';
|
|
34
|
+
exports.IMAGE_TOOLBAR_ACTION_KEY = '__native-editor-image__';
|
|
35
|
+
exports.nextNativeEditorToolbarFrameOwnerId = 1;
|
|
36
|
+
function mergeMentionSuggestionTheme(baseTheme, resolvedTheme) {
|
|
37
|
+
if (baseTheme == null)
|
|
38
|
+
return resolvedTheme;
|
|
39
|
+
if (resolvedTheme == null)
|
|
40
|
+
return baseTheme;
|
|
41
|
+
return {
|
|
42
|
+
node: { ...baseTheme.node, ...resolvedTheme.node },
|
|
43
|
+
suggestions: {
|
|
44
|
+
...baseTheme.suggestions,
|
|
45
|
+
...resolvedTheme.suggestions,
|
|
46
|
+
option: { ...baseTheme.suggestions?.option, ...resolvedTheme.suggestions?.option },
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function allocateToolbarFrameOwnerId() {
|
|
51
|
+
const ownerId = exports.nextNativeEditorToolbarFrameOwnerId;
|
|
52
|
+
exports.nextNativeEditorToolbarFrameOwnerId += 1;
|
|
53
|
+
return ownerId;
|
|
54
|
+
}
|
|
55
|
+
exports.EMPTY_ACTIVE_STATE = {
|
|
56
|
+
marks: {},
|
|
57
|
+
markAttrs: {},
|
|
58
|
+
nodes: {},
|
|
59
|
+
commands: {},
|
|
60
|
+
allowedMarks: [],
|
|
61
|
+
insertableNodes: [],
|
|
62
|
+
};
|
|
63
|
+
function selectedAtomKeys(selection, instances) {
|
|
64
|
+
return new Set(instances
|
|
65
|
+
.filter((instance) => (0, atomInstances_1.atomSelected)(selection, instance.docPos))
|
|
66
|
+
.map(({ key }) => key));
|
|
67
|
+
}
|
|
68
|
+
function equalStringSets(left, right) {
|
|
69
|
+
return left.size === right.size && [...left].every((value) => right.has(value));
|
|
70
|
+
}
|
|
71
|
+
function equalAtomInstances(left, right) {
|
|
72
|
+
return (left.length === right.length &&
|
|
73
|
+
left.every((instance, index) => instance.key === right[index]?.key &&
|
|
74
|
+
instance.nodeType === right[index]?.nodeType &&
|
|
75
|
+
instance.docPos === right[index]?.docPos &&
|
|
76
|
+
stringifyCachedJson(instance.attrs) === stringifyCachedJson(right[index]?.attrs)));
|
|
77
|
+
}
|
|
78
|
+
function isRecord(value) {
|
|
79
|
+
return value != null && typeof value === 'object' && !Array.isArray(value);
|
|
80
|
+
}
|
|
81
|
+
function parseSelectionFromUpdate(value) {
|
|
82
|
+
if (!isRecord(value))
|
|
83
|
+
return null;
|
|
84
|
+
if (value.type === 'all')
|
|
85
|
+
return { type: 'all' };
|
|
86
|
+
if (value.type === 'node' && typeof value.pos === 'number') {
|
|
87
|
+
return { type: 'node', pos: value.pos };
|
|
88
|
+
}
|
|
89
|
+
if (value.type === 'text' &&
|
|
90
|
+
typeof value.anchor === 'number' &&
|
|
91
|
+
typeof value.head === 'number') {
|
|
92
|
+
return { type: 'text', anchor: value.anchor, head: value.head };
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
function stringArray(value) {
|
|
97
|
+
return Array.isArray(value)
|
|
98
|
+
? value.filter((item) => typeof item === 'string')
|
|
99
|
+
: [];
|
|
100
|
+
}
|
|
101
|
+
function booleanMap(value) {
|
|
102
|
+
if (!isRecord(value))
|
|
103
|
+
return {};
|
|
104
|
+
const result = {};
|
|
105
|
+
for (const key of Object.keys(value)) {
|
|
106
|
+
if (typeof value[key] === 'boolean')
|
|
107
|
+
result[key] = value[key];
|
|
108
|
+
}
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
function parseActiveStateFromUpdate(value) {
|
|
112
|
+
if (!isRecord(value))
|
|
113
|
+
return null;
|
|
114
|
+
return {
|
|
115
|
+
marks: booleanMap(value.marks),
|
|
116
|
+
markAttrs: isRecord(value.markAttrs)
|
|
117
|
+
? value.markAttrs
|
|
118
|
+
: {},
|
|
119
|
+
nodes: booleanMap(value.nodes),
|
|
120
|
+
commands: booleanMap(value.commands),
|
|
121
|
+
allowedMarks: stringArray(value.allowedMarks),
|
|
122
|
+
insertableNodes: stringArray(value.insertableNodes),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function isRevisionMismatchError(error) {
|
|
126
|
+
return error instanceof NativeEditorBoundaryError_1.NativeEditorOperationError && error.code === 'REVISION_MISMATCH';
|
|
127
|
+
}
|
|
128
|
+
function isPositionInvalidError(error) {
|
|
129
|
+
return error instanceof NativeEditorBoundaryError_1.NativeEditorOperationError && error.code === 'POSITION_INVALID';
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Native commits are a transport boundary, not a best-effort view hint. The
|
|
133
|
+
* payload must be a complete atomic snapshot paired with the same canonical
|
|
134
|
+
* revision that native says it committed.
|
|
135
|
+
*/
|
|
136
|
+
function acceptNativeCommitPayload(payload, boundEditorId, lastAcceptedRevision) {
|
|
137
|
+
const canonicalBoundEditorId = (0, NativeEditorBridge_1.normalizeNativeEditorV2DecimalId)(boundEditorId);
|
|
138
|
+
const canonicalEditorId = (0, NativeEditorBridge_1.normalizeNativeEditorV2DecimalId)(payload.editorId);
|
|
139
|
+
const canonicalRevision = (0, NativeEditorBridge_1.normalizeNativeEditorV2DecimalId)(payload.documentRevision);
|
|
140
|
+
if (canonicalBoundEditorId == null ||
|
|
141
|
+
canonicalBoundEditorId !== boundEditorId ||
|
|
142
|
+
canonicalEditorId == null ||
|
|
143
|
+
canonicalEditorId !== payload.editorId ||
|
|
144
|
+
canonicalEditorId !== boundEditorId ||
|
|
145
|
+
canonicalRevision == null ||
|
|
146
|
+
canonicalRevision !== payload.documentRevision) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
const snapshot = (0, NativeEditorBridge_1.normalizeNativeEditorV2RenderUpdateValue)(payload.updateJson);
|
|
150
|
+
if (snapshot == null || snapshot.documentVersion !== canonicalRevision)
|
|
151
|
+
return null;
|
|
152
|
+
if (lastAcceptedRevision != null && BigInt(canonicalRevision) <= BigInt(lastAcceptedRevision)) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
return { documentRevision: canonicalRevision, snapshot };
|
|
156
|
+
}
|
|
157
|
+
function mapToolbarChildForNative(item, activeState, editable, onRequestLink, onRequestImage) {
|
|
158
|
+
if (item.type === 'link') {
|
|
159
|
+
return {
|
|
160
|
+
type: 'action',
|
|
161
|
+
key: exports.LINK_TOOLBAR_ACTION_KEY,
|
|
162
|
+
label: item.label,
|
|
163
|
+
icon: item.icon,
|
|
164
|
+
buttonStyle: item.buttonStyle,
|
|
165
|
+
placement: item.placement,
|
|
166
|
+
isActive: activeState.marks.link === true,
|
|
167
|
+
isDisabled: !editable || !onRequestLink || !activeState.allowedMarks.includes('link'),
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
if (item.type === 'image') {
|
|
171
|
+
return {
|
|
172
|
+
type: 'action',
|
|
173
|
+
key: exports.IMAGE_TOOLBAR_ACTION_KEY,
|
|
174
|
+
label: item.label,
|
|
175
|
+
icon: item.icon,
|
|
176
|
+
buttonStyle: item.buttonStyle,
|
|
177
|
+
placement: item.placement,
|
|
178
|
+
isActive: false,
|
|
179
|
+
isDisabled: !editable ||
|
|
180
|
+
!onRequestImage ||
|
|
181
|
+
!activeState.insertableNodes.includes(schemas_1.IMAGE_NODE_NAME),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
return item;
|
|
185
|
+
}
|
|
186
|
+
function mapToolbarItemsForNative(items, activeState, editable, onRequestLink, onRequestImage) {
|
|
187
|
+
return items.map((item) => {
|
|
188
|
+
if (item.type === 'group') {
|
|
189
|
+
return {
|
|
190
|
+
...item,
|
|
191
|
+
items: item.items.map((child) => mapToolbarChildForNative(child, activeState, editable, onRequestLink, onRequestImage)),
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
if (item.type === 'separator') {
|
|
195
|
+
return item;
|
|
196
|
+
}
|
|
197
|
+
return mapToolbarChildForNative(item, activeState, editable, onRequestLink, onRequestImage);
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
function serializeRemoteSelections(remoteSelections) {
|
|
201
|
+
if (!remoteSelections || remoteSelections.length === 0) {
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
const normalized = remoteSelections.map((selection) => {
|
|
205
|
+
const clientId = (0, NativeEditorBridge_1.normalizeNativeEditorV2DecimalId)(selection.clientId);
|
|
206
|
+
if (clientId == null) {
|
|
207
|
+
throw new Error('NativeRichTextEditor: remote clientId must be canonical decimal u64');
|
|
208
|
+
}
|
|
209
|
+
return {
|
|
210
|
+
...selection,
|
|
211
|
+
clientId,
|
|
212
|
+
anchor: (0, NativeEditorBridge_1.requireNativeEditorV2U32)(selection.anchor, 'remote selection anchor'),
|
|
213
|
+
head: (0, NativeEditorBridge_1.requireNativeEditorV2U32)(selection.head, 'remote selection head'),
|
|
214
|
+
};
|
|
215
|
+
});
|
|
216
|
+
return stringifyCachedJson(normalized);
|
|
217
|
+
}
|
|
218
|
+
function serializeToolbarFrames(frames) {
|
|
219
|
+
if (!frames || frames.length === 0) {
|
|
220
|
+
return undefined;
|
|
221
|
+
}
|
|
222
|
+
return JSON.stringify(frames.length === 1 ? frames[0] : { frames });
|
|
223
|
+
}
|
|
224
|
+
function parseCaretRectJson(raw) {
|
|
225
|
+
if (!raw) {
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
try {
|
|
229
|
+
const parsed = JSON.parse(raw);
|
|
230
|
+
const x = typeof parsed.x === 'number' ? parsed.x : null;
|
|
231
|
+
const y = typeof parsed.y === 'number' ? parsed.y : null;
|
|
232
|
+
const width = typeof parsed.width === 'number' ? parsed.width : null;
|
|
233
|
+
const height = typeof parsed.height === 'number' ? parsed.height : null;
|
|
234
|
+
const editorWidth = typeof parsed.editorWidth === 'number' ? parsed.editorWidth : null;
|
|
235
|
+
const editorHeight = typeof parsed.editorHeight === 'number' ? parsed.editorHeight : null;
|
|
236
|
+
if (x == null ||
|
|
237
|
+
y == null ||
|
|
238
|
+
width == null ||
|
|
239
|
+
height == null ||
|
|
240
|
+
editorWidth == null ||
|
|
241
|
+
editorHeight == null) {
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
return { x, y, width, height, editorWidth, editorHeight };
|
|
245
|
+
}
|
|
246
|
+
catch {
|
|
247
|
+
return null;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
exports.serializedJsonCache = new WeakMap();
|
|
251
|
+
function stringifyCachedJson(value) {
|
|
252
|
+
if (value != null && typeof value === 'object') {
|
|
253
|
+
const cached = exports.serializedJsonCache.get(value);
|
|
254
|
+
if (cached != null) {
|
|
255
|
+
return cached;
|
|
256
|
+
}
|
|
257
|
+
const serialized = JSON.stringify(value);
|
|
258
|
+
exports.serializedJsonCache.set(value, serialized);
|
|
259
|
+
return serialized;
|
|
260
|
+
}
|
|
261
|
+
return JSON.stringify(value);
|
|
262
|
+
}
|
|
263
|
+
function useSerializedValue(value, serialize, revision) {
|
|
264
|
+
const cacheRef = (0, react_1.useRef)(null);
|
|
265
|
+
const hasRevision = revision !== undefined;
|
|
266
|
+
const cached = cacheRef.current;
|
|
267
|
+
if (cached) {
|
|
268
|
+
if (hasRevision && cached.hasRevision && Object.is(cached.revision, revision)) {
|
|
269
|
+
return cached.serialized;
|
|
270
|
+
}
|
|
271
|
+
if (Object.is(cached.value, value) && cached.hasRevision === hasRevision) {
|
|
272
|
+
return cached.serialized;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
const serialized = value == null ? undefined : serialize(value);
|
|
276
|
+
cacheRef.current = {
|
|
277
|
+
value,
|
|
278
|
+
revision,
|
|
279
|
+
hasRevision,
|
|
280
|
+
serialized,
|
|
281
|
+
};
|
|
282
|
+
return serialized;
|
|
283
|
+
}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
import { type DocumentJSON, type HistoryState, type NativeEditorDocumentHandle, type ReadonlyActiveState, type Selection } from './NativeEditorBridge';
|
|
2
|
+
import { type ImageNodeAttributes } from './schemas';
|
|
3
|
+
import { type EditorToolbarHeadingLevel, type EditorToolbarItem } from './EditorToolbar';
|
|
4
|
+
import { type EditorImageLoadingPolicy } from './ImageLoadingPolicy';
|
|
5
|
+
import { type RichTextEditorFocusPreservingRefs } from './useFocusPreservingFrames';
|
|
6
|
+
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
7
|
+
import { type EditorTheme } from './EditorTheme';
|
|
8
|
+
import { type EditorAddons } from './addons';
|
|
9
|
+
import { type AtomNodeDefinition } from './atoms';
|
|
10
|
+
import { type AtomViewport } from './AtomHost';
|
|
11
|
+
import { type ExternalTextCompositionOptions, type ExternalTextCompositionSession } from './ExternalTextComposition';
|
|
12
|
+
/**
|
|
13
|
+
* How the editor handles content taller than its frame: `'fixed'` scrolls
|
|
14
|
+
* internally, `'autoGrow'` grows the view to fit.
|
|
15
|
+
*/
|
|
16
|
+
export type RichTextEditorHeightBehavior = 'fixed' | 'autoGrow';
|
|
17
|
+
/**
|
|
18
|
+
* Where the toolbar lives: `'keyboard'` attaches the native toolbar to the
|
|
19
|
+
* keyboard, `'inline'` renders the JavaScript `EditorToolbar` below the editor.
|
|
20
|
+
*/
|
|
21
|
+
export type RichTextEditorToolbarPlacement = 'keyboard' | 'inline';
|
|
22
|
+
/**
|
|
23
|
+
* What an external `valueJSON` change does to undo history: `'replace'`
|
|
24
|
+
* records one undoable step, `'reset'` clears history entirely.
|
|
25
|
+
*/
|
|
26
|
+
export type RichTextEditorValueJSONUpdateMode = 'replace' | 'reset';
|
|
27
|
+
/** Native keyboard auto-capitalization behavior. */
|
|
28
|
+
export type RichTextEditorAutoCapitalize = 'none' | 'sentences' | 'words' | 'characters';
|
|
29
|
+
/** Native keyboard layout. Values not supported by a platform fall back to its default. */
|
|
30
|
+
export type RichTextEditorKeyboardType = 'default' | 'email-address' | 'numeric' | 'phone-pad' | 'ascii-capable' | 'numbers-and-punctuation' | 'url' | 'number-pad' | 'name-phone-pad' | 'decimal-pad' | 'twitter' | 'web-search' | 'visible-password' | 'ascii-capable-number-pad';
|
|
31
|
+
/** Android-specific options passed to the active input method. */
|
|
32
|
+
export interface RichTextEditorAndroidInputOptions {
|
|
33
|
+
/** Private options interpreted by the selected Android IME. */
|
|
34
|
+
privateImeOptions?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* One remote collaborator's caret or selection, drawn as a native overlay.
|
|
38
|
+
* `useYjsCollaboration` builds these from awareness and passes them through
|
|
39
|
+
* `editorBindings`.
|
|
40
|
+
*/
|
|
41
|
+
export interface RemoteSelectionDecoration {
|
|
42
|
+
/** Peer identity. Also the overlay's React-style key. */
|
|
43
|
+
clientId: string;
|
|
44
|
+
/** Fixed end of the remote selection, in engine doc positions. */
|
|
45
|
+
anchor: number;
|
|
46
|
+
/** Moving end. Equals `anchor` for a collapsed remote caret. */
|
|
47
|
+
head: number;
|
|
48
|
+
/** Caret and label color, as a color string. */
|
|
49
|
+
color: string;
|
|
50
|
+
/** Name shown on the caret label. */
|
|
51
|
+
name?: string;
|
|
52
|
+
avatarUrl?: string;
|
|
53
|
+
/** Whether that peer's editor holds focus. The caret bar is drawn only when
|
|
54
|
+
* true; the highlighted range is drawn either way. Absent counts as false. */
|
|
55
|
+
isFocused?: boolean;
|
|
56
|
+
}
|
|
57
|
+
export interface LinkRequestContext {
|
|
58
|
+
/** Current link href at the selection, when one is active. */
|
|
59
|
+
href?: string;
|
|
60
|
+
/** Whether a link mark is active at the selection. */
|
|
61
|
+
isActive: boolean;
|
|
62
|
+
/** The selection the request was issued for (engine doc positions). */
|
|
63
|
+
selection: Selection;
|
|
64
|
+
/** Apply or update the link on the engine selection. */
|
|
65
|
+
setLink: (href: string) => void;
|
|
66
|
+
/** Remove the link from the engine selection. */
|
|
67
|
+
unsetLink: () => void;
|
|
68
|
+
}
|
|
69
|
+
export interface ImageRequestContext {
|
|
70
|
+
/** The selection the request was issued for (engine doc positions). */
|
|
71
|
+
selection: Selection;
|
|
72
|
+
/** Insert a block image node at the engine selection. */
|
|
73
|
+
insertImage: (src: string, attrs?: Omit<ImageNodeAttributes, 'src'>) => void;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The v2 prop contract. Initialization and input policy are NOT props:
|
|
77
|
+
* - `initialContent` / `initialJSON` are gone: initial document state
|
|
78
|
+
* belongs to the handle's creation config (`NativeEditorInitialization`:
|
|
79
|
+
* `localEmpty` / `localJson` / `localHtml` / `room`).
|
|
80
|
+
* - `schema` and `fragmentName` belong to `NativeEditorCreateConfig`.
|
|
81
|
+
* - `maxLength`, engine-enforced `allowBase64Images`, `readOnly`, and
|
|
82
|
+
* `inputFilter` belong to `NativeEditorCreateConfig.policy`.
|
|
83
|
+
* - `resourceLimits` belongs to `NativeEditorCreateConfig.limits.resource`.
|
|
84
|
+
* `editable` is only a per-view interaction gate; it never changes the
|
|
85
|
+
* handle's engine read-only policy.
|
|
86
|
+
* - `autoDetectLinks`, `preserveSelectionOnValueJSONReset`, and
|
|
87
|
+
* `selectionOnValueJSONReset` were removed with the legacy bridge and have
|
|
88
|
+
* no v2 equivalent.
|
|
89
|
+
*/
|
|
90
|
+
export interface RichTextEditorProps {
|
|
91
|
+
/** Accessible name announced for the native editable control. */
|
|
92
|
+
accessibilityLabel?: string;
|
|
93
|
+
/** Additional guidance announced for the native editable control. */
|
|
94
|
+
accessibilityHint?: string;
|
|
95
|
+
/** Controlled HTML content. External changes are diffed and applied. */
|
|
96
|
+
value?: string;
|
|
97
|
+
/** Controlled ProseMirror JSON content. Ignored if value is set. */
|
|
98
|
+
valueJSON?: DocumentJSON;
|
|
99
|
+
/** Optional stable revision hint for `valueJSON` to avoid reserializing equal docs on rerender. */
|
|
100
|
+
valueJSONRevision?: string;
|
|
101
|
+
/** Controls how external `valueJSON` changes are applied. Defaults to preserving undo history. */
|
|
102
|
+
valueJSONUpdateMode?: RichTextEditorValueJSONUpdateMode;
|
|
103
|
+
/** Placeholder text shown when editor is empty. */
|
|
104
|
+
placeholder?: string;
|
|
105
|
+
/** Whether the editor is editable. Defaults to true. When false, every mutation ref method rejects with MUTATION_REJECTED; selection and controlled content still flow. */
|
|
106
|
+
editable?: boolean;
|
|
107
|
+
/** Whether to auto-focus on mount. */
|
|
108
|
+
autoFocus?: boolean;
|
|
109
|
+
/** Controls native keyboard auto-capitalization. Defaults to sentences. */
|
|
110
|
+
autoCapitalize?: RichTextEditorAutoCapitalize;
|
|
111
|
+
/** Controls native keyboard autocorrection. Defaults to the platform-specific editor default. */
|
|
112
|
+
autoCorrect?: boolean;
|
|
113
|
+
/** Controls the native keyboard layout. Defaults to the platform default keyboard. */
|
|
114
|
+
keyboardType?: RichTextEditorKeyboardType;
|
|
115
|
+
/** Android-specific input-method options. Ignored on other platforms. */
|
|
116
|
+
androidInputOptions?: RichTextEditorAndroidInputOptions;
|
|
117
|
+
/** Controls whether the editor scrolls internally or grows with content. */
|
|
118
|
+
heightBehavior?: RichTextEditorHeightBehavior;
|
|
119
|
+
/** Whether to show the formatting toolbar. Defaults to true. */
|
|
120
|
+
showToolbar?: boolean;
|
|
121
|
+
/** Whether the toolbar is attached to the keyboard natively or rendered inline in React. */
|
|
122
|
+
toolbarPlacement?: RichTextEditorToolbarPlacement;
|
|
123
|
+
/** Displayed toolbar buttons, in order. Supports custom marks/nodes. */
|
|
124
|
+
toolbarItems?: readonly EditorToolbarItem[];
|
|
125
|
+
/** Called when a custom `action` toolbar item is pressed. */
|
|
126
|
+
onToolbarAction?: (key: string) => void;
|
|
127
|
+
/** Called when a toolbar link item is pressed so the host can collect/edit a URL. */
|
|
128
|
+
onRequestLink?: (context: LinkRequestContext) => void;
|
|
129
|
+
/** Called when a toolbar image item is pressed so the host can choose an image source. */
|
|
130
|
+
onRequestImage?: (context: ImageRequestContext) => void;
|
|
131
|
+
/** Bounds native data-URL and remote image loading. */
|
|
132
|
+
imageLoadingPolicy?: EditorImageLoadingPolicy;
|
|
133
|
+
/** Whether selected images show native resize handles. */
|
|
134
|
+
allowImageResizing?: boolean;
|
|
135
|
+
/** Called when content changes with the current HTML. */
|
|
136
|
+
onContentChange?: (html: string) => void;
|
|
137
|
+
/** Called when content changes with the current ProseMirror JSON. */
|
|
138
|
+
onContentChangeJSON?: (json: DocumentJSON) => void;
|
|
139
|
+
/** Called when selection changes (engine doc positions). */
|
|
140
|
+
onSelectionChange?: (selection: Selection) => void;
|
|
141
|
+
/** Called when active formatting state changes. */
|
|
142
|
+
onActiveStateChange?: (state: ReadonlyActiveState) => void;
|
|
143
|
+
/** Called when undo/redo availability changes. */
|
|
144
|
+
onHistoryStateChange?: (state: HistoryState) => void;
|
|
145
|
+
/** Called when the editor gains focus. */
|
|
146
|
+
onFocus?: () => void;
|
|
147
|
+
/** Called when the editor loses focus. */
|
|
148
|
+
onBlur?: () => void;
|
|
149
|
+
/** External native views whose taps preserve this editor's focus, keyboard, and selection. */
|
|
150
|
+
focusPreservingRefs?: RichTextEditorFocusPreservingRefs;
|
|
151
|
+
/** Style applied to the native editor view. */
|
|
152
|
+
style?: StyleProp<ViewStyle>;
|
|
153
|
+
/** Style applied to the outer React container wrapping the editor and inline toolbar. */
|
|
154
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
155
|
+
/** Optional native content theme applied to rendered blocks and typing attrs. */
|
|
156
|
+
theme?: EditorTheme;
|
|
157
|
+
/** Optional addon configuration. */
|
|
158
|
+
addons?: EditorAddons;
|
|
159
|
+
/** Custom void-block node definitions mounted as React children. */
|
|
160
|
+
atoms?: readonly AtomNodeDefinition<any>[];
|
|
161
|
+
/** Whether atom controls receive input, independently of editable. Defaults to true. */
|
|
162
|
+
atomsInteractive?: boolean;
|
|
163
|
+
/** Opt-in atom virtualization using the native scroll viewport. */
|
|
164
|
+
virtualizeAtoms?: boolean;
|
|
165
|
+
/** Overrides the visible range in native atom layout coordinates, in points. */
|
|
166
|
+
atomViewport?: AtomViewport;
|
|
167
|
+
/** Remote awareness selections rendered as native overlays. */
|
|
168
|
+
remoteSelections?: readonly RemoteSelectionDecoration[];
|
|
169
|
+
/**
|
|
170
|
+
* Shared v2 document session — the only construction path. The native
|
|
171
|
+
* view binds to the same session (its editorId is passed straight to the
|
|
172
|
+
* view), so typing, IME, selection, and toolbar commands flow through
|
|
173
|
+
* the native v2 adapters into the shared engine while this component
|
|
174
|
+
* drives the retained document API (`value`, `valueJSON`, `setContent`,
|
|
175
|
+
* `setContentJson`, `getContent`, `getContentJson`) through the same
|
|
176
|
+
* handle. The same handle is handed to the collaboration controller
|
|
177
|
+
* (one session). Initialization belongs to the handle's creation config.
|
|
178
|
+
* A room handle awaiting the server document renders nothing until Rust
|
|
179
|
+
* promotes an accepted Step 2.
|
|
180
|
+
*/
|
|
181
|
+
documentHandle: NativeEditorDocumentHandle;
|
|
182
|
+
/**
|
|
183
|
+
* Revision signal rendered by the collaboration controller. Advances
|
|
184
|
+
* trigger an authoritative engine re-read (remote commits, promotions).
|
|
185
|
+
*/
|
|
186
|
+
documentRevision?: string | null;
|
|
187
|
+
/** Application notification after a successful local mutation. Native transport wakes independently. */
|
|
188
|
+
onLocalCommit?: () => void;
|
|
189
|
+
}
|
|
190
|
+
export interface RichTextEditorRef {
|
|
191
|
+
/** Programmatically focus the editor. */
|
|
192
|
+
focus(): void;
|
|
193
|
+
/** Programmatically blur the editor. */
|
|
194
|
+
blur(): void;
|
|
195
|
+
/** Check whether the mounted native editor supports external text composition. */
|
|
196
|
+
supportsExternalTextComposition(): boolean;
|
|
197
|
+
/** Begin an external text composition session. */
|
|
198
|
+
beginExternalTextComposition(options?: ExternalTextCompositionOptions): Promise<ExternalTextCompositionSession>;
|
|
199
|
+
/** Toggle a formatting mark (e.g. 'bold', 'italic'). */
|
|
200
|
+
toggleMark(markType: string): void;
|
|
201
|
+
/** Apply or update a hyperlink on the current selection. */
|
|
202
|
+
setLink(href: string): void;
|
|
203
|
+
/** Remove a hyperlink from the current selection. */
|
|
204
|
+
unsetLink(): void;
|
|
205
|
+
/** Toggle blockquote wrapping around the current block selection. */
|
|
206
|
+
toggleBlockquote(): void;
|
|
207
|
+
/** Toggle a heading level on the current block selection. */
|
|
208
|
+
toggleHeading(level: EditorToolbarHeadingLevel): void;
|
|
209
|
+
/** Toggle a list type supported by the active schema. */
|
|
210
|
+
toggleList(listType: string): void;
|
|
211
|
+
/** Indent the current list item. */
|
|
212
|
+
indentListItem(): void;
|
|
213
|
+
/** Outdent the current list item. */
|
|
214
|
+
outdentListItem(): void;
|
|
215
|
+
/** Insert a void node (e.g. 'horizontalRule'). */
|
|
216
|
+
insertNode(nodeType: string): void;
|
|
217
|
+
/** Insert a block image node with the given source and optional metadata. */
|
|
218
|
+
insertImage(src: string, attrs?: Omit<ImageNodeAttributes, 'src'>): void;
|
|
219
|
+
/** Insert text at the current cursor position. */
|
|
220
|
+
insertText(text: string): void;
|
|
221
|
+
/** Insert HTML content at the current selection. */
|
|
222
|
+
insertContentHtml(html: string): void;
|
|
223
|
+
/** Insert JSON content at the current selection. */
|
|
224
|
+
insertContentJson(doc: DocumentJSON): void;
|
|
225
|
+
/** Replace entire document with HTML (preserves undo history). */
|
|
226
|
+
setContent(html: string): void;
|
|
227
|
+
/** Replace entire document with JSON (preserves undo history). */
|
|
228
|
+
setContentJson(doc: DocumentJSON): void;
|
|
229
|
+
/** Clear the document to the active schema's empty text block. */
|
|
230
|
+
clearContent(): void;
|
|
231
|
+
/** Get the current HTML content. */
|
|
232
|
+
getContent(): string;
|
|
233
|
+
/** Get the current content as ProseMirror JSON. */
|
|
234
|
+
getContentJson(): DocumentJSON;
|
|
235
|
+
/** Ask the Rust editor core whether the current document is empty. */
|
|
236
|
+
getIsEmpty(): boolean;
|
|
237
|
+
/** Get the plain text content (no markup). */
|
|
238
|
+
getTextContent(): string;
|
|
239
|
+
/** Get the current caret rectangle in editor-local layout coordinates. */
|
|
240
|
+
getCaretRect(): Promise<RichTextEditorCaretRect | null>;
|
|
241
|
+
/** Undo the last operation. */
|
|
242
|
+
undo(): void;
|
|
243
|
+
/** Redo the last undone operation. */
|
|
244
|
+
redo(): void;
|
|
245
|
+
/** Check if undo is available. */
|
|
246
|
+
canUndo(): boolean;
|
|
247
|
+
/** Check if redo is available. */
|
|
248
|
+
canRedo(): boolean;
|
|
249
|
+
}
|
|
250
|
+
export interface RichTextEditorCaretRect {
|
|
251
|
+
/** Left edge of the caret, relative to the editor root view. */
|
|
252
|
+
x: number;
|
|
253
|
+
/** Top edge of the caret, relative to the editor root view. */
|
|
254
|
+
y: number;
|
|
255
|
+
/** Caret width. */
|
|
256
|
+
width: number;
|
|
257
|
+
/** Caret height. */
|
|
258
|
+
height: number;
|
|
259
|
+
/** Current editor root view width. */
|
|
260
|
+
editorWidth: number;
|
|
261
|
+
/** Current editor root view height. */
|
|
262
|
+
editorHeight: number;
|
|
263
|
+
}
|
|
264
|
+
/** @deprecated Use RichTextEditorHeightBehavior instead. */
|
|
265
|
+
export type NativeRichTextEditorHeightBehavior = RichTextEditorHeightBehavior;
|
|
266
|
+
/** @deprecated Use RichTextEditorToolbarPlacement instead. */
|
|
267
|
+
export type NativeRichTextEditorToolbarPlacement = RichTextEditorToolbarPlacement;
|
|
268
|
+
/** @deprecated Use RichTextEditorValueJSONUpdateMode instead. */
|
|
269
|
+
export type NativeRichTextEditorValueJSONUpdateMode = RichTextEditorValueJSONUpdateMode;
|
|
270
|
+
/** @deprecated Use RichTextEditorAutoCapitalize instead. */
|
|
271
|
+
export type NativeRichTextEditorAutoCapitalize = RichTextEditorAutoCapitalize;
|
|
272
|
+
/** @deprecated Use RichTextEditorKeyboardType instead. */
|
|
273
|
+
export type NativeRichTextEditorKeyboardType = RichTextEditorKeyboardType;
|
|
274
|
+
/** @deprecated Use RichTextEditorAndroidInputOptions instead. */
|
|
275
|
+
export type NativeRichTextEditorAndroidInputOptions = RichTextEditorAndroidInputOptions;
|
|
276
|
+
/** @deprecated Use RichTextEditorProps instead. */
|
|
277
|
+
export type NativeRichTextEditorProps = RichTextEditorProps;
|
|
278
|
+
/** @deprecated Use RichTextEditorRef instead. */
|
|
279
|
+
export type NativeRichTextEditorRef = RichTextEditorRef;
|
|
280
|
+
/** @deprecated Use RichTextEditorCaretRect instead. */
|
|
281
|
+
export type NativeRichTextEditorCaretRect = RichTextEditorCaretRect;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CodeHighlightingAddonOptions } from './EditorAddon';
|
|
2
|
+
import type { SchemaDefinition } from './schemas';
|
|
3
|
+
import type { ResolvedEditorResourceLimits } from './ResourceLimits';
|
|
4
|
+
export interface PreparedProseViewerMentionsConfiguration {
|
|
5
|
+
trigger?: string;
|
|
6
|
+
prefix?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface PreparedProseViewerConfiguration {
|
|
9
|
+
initialization: {
|
|
10
|
+
type: 'localEmpty';
|
|
11
|
+
};
|
|
12
|
+
schema: SchemaDefinition;
|
|
13
|
+
policy?: {
|
|
14
|
+
allowBase64Images: true;
|
|
15
|
+
};
|
|
16
|
+
limits?: {
|
|
17
|
+
resource: ResolvedEditorResourceLimits;
|
|
18
|
+
};
|
|
19
|
+
mentions?: PreparedProseViewerMentionsConfiguration;
|
|
20
|
+
codeHighlighting?: CodeHighlightingAddonOptions;
|
|
21
|
+
}
|
|
22
|
+
export declare function serializePreparedProseViewerConfiguration(configuration: PreparedProseViewerConfiguration): string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializePreparedProseViewerConfiguration = serializePreparedProseViewerConfiguration;
|
|
4
|
+
function serializePreparedProseViewerConfiguration(configuration) {
|
|
5
|
+
return JSON.stringify(configuration);
|
|
6
|
+
}
|