@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,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeEditorTheme = serializeEditorTheme;
|
|
4
|
+
const EditorStyleSheetNormalization_1 = require("./EditorStyleSheetNormalization");
|
|
5
|
+
const EditorMentionThemeNormalization_1 = require("./EditorMentionThemeNormalization");
|
|
6
|
+
function stripUndefined(value) {
|
|
7
|
+
if (Array.isArray(value)) {
|
|
8
|
+
return value.map((item) => stripUndefined(item)).filter((item) => item !== undefined);
|
|
9
|
+
}
|
|
10
|
+
if (value != null && typeof value === 'object') {
|
|
11
|
+
const entries = Object.entries(value)
|
|
12
|
+
.map(([key, entryValue]) => [key, stripUndefined(entryValue)])
|
|
13
|
+
.filter(([, entryValue]) => entryValue !== undefined);
|
|
14
|
+
if (entries.length === 0) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
return Object.fromEntries(entries);
|
|
18
|
+
}
|
|
19
|
+
if (typeof value === 'number' && !Number.isFinite(value)) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
// Mentions are configured on the mentions addon, not on EditorTheme; native
|
|
25
|
+
// still reads them from the theme payload.
|
|
26
|
+
function serializeEditorTheme(theme, mentionTheme) {
|
|
27
|
+
const normalized = theme === undefined ? undefined : (0, EditorStyleSheetNormalization_1.normalizeEditorTheme)(theme);
|
|
28
|
+
const cleanedTheme = normalized && (normalized.styles || normalized.toolbar)
|
|
29
|
+
? stripUndefined(normalized)
|
|
30
|
+
: undefined;
|
|
31
|
+
const base = cleanedTheme && typeof cleanedTheme === 'object'
|
|
32
|
+
? cleanedTheme
|
|
33
|
+
: undefined;
|
|
34
|
+
const cleanedMentions = mentionTheme
|
|
35
|
+
? stripUndefined((0, EditorMentionThemeNormalization_1.normalizeEditorMentionTheme)(mentionTheme))
|
|
36
|
+
: undefined;
|
|
37
|
+
if (cleanedMentions == null) {
|
|
38
|
+
return base ? JSON.stringify(base) : undefined;
|
|
39
|
+
}
|
|
40
|
+
return JSON.stringify({ version: 1, ...(base ?? {}), mentions: cleanedMentions });
|
|
41
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { type EditorToolbarListType, type EditorToolbarHeadingLevel, type EditorToolbarCommand, type EditorToolbarGroupPresentation, type EditorToolbarItemPlacement, type EditorToolbarDefaultIconId, type EditorToolbarSFSymbolIcon, type EditorToolbarMaterialIcon, type EditorToolbarIcon, type EditorToolbarButtonStyle, type EditorToolbarLeafItem, type EditorToolbarGroupChildItem, type EditorToolbarGroupItem, type EditorToolbarItem, type EditorToolbarProps, } from './EditorToolbarTypes';
|
|
2
|
+
export { type EditorToolbarFrame, EditorToolbarFrameOwnerProvider, isEditorToolbarFocusPreservationActive, setActiveEditorToolbarFrameOwnerForEditor, useEditorToolbarFrames, setEditorToolbarMentionState, _setEditorToolbarFrameForTests, _resetEditorToolbarFrameRegistryForTests, _beginEditorToolbarInteractionForTests, _endEditorToolbarInteractionForTests, } from './EditorToolbarRegistry';
|
|
3
|
+
export { DEFAULT_EDITOR_TOOLBAR_ITEMS } from './EditorToolbarItems';
|
|
4
|
+
export { EditorToolbar } from './EditorToolbarComponent';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EditorToolbar = exports.DEFAULT_EDITOR_TOOLBAR_ITEMS = exports._endEditorToolbarInteractionForTests = exports._beginEditorToolbarInteractionForTests = exports._resetEditorToolbarFrameRegistryForTests = exports._setEditorToolbarFrameForTests = exports.setEditorToolbarMentionState = exports.useEditorToolbarFrames = exports.setActiveEditorToolbarFrameOwnerForEditor = exports.isEditorToolbarFocusPreservationActive = exports.EditorToolbarFrameOwnerProvider = void 0;
|
|
4
|
+
var EditorToolbarRegistry_1 = require("./EditorToolbarRegistry");
|
|
5
|
+
Object.defineProperty(exports, "EditorToolbarFrameOwnerProvider", { enumerable: true, get: function () { return EditorToolbarRegistry_1.EditorToolbarFrameOwnerProvider; } });
|
|
6
|
+
Object.defineProperty(exports, "isEditorToolbarFocusPreservationActive", { enumerable: true, get: function () { return EditorToolbarRegistry_1.isEditorToolbarFocusPreservationActive; } });
|
|
7
|
+
Object.defineProperty(exports, "setActiveEditorToolbarFrameOwnerForEditor", { enumerable: true, get: function () { return EditorToolbarRegistry_1.setActiveEditorToolbarFrameOwnerForEditor; } });
|
|
8
|
+
Object.defineProperty(exports, "useEditorToolbarFrames", { enumerable: true, get: function () { return EditorToolbarRegistry_1.useEditorToolbarFrames; } });
|
|
9
|
+
Object.defineProperty(exports, "setEditorToolbarMentionState", { enumerable: true, get: function () { return EditorToolbarRegistry_1.setEditorToolbarMentionState; } });
|
|
10
|
+
Object.defineProperty(exports, "_setEditorToolbarFrameForTests", { enumerable: true, get: function () { return EditorToolbarRegistry_1._setEditorToolbarFrameForTests; } });
|
|
11
|
+
Object.defineProperty(exports, "_resetEditorToolbarFrameRegistryForTests", { enumerable: true, get: function () { return EditorToolbarRegistry_1._resetEditorToolbarFrameRegistryForTests; } });
|
|
12
|
+
Object.defineProperty(exports, "_beginEditorToolbarInteractionForTests", { enumerable: true, get: function () { return EditorToolbarRegistry_1._beginEditorToolbarInteractionForTests; } });
|
|
13
|
+
Object.defineProperty(exports, "_endEditorToolbarInteractionForTests", { enumerable: true, get: function () { return EditorToolbarRegistry_1._endEditorToolbarInteractionForTests; } });
|
|
14
|
+
var EditorToolbarItems_1 = require("./EditorToolbarItems");
|
|
15
|
+
Object.defineProperty(exports, "DEFAULT_EDITOR_TOOLBAR_ITEMS", { enumerable: true, get: function () { return EditorToolbarItems_1.DEFAULT_EDITOR_TOOLBAR_ITEMS; } });
|
|
16
|
+
var EditorToolbarComponent_1 = require("./EditorToolbarComponent");
|
|
17
|
+
Object.defineProperty(exports, "EditorToolbar", { enumerable: true, get: function () { return EditorToolbarComponent_1.EditorToolbar; } });
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type EditorToolbarProps } from './EditorToolbarTypes';
|
|
2
|
+
/**
|
|
3
|
+
* A JavaScript formatting toolbar. `RichTextEditor` renders one for you
|
|
4
|
+
* when `showToolbar` is set — reach for this component directly only to place
|
|
5
|
+
* the toolbar somewhere the editor cannot, in which case wire every handler
|
|
6
|
+
* to the editor's ref and feed it `activeState` and `historyState` from the
|
|
7
|
+
* editor's callbacks.
|
|
8
|
+
*
|
|
9
|
+
* The native keyboard-attached toolbar (`toolbarPlacement="keyboard"`) is a
|
|
10
|
+
* separate implementation that consumes the same {@link EditorToolbarItem}
|
|
11
|
+
* list.
|
|
12
|
+
*/
|
|
13
|
+
export declare function EditorToolbar(props: EditorToolbarProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EditorToolbar = EditorToolbar;
|
|
4
|
+
const useEditorToolbarState_1 = require("./useEditorToolbarState");
|
|
5
|
+
const useEditorToolbarItems_1 = require("./useEditorToolbarItems");
|
|
6
|
+
const useEditorToolbarInteractions_1 = require("./useEditorToolbarInteractions");
|
|
7
|
+
const useEditorToolbarPresentation_1 = require("./useEditorToolbarPresentation");
|
|
8
|
+
/**
|
|
9
|
+
* A JavaScript formatting toolbar. `RichTextEditor` renders one for you
|
|
10
|
+
* when `showToolbar` is set — reach for this component directly only to place
|
|
11
|
+
* the toolbar somewhere the editor cannot, in which case wire every handler
|
|
12
|
+
* to the editor's ref and feed it `activeState` and `historyState` from the
|
|
13
|
+
* editor's callbacks.
|
|
14
|
+
*
|
|
15
|
+
* The native keyboard-attached toolbar (`toolbarPlacement="keyboard"`) is a
|
|
16
|
+
* separate implementation that consumes the same {@link EditorToolbarItem}
|
|
17
|
+
* list.
|
|
18
|
+
*/
|
|
19
|
+
function EditorToolbar(props) {
|
|
20
|
+
const state = (0, useEditorToolbarState_1.useEditorToolbarState)(props);
|
|
21
|
+
const items = (0, useEditorToolbarItems_1.useEditorToolbarItems)(state);
|
|
22
|
+
const interactions = (0, useEditorToolbarInteractions_1.useEditorToolbarInteractions)({ ...state, ...items });
|
|
23
|
+
return (0, useEditorToolbarPresentation_1.useEditorToolbarPresentation)({ ...state, ...items, ...interactions });
|
|
24
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type EditorToolbarDefaultIconId, type EditorToolbarIcon, type EditorToolbarItemPlacement, type EditorToolbarItem } from './EditorToolbarTypes';
|
|
2
|
+
export declare function defaultIcon(id: EditorToolbarDefaultIconId): EditorToolbarIcon;
|
|
3
|
+
export declare function resolveToolbarItemPlacement(placement: EditorToolbarItemPlacement | undefined): EditorToolbarItemPlacement;
|
|
4
|
+
/**
|
|
5
|
+
* The toolbar layout used when `toolbarItems` is not supplied. Spread it to
|
|
6
|
+
* extend the built-in set rather than restating it:
|
|
7
|
+
* `[...DEFAULT_EDITOR_TOOLBAR_ITEMS, myItem]`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const DEFAULT_EDITOR_TOOLBAR_ITEMS: readonly EditorToolbarItem[];
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_EDITOR_TOOLBAR_ITEMS = void 0;
|
|
4
|
+
exports.defaultIcon = defaultIcon;
|
|
5
|
+
exports.resolveToolbarItemPlacement = resolveToolbarItemPlacement;
|
|
6
|
+
function defaultIcon(id) {
|
|
7
|
+
return { type: 'default', id };
|
|
8
|
+
}
|
|
9
|
+
function resolveToolbarItemPlacement(placement) {
|
|
10
|
+
return placement ?? 'scroll';
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The toolbar layout used when `toolbarItems` is not supplied. Spread it to
|
|
14
|
+
* extend the built-in set rather than restating it:
|
|
15
|
+
* `[...DEFAULT_EDITOR_TOOLBAR_ITEMS, myItem]`.
|
|
16
|
+
*/
|
|
17
|
+
exports.DEFAULT_EDITOR_TOOLBAR_ITEMS = [
|
|
18
|
+
{ type: 'mark', mark: 'bold', label: 'Bold', icon: defaultIcon('bold') },
|
|
19
|
+
{ type: 'mark', mark: 'italic', label: 'Italic', icon: defaultIcon('italic') },
|
|
20
|
+
{ type: 'mark', mark: 'underline', label: 'Underline', icon: defaultIcon('underline') },
|
|
21
|
+
{ type: 'mark', mark: 'strike', label: 'Strikethrough', icon: defaultIcon('strike') },
|
|
22
|
+
{ type: 'blockquote', label: 'Blockquote', icon: defaultIcon('blockquote') },
|
|
23
|
+
{ type: 'separator' },
|
|
24
|
+
{
|
|
25
|
+
type: 'list',
|
|
26
|
+
listType: 'bullet_list',
|
|
27
|
+
label: 'Bullet List',
|
|
28
|
+
icon: defaultIcon('bulletList'),
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
type: 'list',
|
|
32
|
+
listType: 'ordered_list',
|
|
33
|
+
label: 'Ordered List',
|
|
34
|
+
icon: defaultIcon('orderedList'),
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
type: 'command',
|
|
38
|
+
command: 'indentList',
|
|
39
|
+
label: 'Indent List',
|
|
40
|
+
icon: defaultIcon('indentList'),
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
type: 'command',
|
|
44
|
+
command: 'outdentList',
|
|
45
|
+
label: 'Outdent List',
|
|
46
|
+
icon: defaultIcon('outdentList'),
|
|
47
|
+
},
|
|
48
|
+
{ type: 'node', nodeType: 'hard_break', label: 'Line Break', icon: defaultIcon('lineBreak') },
|
|
49
|
+
{
|
|
50
|
+
type: 'node',
|
|
51
|
+
nodeType: 'horizontal_rule',
|
|
52
|
+
label: 'Horizontal Rule',
|
|
53
|
+
icon: defaultIcon('horizontalRule'),
|
|
54
|
+
},
|
|
55
|
+
{ type: 'separator' },
|
|
56
|
+
{ type: 'command', command: 'undo', label: 'Undo', icon: defaultIcon('undo') },
|
|
57
|
+
{ type: 'command', command: 'redo', label: 'Redo', icon: defaultIcon('redo') },
|
|
58
|
+
];
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { MentionSuggestion } from './addons';
|
|
3
|
+
import type { EditorMentionTheme } from './EditorTheme';
|
|
4
|
+
export interface EditorToolbarFrame {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
}
|
|
10
|
+
export type EditorToolbarFrameListener = () => void;
|
|
11
|
+
export interface EditorToolbarFrameRegistration {
|
|
12
|
+
ownerId: number | null;
|
|
13
|
+
frame: EditorToolbarFrame;
|
|
14
|
+
}
|
|
15
|
+
export declare const editorToolbarFrames: Map<number, EditorToolbarFrameRegistration>;
|
|
16
|
+
export declare const editorToolbarFrameListeners: Set<EditorToolbarFrameListener>;
|
|
17
|
+
export declare const editorToolbarMentionStateListeners: Set<EditorToolbarFrameListener>;
|
|
18
|
+
export declare let nextEditorToolbarRegistrationId: number;
|
|
19
|
+
export declare let activeEditorToolbarInteractions: number;
|
|
20
|
+
export declare let editorToolbarFocusPreserveUntil: number;
|
|
21
|
+
export declare let activeEditorToolbarFrameOwnerId: number | null;
|
|
22
|
+
export declare function allocateEditorToolbarRegistrationId(): number;
|
|
23
|
+
export declare const EditorToolbarFrameOwnerContext: React.Context<number | null>;
|
|
24
|
+
export declare function EditorToolbarFrameOwnerProvider({ ownerId, children, }: {
|
|
25
|
+
ownerId: number;
|
|
26
|
+
children: React.ReactNode;
|
|
27
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export interface EditorToolbarMentionState {
|
|
29
|
+
ownerId: number;
|
|
30
|
+
trigger: string;
|
|
31
|
+
suggestions: readonly MentionSuggestion[];
|
|
32
|
+
theme?: EditorMentionTheme;
|
|
33
|
+
suggestionThemes?: Readonly<Record<string, EditorMentionTheme | undefined>>;
|
|
34
|
+
onSelectSuggestion: (suggestion: MentionSuggestion) => void;
|
|
35
|
+
}
|
|
36
|
+
export declare let editorToolbarMentionState: EditorToolbarMentionState | null;
|
|
37
|
+
export declare const EDITOR_TOOLBAR_FOCUS_PRESERVE_MS = 750;
|
|
38
|
+
export declare function areToolbarFramesEqual(left: EditorToolbarFrame | undefined, right: EditorToolbarFrame | undefined): boolean;
|
|
39
|
+
export declare function areToolbarFrameListsEqual(left: readonly EditorToolbarFrame[], right: readonly EditorToolbarFrame[]): boolean;
|
|
40
|
+
export declare function notifyEditorToolbarFrameListeners(): void;
|
|
41
|
+
export declare function notifyEditorToolbarMentionStateListeners(): void;
|
|
42
|
+
export declare function getEditorToolbarFramesSnapshot(ownerId: number): EditorToolbarFrame[];
|
|
43
|
+
export declare function subscribeEditorToolbarMentionState(listener: EditorToolbarFrameListener): () => void;
|
|
44
|
+
export declare function getEditorToolbarMentionStateSnapshot(): EditorToolbarMentionState | null;
|
|
45
|
+
export declare function useEditorToolbarMentionState(): EditorToolbarMentionState | null;
|
|
46
|
+
export declare function registerEditorToolbarFrame(id: number, frame: EditorToolbarFrame | null, ownerId: number | null): void;
|
|
47
|
+
export declare function unregisterEditorToolbarFrame(id: number): void;
|
|
48
|
+
export declare function preserveEditorToolbarFocusForNextBlur(): void;
|
|
49
|
+
export declare function beginEditorToolbarInteraction(): void;
|
|
50
|
+
export declare function endEditorToolbarInteraction(): void;
|
|
51
|
+
export declare function isEditorToolbarFocusPreservationActive(): boolean;
|
|
52
|
+
export declare function setActiveEditorToolbarFrameOwnerForEditor(ownerId: number, isActive: boolean): void;
|
|
53
|
+
export declare function useEditorToolbarFrames(ownerId: number): readonly EditorToolbarFrame[];
|
|
54
|
+
export declare function setEditorToolbarMentionState(ownerId: number, state: Omit<EditorToolbarMentionState, 'ownerId'> | null): void;
|
|
55
|
+
export declare function _setEditorToolbarFrameForTests(id: number, frame: EditorToolbarFrame | null, ownerId?: number | null): void;
|
|
56
|
+
export declare function _resetEditorToolbarFrameRegistryForTests(): void;
|
|
57
|
+
export declare function _beginEditorToolbarInteractionForTests(): void;
|
|
58
|
+
export declare function _endEditorToolbarInteractionForTests(): void;
|
|
59
|
+
export declare const BUTTON_HIT = 44;
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BUTTON_HIT = exports.EDITOR_TOOLBAR_FOCUS_PRESERVE_MS = exports.editorToolbarMentionState = exports.EditorToolbarFrameOwnerContext = exports.activeEditorToolbarFrameOwnerId = exports.editorToolbarFocusPreserveUntil = exports.activeEditorToolbarInteractions = exports.nextEditorToolbarRegistrationId = exports.editorToolbarMentionStateListeners = exports.editorToolbarFrameListeners = exports.editorToolbarFrames = void 0;
|
|
4
|
+
exports.allocateEditorToolbarRegistrationId = allocateEditorToolbarRegistrationId;
|
|
5
|
+
exports.EditorToolbarFrameOwnerProvider = EditorToolbarFrameOwnerProvider;
|
|
6
|
+
exports.areToolbarFramesEqual = areToolbarFramesEqual;
|
|
7
|
+
exports.areToolbarFrameListsEqual = areToolbarFrameListsEqual;
|
|
8
|
+
exports.notifyEditorToolbarFrameListeners = notifyEditorToolbarFrameListeners;
|
|
9
|
+
exports.notifyEditorToolbarMentionStateListeners = notifyEditorToolbarMentionStateListeners;
|
|
10
|
+
exports.getEditorToolbarFramesSnapshot = getEditorToolbarFramesSnapshot;
|
|
11
|
+
exports.subscribeEditorToolbarMentionState = subscribeEditorToolbarMentionState;
|
|
12
|
+
exports.getEditorToolbarMentionStateSnapshot = getEditorToolbarMentionStateSnapshot;
|
|
13
|
+
exports.useEditorToolbarMentionState = useEditorToolbarMentionState;
|
|
14
|
+
exports.registerEditorToolbarFrame = registerEditorToolbarFrame;
|
|
15
|
+
exports.unregisterEditorToolbarFrame = unregisterEditorToolbarFrame;
|
|
16
|
+
exports.preserveEditorToolbarFocusForNextBlur = preserveEditorToolbarFocusForNextBlur;
|
|
17
|
+
exports.beginEditorToolbarInteraction = beginEditorToolbarInteraction;
|
|
18
|
+
exports.endEditorToolbarInteraction = endEditorToolbarInteraction;
|
|
19
|
+
exports.isEditorToolbarFocusPreservationActive = isEditorToolbarFocusPreservationActive;
|
|
20
|
+
exports.setActiveEditorToolbarFrameOwnerForEditor = setActiveEditorToolbarFrameOwnerForEditor;
|
|
21
|
+
exports.useEditorToolbarFrames = useEditorToolbarFrames;
|
|
22
|
+
exports.setEditorToolbarMentionState = setEditorToolbarMentionState;
|
|
23
|
+
exports._setEditorToolbarFrameForTests = _setEditorToolbarFrameForTests;
|
|
24
|
+
exports._resetEditorToolbarFrameRegistryForTests = _resetEditorToolbarFrameRegistryForTests;
|
|
25
|
+
exports._beginEditorToolbarInteractionForTests = _beginEditorToolbarInteractionForTests;
|
|
26
|
+
exports._endEditorToolbarInteractionForTests = _endEditorToolbarInteractionForTests;
|
|
27
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
28
|
+
const react_1 = require("react");
|
|
29
|
+
exports.editorToolbarFrames = new Map();
|
|
30
|
+
exports.editorToolbarFrameListeners = new Set();
|
|
31
|
+
exports.editorToolbarMentionStateListeners = new Set();
|
|
32
|
+
exports.nextEditorToolbarRegistrationId = 1;
|
|
33
|
+
exports.activeEditorToolbarInteractions = 0;
|
|
34
|
+
exports.editorToolbarFocusPreserveUntil = 0;
|
|
35
|
+
exports.activeEditorToolbarFrameOwnerId = null;
|
|
36
|
+
function allocateEditorToolbarRegistrationId() {
|
|
37
|
+
return exports.nextEditorToolbarRegistrationId++;
|
|
38
|
+
}
|
|
39
|
+
exports.EditorToolbarFrameOwnerContext = (0, react_1.createContext)(null);
|
|
40
|
+
function EditorToolbarFrameOwnerProvider({ ownerId, children, }) {
|
|
41
|
+
return ((0, jsx_runtime_1.jsx)(exports.EditorToolbarFrameOwnerContext.Provider, { value: ownerId, children: children }));
|
|
42
|
+
}
|
|
43
|
+
exports.editorToolbarMentionState = null;
|
|
44
|
+
exports.EDITOR_TOOLBAR_FOCUS_PRESERVE_MS = 750;
|
|
45
|
+
function areToolbarFramesEqual(left, right) {
|
|
46
|
+
return (left?.x === right?.x &&
|
|
47
|
+
left?.y === right?.y &&
|
|
48
|
+
left?.width === right?.width &&
|
|
49
|
+
left?.height === right?.height);
|
|
50
|
+
}
|
|
51
|
+
function areToolbarFrameListsEqual(left, right) {
|
|
52
|
+
if (left.length !== right.length) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
return left.every((frame, index) => areToolbarFramesEqual(frame, right[index]));
|
|
56
|
+
}
|
|
57
|
+
function notifyEditorToolbarFrameListeners() {
|
|
58
|
+
exports.editorToolbarFrameListeners.forEach((listener) => listener());
|
|
59
|
+
}
|
|
60
|
+
function notifyEditorToolbarMentionStateListeners() {
|
|
61
|
+
exports.editorToolbarMentionStateListeners.forEach((listener) => listener());
|
|
62
|
+
}
|
|
63
|
+
function getEditorToolbarFramesSnapshot(ownerId) {
|
|
64
|
+
return Array.from(exports.editorToolbarFrames.values())
|
|
65
|
+
.filter((registration) => registration.ownerId === ownerId ||
|
|
66
|
+
(registration.ownerId == null && exports.activeEditorToolbarFrameOwnerId === ownerId))
|
|
67
|
+
.map((registration) => registration.frame);
|
|
68
|
+
}
|
|
69
|
+
function subscribeEditorToolbarMentionState(listener) {
|
|
70
|
+
exports.editorToolbarMentionStateListeners.add(listener);
|
|
71
|
+
return () => {
|
|
72
|
+
exports.editorToolbarMentionStateListeners.delete(listener);
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function getEditorToolbarMentionStateSnapshot() {
|
|
76
|
+
return exports.editorToolbarMentionState;
|
|
77
|
+
}
|
|
78
|
+
function useEditorToolbarMentionState() {
|
|
79
|
+
return (0, react_1.useSyncExternalStore)(subscribeEditorToolbarMentionState, getEditorToolbarMentionStateSnapshot, getEditorToolbarMentionStateSnapshot);
|
|
80
|
+
}
|
|
81
|
+
function registerEditorToolbarFrame(id, frame, ownerId) {
|
|
82
|
+
if (frame == null || frame.width <= 0 || frame.height <= 0) {
|
|
83
|
+
if (exports.editorToolbarFrames.delete(id)) {
|
|
84
|
+
notifyEditorToolbarFrameListeners();
|
|
85
|
+
}
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const currentRegistration = exports.editorToolbarFrames.get(id);
|
|
89
|
+
if (currentRegistration?.ownerId === ownerId &&
|
|
90
|
+
areToolbarFramesEqual(currentRegistration.frame, frame)) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
exports.editorToolbarFrames.set(id, { ownerId, frame });
|
|
94
|
+
notifyEditorToolbarFrameListeners();
|
|
95
|
+
}
|
|
96
|
+
function unregisterEditorToolbarFrame(id) {
|
|
97
|
+
if (exports.editorToolbarFrames.delete(id)) {
|
|
98
|
+
notifyEditorToolbarFrameListeners();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function preserveEditorToolbarFocusForNextBlur() {
|
|
102
|
+
exports.editorToolbarFocusPreserveUntil = Date.now() + exports.EDITOR_TOOLBAR_FOCUS_PRESERVE_MS;
|
|
103
|
+
}
|
|
104
|
+
function beginEditorToolbarInteraction() {
|
|
105
|
+
exports.activeEditorToolbarInteractions += 1;
|
|
106
|
+
preserveEditorToolbarFocusForNextBlur();
|
|
107
|
+
}
|
|
108
|
+
function endEditorToolbarInteraction() {
|
|
109
|
+
exports.activeEditorToolbarInteractions = Math.max(0, exports.activeEditorToolbarInteractions - 1);
|
|
110
|
+
preserveEditorToolbarFocusForNextBlur();
|
|
111
|
+
}
|
|
112
|
+
function isEditorToolbarFocusPreservationActive() {
|
|
113
|
+
return exports.activeEditorToolbarInteractions > 0 || Date.now() <= exports.editorToolbarFocusPreserveUntil;
|
|
114
|
+
}
|
|
115
|
+
function setActiveEditorToolbarFrameOwnerForEditor(ownerId, isActive) {
|
|
116
|
+
const nextOwnerId = isActive
|
|
117
|
+
? ownerId
|
|
118
|
+
: exports.activeEditorToolbarFrameOwnerId === ownerId
|
|
119
|
+
? null
|
|
120
|
+
: exports.activeEditorToolbarFrameOwnerId;
|
|
121
|
+
if (exports.activeEditorToolbarFrameOwnerId === nextOwnerId) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
exports.activeEditorToolbarFrameOwnerId = nextOwnerId;
|
|
125
|
+
notifyEditorToolbarFrameListeners();
|
|
126
|
+
}
|
|
127
|
+
function useEditorToolbarFrames(ownerId) {
|
|
128
|
+
const [frames, setFrames] = (0, react_1.useState)(() => getEditorToolbarFramesSnapshot(ownerId));
|
|
129
|
+
(0, react_1.useEffect)(() => {
|
|
130
|
+
const listener = () => {
|
|
131
|
+
const nextFrames = getEditorToolbarFramesSnapshot(ownerId);
|
|
132
|
+
setFrames((currentFrames) => areToolbarFrameListsEqual(currentFrames, nextFrames) ? currentFrames : nextFrames);
|
|
133
|
+
};
|
|
134
|
+
exports.editorToolbarFrameListeners.add(listener);
|
|
135
|
+
listener();
|
|
136
|
+
return () => {
|
|
137
|
+
exports.editorToolbarFrameListeners.delete(listener);
|
|
138
|
+
};
|
|
139
|
+
}, [ownerId]);
|
|
140
|
+
return frames;
|
|
141
|
+
}
|
|
142
|
+
function setEditorToolbarMentionState(ownerId, state) {
|
|
143
|
+
if (state == null) {
|
|
144
|
+
if (exports.editorToolbarMentionState?.ownerId !== ownerId) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
exports.editorToolbarMentionState = null;
|
|
148
|
+
notifyEditorToolbarMentionStateListeners();
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
exports.editorToolbarMentionState = {
|
|
152
|
+
ownerId,
|
|
153
|
+
...state,
|
|
154
|
+
};
|
|
155
|
+
notifyEditorToolbarMentionStateListeners();
|
|
156
|
+
}
|
|
157
|
+
function _setEditorToolbarFrameForTests(id, frame, ownerId = null) {
|
|
158
|
+
registerEditorToolbarFrame(id, frame, ownerId);
|
|
159
|
+
}
|
|
160
|
+
function _resetEditorToolbarFrameRegistryForTests() {
|
|
161
|
+
exports.editorToolbarFrames.clear();
|
|
162
|
+
exports.editorToolbarMentionState = null;
|
|
163
|
+
exports.activeEditorToolbarInteractions = 0;
|
|
164
|
+
exports.editorToolbarFocusPreserveUntil = 0;
|
|
165
|
+
exports.activeEditorToolbarFrameOwnerId = null;
|
|
166
|
+
notifyEditorToolbarFrameListeners();
|
|
167
|
+
notifyEditorToolbarMentionStateListeners();
|
|
168
|
+
}
|
|
169
|
+
function _beginEditorToolbarInteractionForTests() {
|
|
170
|
+
beginEditorToolbarInteraction();
|
|
171
|
+
}
|
|
172
|
+
function _endEditorToolbarInteractionForTests() {
|
|
173
|
+
endEditorToolbarInteraction();
|
|
174
|
+
}
|
|
175
|
+
exports.BUTTON_HIT = 44;
|