@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.
Files changed (494) hide show
  1. package/LICENSE +160 -0
  2. package/README.md +259 -0
  3. package/RUST-STANDARD-LIBRARY-NOTICES.html +8266 -0
  4. package/ReactNativeProseEditor.podspec +59 -0
  5. package/THIRD_PARTY_NOTICES.md +31155 -0
  6. package/android/build.gradle +188 -0
  7. package/android/consumer-rules.pro +18 -0
  8. package/android/expo/build.gradle +17 -0
  9. package/android/src/debug/java/com/apollohg/editor/viewer/PreparedProseDrawInstrumentation.kt +7 -0
  10. package/android/src/main/assets/editor-icons/MaterialIcons.json +2236 -0
  11. package/android/src/main/assets/editor-icons/MaterialIcons.ttf +0 -0
  12. package/android/src/main/java/com/apollohg/editor/AndroidApiCompat.kt +19 -0
  13. package/android/src/main/java/com/apollohg/editor/AndroidCollaborationTransport.kt +860 -0
  14. package/android/src/main/java/com/apollohg/editor/CaretGeometry.kt +91 -0
  15. package/android/src/main/java/com/apollohg/editor/CodeHighlighting.kt +141 -0
  16. package/android/src/main/java/com/apollohg/editor/DecodedBitmapBudget.kt +250 -0
  17. package/android/src/main/java/com/apollohg/editor/EditorAddons.kt +133 -0
  18. package/android/src/main/java/com/apollohg/editor/EditorBlockSpacing.kt +51 -0
  19. package/android/src/main/java/com/apollohg/editor/EditorBoxDrawable.kt +16 -0
  20. package/android/src/main/java/com/apollohg/editor/EditorBoxDrawing.kt +234 -0
  21. package/android/src/main/java/com/apollohg/editor/EditorCheckboxSpan.kt +87 -0
  22. package/android/src/main/java/com/apollohg/editor/EditorCodeHighlighting.kt +120 -0
  23. package/android/src/main/java/com/apollohg/editor/EditorDecorationLayer.java +18 -0
  24. package/android/src/main/java/com/apollohg/editor/EditorDocumentLayout.kt +626 -0
  25. package/android/src/main/java/com/apollohg/editor/EditorEditText.kt +1042 -0
  26. package/android/src/main/java/com/apollohg/editor/EditorEditTextAnnotations.kt +191 -0
  27. package/android/src/main/java/com/apollohg/editor/EditorEditTextCaret.kt +100 -0
  28. package/android/src/main/java/com/apollohg/editor/EditorEditTextClipboard.kt +101 -0
  29. package/android/src/main/java/com/apollohg/editor/EditorEditTextComposition.kt +220 -0
  30. package/android/src/main/java/com/apollohg/editor/EditorEditTextConfiguration.kt +316 -0
  31. package/android/src/main/java/com/apollohg/editor/EditorEditTextCorrection.kt +303 -0
  32. package/android/src/main/java/com/apollohg/editor/EditorEditTextDeferredUpdates.kt +327 -0
  33. package/android/src/main/java/com/apollohg/editor/EditorEditTextDeletion.kt +258 -0
  34. package/android/src/main/java/com/apollohg/editor/EditorEditTextDiagnostics.kt +83 -0
  35. package/android/src/main/java/com/apollohg/editor/EditorEditTextDragDrop.kt +67 -0
  36. package/android/src/main/java/com/apollohg/editor/EditorEditTextExternalComposition.kt +357 -0
  37. package/android/src/main/java/com/apollohg/editor/EditorEditTextHardwareInput.kt +277 -0
  38. package/android/src/main/java/com/apollohg/editor/EditorEditTextImages.kt +280 -0
  39. package/android/src/main/java/com/apollohg/editor/EditorEditTextInputLifecycle.kt +183 -0
  40. package/android/src/main/java/com/apollohg/editor/EditorEditTextInputPreparation.kt +79 -0
  41. package/android/src/main/java/com/apollohg/editor/EditorEditTextInputTraits.kt +384 -0
  42. package/android/src/main/java/com/apollohg/editor/EditorEditTextLayout.kt +100 -0
  43. package/android/src/main/java/com/apollohg/editor/EditorEditTextNativeMutation.kt +243 -0
  44. package/android/src/main/java/com/apollohg/editor/EditorEditTextPlaceholder.kt +154 -0
  45. package/android/src/main/java/com/apollohg/editor/EditorEditTextRenderPatch.kt +347 -0
  46. package/android/src/main/java/com/apollohg/editor/EditorEditTextRendering.kt +313 -0
  47. package/android/src/main/java/com/apollohg/editor/EditorEditTextRustCommands.kt +281 -0
  48. package/android/src/main/java/com/apollohg/editor/EditorEditTextSelection.kt +352 -0
  49. package/android/src/main/java/com/apollohg/editor/EditorEditTextState.kt +113 -0
  50. package/android/src/main/java/com/apollohg/editor/EditorEditTextTaskMarkers.kt +92 -0
  51. package/android/src/main/java/com/apollohg/editor/EditorEditTextTextCommit.kt +327 -0
  52. package/android/src/main/java/com/apollohg/editor/EditorEditTextToolbar.kt +84 -0
  53. package/android/src/main/java/com/apollohg/editor/EditorEditTextUpdates.kt +245 -0
  54. package/android/src/main/java/com/apollohg/editor/EditorGlyphHeightCursorDrawable.kt +42 -0
  55. package/android/src/main/java/com/apollohg/editor/EditorHeightBehavior.kt +13 -0
  56. package/android/src/main/java/com/apollohg/editor/EditorInputConnection.kt +923 -0
  57. package/android/src/main/java/com/apollohg/editor/EditorInputCoordinates.kt +191 -0
  58. package/android/src/main/java/com/apollohg/editor/EditorInputCorrection.kt +107 -0
  59. package/android/src/main/java/com/apollohg/editor/EditorInputCursorGeometry.kt +128 -0
  60. package/android/src/main/java/com/apollohg/editor/EditorInputSnapshots.kt +134 -0
  61. package/android/src/main/java/com/apollohg/editor/EditorInputSurroundingDeletion.kt +321 -0
  62. package/android/src/main/java/com/apollohg/editor/EditorKeyboardToolbarView.kt +851 -0
  63. package/android/src/main/java/com/apollohg/editor/EditorMentionStyle.kt +192 -0
  64. package/android/src/main/java/com/apollohg/editor/EditorReconciliationWatcher.kt +46 -0
  65. package/android/src/main/java/com/apollohg/editor/EditorStyleSheet.kt +303 -0
  66. package/android/src/main/java/com/apollohg/editor/EditorStyleSheetSpans.kt +253 -0
  67. package/android/src/main/java/com/apollohg/editor/EditorSurfaceInputConnection.kt +67 -0
  68. package/android/src/main/java/com/apollohg/editor/EditorTextDecorationDrawing.kt +143 -0
  69. package/android/src/main/java/com/apollohg/editor/EditorTextSurface.kt +712 -0
  70. package/android/src/main/java/com/apollohg/editor/EditorTextSurfaceDragDrop.kt +94 -0
  71. package/android/src/main/java/com/apollohg/editor/EditorTextSurfaceInteraction.kt +708 -0
  72. package/android/src/main/java/com/apollohg/editor/EditorTheme.kt +650 -0
  73. package/android/src/main/java/com/apollohg/editor/EditorV2Adapter.kt +912 -0
  74. package/android/src/main/java/com/apollohg/editor/EditorV2AdapterMutations.kt +402 -0
  75. package/android/src/main/java/com/apollohg/editor/EditorV2AdapterRendering.kt +123 -0
  76. package/android/src/main/java/com/apollohg/editor/EditorV2AdapterSelection.kt +203 -0
  77. package/android/src/main/java/com/apollohg/editor/EditorV2Backend.kt +120 -0
  78. package/android/src/main/java/com/apollohg/editor/EditorV2Driver.kt +87 -0
  79. package/android/src/main/java/com/apollohg/editor/EditorV2Registry.kt +97 -0
  80. package/android/src/main/java/com/apollohg/editor/EditorV2RenderValidation.kt +409 -0
  81. package/android/src/main/java/com/apollohg/editor/ExpoAutoGrowStyleSizePublisher.kt +34 -0
  82. package/android/src/main/java/com/apollohg/editor/ImageResizeOverlayView.kt +266 -0
  83. package/android/src/main/java/com/apollohg/editor/ImeTextCoordinateMapper.kt +102 -0
  84. package/android/src/main/java/com/apollohg/editor/KeyboardToolbarImeAnimationController.kt +101 -0
  85. package/android/src/main/java/com/apollohg/editor/MentionSuggestionChipView.kt +234 -0
  86. package/android/src/main/java/com/apollohg/editor/NativeCollaborationTransportRegistry.kt +493 -0
  87. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoView.kt +813 -0
  88. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewAtoms.kt +68 -0
  89. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewBinding.kt +126 -0
  90. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewDiagnostics.kt +208 -0
  91. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewErrors.kt +146 -0
  92. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewEvents.kt +150 -0
  93. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewExternalComposition.kt +39 -0
  94. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewFocus.kt +176 -0
  95. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewLifecycle.kt +302 -0
  96. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewMentions.kt +259 -0
  97. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewNativeActions.kt +179 -0
  98. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewOutsideTap.kt +214 -0
  99. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewPendingUpdates.kt +376 -0
  100. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewProperties.kt +234 -0
  101. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewPropertyRetries.kt +197 -0
  102. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewToolbar.kt +285 -0
  103. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewTypes.kt +28 -0
  104. package/android/src/main/java/com/apollohg/editor/NativeEditorExpoViewUpdates.kt +271 -0
  105. package/android/src/main/java/com/apollohg/editor/NativeEditorModule.kt +687 -0
  106. package/android/src/main/java/com/apollohg/editor/NativeEditorOutsideTapDispatcher.kt +380 -0
  107. package/android/src/main/java/com/apollohg/editor/NativeEditorV2Numbers.kt +45 -0
  108. package/android/src/main/java/com/apollohg/editor/NativeEditorViewRegistry.kt +372 -0
  109. package/android/src/main/java/com/apollohg/editor/NativeImagePipeline.kt +22 -0
  110. package/android/src/main/java/com/apollohg/editor/NativeToolbar.kt +193 -0
  111. package/android/src/main/java/com/apollohg/editor/NativeToolbarIcons.kt +177 -0
  112. package/android/src/main/java/com/apollohg/editor/NativeToolbarItem.kt +274 -0
  113. package/android/src/main/java/com/apollohg/editor/OkHttpCollaborationSocket.kt +102 -0
  114. package/android/src/main/java/com/apollohg/editor/OrderedListMarkerFormatter.kt +130 -0
  115. package/android/src/main/java/com/apollohg/editor/PointerTransparentView.java +18 -0
  116. package/android/src/main/java/com/apollohg/editor/PositionBridge.kt +128 -0
  117. package/android/src/main/java/com/apollohg/editor/ProseViewerView.kt +854 -0
  118. package/android/src/main/java/com/apollohg/editor/RemoteSelectionOverlayView.kt +314 -0
  119. package/android/src/main/java/com/apollohg/editor/RenderBlockSpans.kt +314 -0
  120. package/android/src/main/java/com/apollohg/editor/RenderBridge.kt +224 -0
  121. package/android/src/main/java/com/apollohg/editor/RenderBridgeBlockStyles.kt +407 -0
  122. package/android/src/main/java/com/apollohg/editor/RenderBridgeElements.kt +544 -0
  123. package/android/src/main/java/com/apollohg/editor/RenderBridgeInlineAndAtoms.kt +631 -0
  124. package/android/src/main/java/com/apollohg/editor/RenderBridgeParagraphs.kt +215 -0
  125. package/android/src/main/java/com/apollohg/editor/RenderImageDecoder.kt +748 -0
  126. package/android/src/main/java/com/apollohg/editor/RenderImageLoader.kt +900 -0
  127. package/android/src/main/java/com/apollohg/editor/RenderLayoutConstants.kt +117 -0
  128. package/android/src/main/java/com/apollohg/editor/RenderMediaSpans.kt +337 -0
  129. package/android/src/main/java/com/apollohg/editor/RenderParagraphSpans.kt +182 -0
  130. package/android/src/main/java/com/apollohg/editor/RichTextEditorView.kt +951 -0
  131. package/android/src/main/java/com/apollohg/editor/SharedNativeImagePipeline.kt +78 -0
  132. package/android/src/main/java/com/apollohg/editor/UniffiEditorV2Backend.kt +261 -0
  133. package/android/src/main/java/com/apollohg/editor/viewer/AndroidProseLayoutEngine.kt +1656 -0
  134. package/android/src/main/java/com/apollohg/editor/viewer/FabricAttachmentSidecars.kt +80 -0
  135. package/android/src/main/java/com/apollohg/editor/viewer/FabricLeaseHandleBridge.kt +59 -0
  136. package/android/src/main/java/com/apollohg/editor/viewer/FallbackSelectionGeometry.kt +450 -0
  137. package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseDrawingView.kt +678 -0
  138. package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseInstrumentation.kt +608 -0
  139. package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseLayout.kt +186 -0
  140. package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseLayoutCache.kt +393 -0
  141. package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseLayoutRegistry.kt +828 -0
  142. package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseTheme.kt +316 -0
  143. package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseViewerManager.kt +900 -0
  144. package/android/src/main/java/com/apollohg/editor/viewer/PreparedProseViewerPackage.kt +16 -0
  145. package/android/src/main/java/com/apollohg/editor/viewer/PreparedViewerAtoms.kt +89 -0
  146. package/android/src/main/java/com/apollohg/editor/viewer/ViewerCodeHighlighting.kt +91 -0
  147. package/android/src/main/java/com/apollohg/editor/viewer/ViewerDocument.kt +453 -0
  148. package/android/src/main/java/com/apollohg/editor/viewer/ViewerFontEnvironment.kt +282 -0
  149. package/android/src/main/java/com/apollohg/editor/viewer/ViewerImagePipeline.kt +460 -0
  150. package/android/src/main/jni/CMakeLists.txt +85 -0
  151. package/android/src/main/jni/PreparedProseViewerMeasurementsManager.cpp +334 -0
  152. package/android/src/main/jni/ReactNativeProseEditorSpec.h +17 -0
  153. package/android/src/main/jni/reactnativeproseeditor.h +6 -0
  154. package/android/src/main/res/values/attrs.xml +6 -0
  155. package/android/src/release/java/com/apollohg/editor/viewer/PreparedProseDrawInstrumentation.kt +9 -0
  156. package/app.plugin.js +62 -0
  157. package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseMeasurementsManager.h +62 -0
  158. package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseViewerComponentDescriptor.h +30 -0
  159. package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseViewerShadowNode.cpp +192 -0
  160. package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseViewerShadowNode.h +46 -0
  161. package/common/cpp/react/renderer/components/PreparedProseViewer/PreparedProseViewerState.h +145 -0
  162. package/dist/AtomHost.d.ts +17 -0
  163. package/dist/AtomHost.js +135 -0
  164. package/dist/DefaultAtomChip.d.ts +2 -0
  165. package/dist/DefaultAtomChip.js +22 -0
  166. package/dist/EditorAddon.d.ts +32 -0
  167. package/dist/EditorAddon.js +29 -0
  168. package/dist/EditorAddonNormalization.d.ts +6 -0
  169. package/dist/EditorAddonNormalization.js +48 -0
  170. package/dist/EditorMentionThemeNormalization.d.ts +8 -0
  171. package/dist/EditorMentionThemeNormalization.js +22 -0
  172. package/dist/EditorMentionThemeValidation.d.ts +12 -0
  173. package/dist/EditorMentionThemeValidation.js +95 -0
  174. package/dist/EditorStyleSheet.d.ts +4 -0
  175. package/dist/EditorStyleSheet.js +10 -0
  176. package/dist/EditorStyleSheetNormalization.d.ts +3 -0
  177. package/dist/EditorStyleSheetNormalization.js +226 -0
  178. package/dist/EditorStyleSheetTypes.d.ts +151 -0
  179. package/dist/EditorStyleSheetTypes.js +2 -0
  180. package/dist/EditorTheme.d.ts +117 -0
  181. package/dist/EditorTheme.js +41 -0
  182. package/dist/EditorToolbar.d.ts +4 -0
  183. package/dist/EditorToolbar.js +17 -0
  184. package/dist/EditorToolbarComponent.d.ts +13 -0
  185. package/dist/EditorToolbarComponent.js +24 -0
  186. package/dist/EditorToolbarItems.d.ts +9 -0
  187. package/dist/EditorToolbarItems.js +58 -0
  188. package/dist/EditorToolbarRegistry.d.ts +59 -0
  189. package/dist/EditorToolbarRegistry.js +175 -0
  190. package/dist/EditorToolbarTypes.d.ts +273 -0
  191. package/dist/EditorToolbarTypes.js +2 -0
  192. package/dist/EditorToolbarVisuals.d.ts +154 -0
  193. package/dist/EditorToolbarVisuals.js +228 -0
  194. package/dist/EditorUpdateRevision.d.ts +8 -0
  195. package/dist/EditorUpdateRevision.js +22 -0
  196. package/dist/ExternalTextComposition.d.ts +45 -0
  197. package/dist/ExternalTextComposition.js +537 -0
  198. package/dist/ImageLoadingPolicy.d.ts +54 -0
  199. package/dist/ImageLoadingPolicy.js +60 -0
  200. package/dist/NativeEditorBoundaryError.d.ts +111 -0
  201. package/dist/NativeEditorBoundaryError.js +268 -0
  202. package/dist/NativeEditorBridge.d.ts +9 -0
  203. package/dist/NativeEditorBridge.js +37 -0
  204. package/dist/NativeEditorCollaborationTransport.d.ts +154 -0
  205. package/dist/NativeEditorCollaborationTransport.js +275 -0
  206. package/dist/NativeEditorCreateConfig.d.ts +16 -0
  207. package/dist/NativeEditorCreateConfig.js +249 -0
  208. package/dist/NativeEditorCreateJson.d.ts +76 -0
  209. package/dist/NativeEditorCreateJson.js +474 -0
  210. package/dist/NativeEditorCreateValidation.d.ts +32 -0
  211. package/dist/NativeEditorCreateValidation.js +150 -0
  212. package/dist/NativeEditorDocumentBridge.d.ts +72 -0
  213. package/dist/NativeEditorDocumentBridge.js +305 -0
  214. package/dist/NativeEditorDocumentHandle.d.ts +70 -0
  215. package/dist/NativeEditorDocumentHandle.js +89 -0
  216. package/dist/NativeEditorLocalAwareness.d.ts +34 -0
  217. package/dist/NativeEditorLocalAwareness.js +153 -0
  218. package/dist/NativeEditorNativeModule.d.ts +48 -0
  219. package/dist/NativeEditorNativeModule.js +34 -0
  220. package/dist/NativeEditorRenderNormalization.d.ts +22 -0
  221. package/dist/NativeEditorRenderNormalization.js +274 -0
  222. package/dist/NativeEditorResultNormalization.d.ts +108 -0
  223. package/dist/NativeEditorResultNormalization.js +400 -0
  224. package/dist/NativeEditorTypes.d.ts +318 -0
  225. package/dist/NativeEditorTypes.js +15 -0
  226. package/dist/NativeEditorV2Decimal.d.ts +5 -0
  227. package/dist/NativeEditorV2Decimal.js +18 -0
  228. package/dist/NativeProseViewer.d.ts +122 -0
  229. package/dist/NativeProseViewer.js +130 -0
  230. package/dist/NativeRichTextEditor.d.ts +3 -0
  231. package/dist/NativeRichTextEditor.js +6 -0
  232. package/dist/ResourceLimits.d.ts +100 -0
  233. package/dist/ResourceLimits.js +80 -0
  234. package/dist/RichTextEditor.d.ts +4 -0
  235. package/dist/RichTextEditor.js +25 -0
  236. package/dist/RichTextEditorNativeTypes.d.ts +122 -0
  237. package/dist/RichTextEditorNativeTypes.js +2 -0
  238. package/dist/RichTextEditorNativeView.d.ts +12 -0
  239. package/dist/RichTextEditorNativeView.js +15 -0
  240. package/dist/RichTextEditorSerialization.d.ts +53 -0
  241. package/dist/RichTextEditorSerialization.js +283 -0
  242. package/dist/RichTextEditorTypes.d.ts +281 -0
  243. package/dist/RichTextEditorTypes.js +2 -0
  244. package/dist/ViewerConfiguration.d.ts +22 -0
  245. package/dist/ViewerConfiguration.js +6 -0
  246. package/dist/YjsCollaboration.d.ts +146 -0
  247. package/dist/YjsCollaboration.js +496 -0
  248. package/dist/addons.d.ts +193 -0
  249. package/dist/addons.js +122 -0
  250. package/dist/atomConstants.d.ts +3 -0
  251. package/dist/atomConstants.js +6 -0
  252. package/dist/atomInstances.d.ts +35 -0
  253. package/dist/atomInstances.js +79 -0
  254. package/dist/atomPolicy.d.ts +4 -0
  255. package/dist/atomPolicy.js +47 -0
  256. package/dist/atomUpdates.d.ts +2 -0
  257. package/dist/atomUpdates.js +38 -0
  258. package/dist/atoms.d.ts +92 -0
  259. package/dist/atoms.js +222 -0
  260. package/dist/attributeValidation.d.ts +4 -0
  261. package/dist/attributeValidation.js +97 -0
  262. package/dist/contentExpression.d.ts +6 -0
  263. package/dist/contentExpression.js +335 -0
  264. package/dist/index.d.ts +21 -0
  265. package/dist/index.js +78 -0
  266. package/dist/listMarkers.d.ts +15 -0
  267. package/dist/listMarkers.js +21 -0
  268. package/dist/schemaDefinition.d.ts +143 -0
  269. package/dist/schemaDefinition.js +206 -0
  270. package/dist/schemaDocument.d.ts +17 -0
  271. package/dist/schemaDocument.js +69 -0
  272. package/dist/schemaDocumentConstruction.d.ts +5 -0
  273. package/dist/schemaDocumentConstruction.js +125 -0
  274. package/dist/schemaNormalization.d.ts +29 -0
  275. package/dist/schemaNormalization.js +313 -0
  276. package/dist/schemaPresets.d.ts +68 -0
  277. package/dist/schemaPresets.js +198 -0
  278. package/dist/schemaResolution.d.ts +9 -0
  279. package/dist/schemaResolution.js +211 -0
  280. package/dist/schemas.d.ts +5 -0
  281. package/dist/schemas.js +28 -0
  282. package/dist/specs/PreparedProseViewerNativeComponent.d.ts +37 -0
  283. package/dist/specs/PreparedProseViewerNativeComponent.js +6 -0
  284. package/dist/useEditorToolbarInteractions.d.ts +12 -0
  285. package/dist/useEditorToolbarInteractions.js +218 -0
  286. package/dist/useEditorToolbarItems.d.ts +8 -0
  287. package/dist/useEditorToolbarItems.js +280 -0
  288. package/dist/useEditorToolbarPresentation.d.ts +4 -0
  289. package/dist/useEditorToolbarPresentation.js +203 -0
  290. package/dist/useEditorToolbarState.d.ts +63 -0
  291. package/dist/useEditorToolbarState.js +108 -0
  292. package/dist/useFocusPreservingFrames.d.ts +17 -0
  293. package/dist/useFocusPreservingFrames.js +108 -0
  294. package/dist/useNativeEditor.d.ts +66 -0
  295. package/dist/useNativeEditor.js +370 -0
  296. package/dist/useRichTextEditorCommands.d.ts +21 -0
  297. package/dist/useRichTextEditorCommands.js +299 -0
  298. package/dist/useRichTextEditorEvents.d.ts +18 -0
  299. package/dist/useRichTextEditorEvents.js +216 -0
  300. package/dist/useRichTextEditorMentions.d.ts +11 -0
  301. package/dist/useRichTextEditorMentions.js +316 -0
  302. package/dist/useRichTextEditorPresentation.d.ts +5 -0
  303. package/dist/useRichTextEditorPresentation.js +178 -0
  304. package/dist/useRichTextEditorState.d.ts +180 -0
  305. package/dist/useRichTextEditorState.js +405 -0
  306. package/dist/useRichTextEditorUpdates.d.ts +10 -0
  307. package/dist/useRichTextEditorUpdates.js +308 -0
  308. package/dist/useViewerAtoms.d.ts +38 -0
  309. package/dist/useViewerAtoms.js +288 -0
  310. package/expo-module.config.json +13 -0
  311. package/ios/EditorAddons.swift +354 -0
  312. package/ios/EditorCodeHighlighting.swift +184 -0
  313. package/ios/EditorCore.xcframework/Info.plist +44 -0
  314. package/ios/EditorCore.xcframework/ios-arm64/libeditor_core.a +0 -0
  315. package/ios/EditorCore.xcframework/ios-arm64_x86_64-simulator/libeditor_core.a +0 -0
  316. package/ios/EditorInteractionOverlays.swift +697 -0
  317. package/ios/EditorLayoutManager.swift +971 -0
  318. package/ios/EditorNodeTypes.swift +37 -0
  319. package/ios/EditorStyleSheet.swift +461 -0
  320. package/ios/EditorTextView+AttributedPatch.swift +305 -0
  321. package/ios/EditorTextView+Binding.swift +61 -0
  322. package/ios/EditorTextView+Caret.swift +333 -0
  323. package/ios/EditorTextView+Commands.swift +203 -0
  324. package/ios/EditorTextView+Delegate.swift +65 -0
  325. package/ios/EditorTextView+Diagnostics.swift +225 -0
  326. package/ios/EditorTextView+DragDrop.swift +290 -0
  327. package/ios/EditorTextView+ExternalComposition.swift +364 -0
  328. package/ios/EditorTextView+Images.swift +354 -0
  329. package/ios/EditorTextView+InputTraits.swift +200 -0
  330. package/ios/EditorTextView+KeyboardInput.swift +318 -0
  331. package/ios/EditorTextView+Layout.swift +245 -0
  332. package/ios/EditorTextView+MarkedText.swift +267 -0
  333. package/ios/EditorTextView+NativeInputLifecycle.swift +372 -0
  334. package/ios/EditorTextView+NativeMutation.swift +471 -0
  335. package/ios/EditorTextView+Reconciliation.swift +97 -0
  336. package/ios/EditorTextView+RenderPatch.swift +573 -0
  337. package/ios/EditorTextView+Rendering.swift +539 -0
  338. package/ios/EditorTextView+Selection.swift +542 -0
  339. package/ios/EditorTextView.swift +953 -0
  340. package/ios/EditorTheme.swift +626 -0
  341. package/ios/EditorV2Adapter+Commands.swift +204 -0
  342. package/ios/EditorV2Adapter+Envelope.swift +238 -0
  343. package/ios/EditorV2Adapter+Mutation.swift +392 -0
  344. package/ios/EditorV2Adapter+Registry.swift +185 -0
  345. package/ios/EditorV2Adapter+RenderState.swift +360 -0
  346. package/ios/EditorV2Adapter+RenderValidation.swift +420 -0
  347. package/ios/EditorV2Adapter+Selection.swift +329 -0
  348. package/ios/EditorV2Adapter+TextCommands.swift +430 -0
  349. package/ios/EditorV2Adapter.swift +376 -0
  350. package/ios/EditorV2Shadow.swift +353 -0
  351. package/ios/Generated_editor_core.swift +2378 -0
  352. package/ios/NativeCodeHighlighting.swift +159 -0
  353. package/ios/NativeCollaborationSocket.swift +144 -0
  354. package/ios/NativeCollaborationTransport+Protocol.swift +258 -0
  355. package/ios/NativeCollaborationTransport+Socket.swift +379 -0
  356. package/ios/NativeCollaborationTransport+Validation.swift +103 -0
  357. package/ios/NativeCollaborationTransport.swift +322 -0
  358. package/ios/NativeCollaborationTransportRegistry.swift +521 -0
  359. package/ios/NativeEditorExpoView+AccessoryRetry.swift +219 -0
  360. package/ios/NativeEditorExpoView+Binding.swift +268 -0
  361. package/ios/NativeEditorExpoView+Diagnostics.swift +66 -0
  362. package/ios/NativeEditorExpoView+Events.swift +131 -0
  363. package/ios/NativeEditorExpoView+Focus.swift +169 -0
  364. package/ios/NativeEditorExpoView+MentionRetry.swift +288 -0
  365. package/ios/NativeEditorExpoView+Mentions.swift +288 -0
  366. package/ios/NativeEditorExpoView+Properties.swift +300 -0
  367. package/ios/NativeEditorExpoView+Toolbar.swift +86 -0
  368. package/ios/NativeEditorExpoView+Updates.swift +312 -0
  369. package/ios/NativeEditorExpoView.swift +349 -0
  370. package/ios/NativeEditorModule.swift +856 -0
  371. package/ios/NativeEditorViewRegistry.swift +226 -0
  372. package/ios/NativeToolbar+ButtonStyle.swift +214 -0
  373. package/ios/NativeToolbar+Buttons.swift +228 -0
  374. package/ios/NativeToolbar+Diagnostics.swift +114 -0
  375. package/ios/NativeToolbar+Menu.swift +101 -0
  376. package/ios/NativeToolbar+Models.swift +519 -0
  377. package/ios/NativeToolbar+Placeholder.swift +39 -0
  378. package/ios/NativeToolbar.swift +612 -0
  379. package/ios/OrderedListMarkerFormatter.swift +103 -0
  380. package/ios/PositionBridge.swift +596 -0
  381. package/ios/ProseViewerView.swift +462 -0
  382. package/ios/RenderBridge+Atoms.swift +288 -0
  383. package/ios/RenderBridge+Attachments.swift +246 -0
  384. package/ios/RenderBridge+BlockBoundaries.swift +313 -0
  385. package/ios/RenderBridge+Style.swift +343 -0
  386. package/ios/RenderBridge.swift +704 -0
  387. package/ios/RichTextEditorView.swift +930 -0
  388. package/ios/SharedNativeImagePipeline+Cache.swift +189 -0
  389. package/ios/SharedNativeImagePipeline+Transport.swift +328 -0
  390. package/ios/SharedNativeImagePipeline.swift +533 -0
  391. package/ios/Viewer/CoreTextProseLayoutEngine+AttributedText.swift +436 -0
  392. package/ios/Viewer/CoreTextProseLayoutEngine+Models.swift +322 -0
  393. package/ios/Viewer/CoreTextProseLayoutEngine.swift +635 -0
  394. package/ios/Viewer/Fabric/PREPPreparedProseViewerComponentView.h +4 -0
  395. package/ios/Viewer/Fabric/PREPPreparedProseViewerComponentView.mm +767 -0
  396. package/ios/Viewer/Fabric/PreparedProseMeasurementsManager.mm +118 -0
  397. package/ios/Viewer/NativeSVGImageDecoder.h +9 -0
  398. package/ios/Viewer/NativeSVGImageDecoder.mm +106 -0
  399. package/ios/Viewer/NativeSVGPreflight.h +11 -0
  400. package/ios/Viewer/NativeSVGPreflight.mm +219 -0
  401. package/ios/Viewer/PreparedProseDrawingView.swift +639 -0
  402. package/ios/Viewer/PreparedProseInstrumentation.swift +387 -0
  403. package/ios/Viewer/PreparedProseLayout.swift +326 -0
  404. package/ios/Viewer/PreparedProseLayoutCache.swift +766 -0
  405. package/ios/Viewer/PreparedProseLayoutRegistry+Artifacts.swift +377 -0
  406. package/ios/Viewer/PreparedProseLayoutRegistry+Fabric.swift +582 -0
  407. package/ios/Viewer/PreparedProseLayoutRegistry+FabricOwnership.swift +128 -0
  408. package/ios/Viewer/PreparedProseLayoutRegistry.swift +381 -0
  409. package/ios/Viewer/ViewerDocument.swift +575 -0
  410. package/ios/Viewer/ViewerFontEnvironment.swift +283 -0
  411. package/ios/Viewer/ViewerImagePipeline.swift +478 -0
  412. package/ios/editor_coreFFI/editor_coreFFI.h +1023 -0
  413. package/ios/editor_coreFFI/module.modulemap +7 -0
  414. package/package.json +151 -0
  415. package/react-native.config.js +17 -0
  416. package/rust/android/arm64-v8a/libeditor_core.so +0 -0
  417. package/rust/android/armeabi-v7a/libeditor_core.so +0 -0
  418. package/rust/android/x86/libeditor_core.so +0 -0
  419. package/rust/android/x86_64/libeditor_core.so +0 -0
  420. package/rust/bindings/kotlin/uniffi/editor_core/editor_core.kt +3146 -0
  421. package/src/AtomHost.tsx +180 -0
  422. package/src/DefaultAtomChip.tsx +27 -0
  423. package/src/EditorAddon.ts +65 -0
  424. package/src/EditorAddonNormalization.ts +49 -0
  425. package/src/EditorMentionThemeNormalization.ts +25 -0
  426. package/src/EditorMentionThemeValidation.ts +133 -0
  427. package/src/EditorStyleSheet.ts +9 -0
  428. package/src/EditorStyleSheetNormalization.ts +219 -0
  429. package/src/EditorStyleSheetTypes.ts +189 -0
  430. package/src/EditorTheme.ts +196 -0
  431. package/src/EditorToolbar.tsx +31 -0
  432. package/src/EditorToolbarComponent.tsx +23 -0
  433. package/src/EditorToolbarItems.tsx +64 -0
  434. package/src/EditorToolbarRegistry.tsx +254 -0
  435. package/src/EditorToolbarTypes.tsx +322 -0
  436. package/src/EditorToolbarVisuals.tsx +270 -0
  437. package/src/EditorUpdateRevision.ts +26 -0
  438. package/src/ExternalTextComposition.ts +658 -0
  439. package/src/ImageLoadingPolicy.ts +125 -0
  440. package/src/NativeEditorBoundaryError.ts +345 -0
  441. package/src/NativeEditorBridge.ts +93 -0
  442. package/src/NativeEditorCollaborationTransport.ts +493 -0
  443. package/src/NativeEditorCreateConfig.ts +326 -0
  444. package/src/NativeEditorCreateJson.ts +579 -0
  445. package/src/NativeEditorCreateValidation.ts +178 -0
  446. package/src/NativeEditorDocumentBridge.ts +485 -0
  447. package/src/NativeEditorDocumentHandle.ts +168 -0
  448. package/src/NativeEditorLocalAwareness.ts +168 -0
  449. package/src/NativeEditorNativeModule.ts +97 -0
  450. package/src/NativeEditorRenderNormalization.ts +320 -0
  451. package/src/NativeEditorResultNormalization.ts +469 -0
  452. package/src/NativeEditorTypes.ts +366 -0
  453. package/src/NativeEditorV2Decimal.ts +13 -0
  454. package/src/NativeProseViewer.tsx +356 -0
  455. package/src/NativeRichTextEditor.tsx +33 -0
  456. package/src/ResourceLimits.ts +187 -0
  457. package/src/RichTextEditor.tsx +27 -0
  458. package/src/RichTextEditorNativeTypes.tsx +144 -0
  459. package/src/RichTextEditorNativeView.tsx +21 -0
  460. package/src/RichTextEditorSerialization.tsx +381 -0
  461. package/src/RichTextEditorTypes.tsx +327 -0
  462. package/src/ViewerConfiguration.ts +23 -0
  463. package/src/YjsCollaboration.ts +692 -0
  464. package/src/addons.ts +311 -0
  465. package/src/atomConstants.ts +3 -0
  466. package/src/atomInstances.ts +123 -0
  467. package/src/atomPolicy.ts +47 -0
  468. package/src/atomUpdates.ts +52 -0
  469. package/src/atoms.ts +379 -0
  470. package/src/attributeValidation.ts +116 -0
  471. package/src/contentExpression.ts +338 -0
  472. package/src/index.ts +295 -0
  473. package/src/listMarkers.ts +18 -0
  474. package/src/schemaDefinition.ts +395 -0
  475. package/src/schemaDocument.ts +92 -0
  476. package/src/schemaDocumentConstruction.ts +148 -0
  477. package/src/schemaNormalization.ts +367 -0
  478. package/src/schemaPresets.ts +250 -0
  479. package/src/schemaResolution.ts +242 -0
  480. package/src/schemas.ts +43 -0
  481. package/src/specs/PreparedProseViewerNativeComponent.ts +40 -0
  482. package/src/useEditorToolbarInteractions.tsx +329 -0
  483. package/src/useEditorToolbarItems.tsx +390 -0
  484. package/src/useEditorToolbarPresentation.tsx +483 -0
  485. package/src/useEditorToolbarState.tsx +172 -0
  486. package/src/useFocusPreservingFrames.ts +171 -0
  487. package/src/useNativeEditor.ts +534 -0
  488. package/src/useRichTextEditorCommands.tsx +478 -0
  489. package/src/useRichTextEditorEvents.tsx +342 -0
  490. package/src/useRichTextEditorMentions.tsx +441 -0
  491. package/src/useRichTextEditorPresentation.tsx +563 -0
  492. package/src/useRichTextEditorState.tsx +620 -0
  493. package/src/useRichTextEditorUpdates.tsx +403 -0
  494. package/src/useViewerAtoms.tsx +427 -0
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Bounds on the documents, schemas, and collaboration payloads the Rust core
3
+ * will admit. Set them on `NativeEditorCreateConfig.limits.resource` when
4
+ * creating a document handle, or on `RichTextViewer.resourceLimits`.
5
+ *
6
+ * Every field is optional; an omitted one uses
7
+ * {@link DEFAULT_EDITOR_RESOURCE_LIMITS}. Each value must be a positive
8
+ * integer no greater than the matching {@link HARD_EDITOR_RESOURCE_LIMITS}
9
+ * ceiling — anything else throws `NativeEditorBoundaryError`
10
+ * (`INVALID_RESOURCE_LIMIT`). Exceeding a limit at runtime raises
11
+ * `INPUT_LIMIT_EXCEEDED`, `DOCUMENT_LIMIT_EXCEEDED`, or `SCHEMA_INVALID`.
12
+ */
13
+ export interface EditorResourceLimits {
14
+ /** Byte ceiling for a single config, document JSON, or HTML string crossing into the core. */
15
+ maxInputBytes?: number;
16
+ /** Maximum number of nodes in a document. */
17
+ maxDocumentNodes?: number;
18
+ /** Maximum node nesting depth in a document. */
19
+ maxDocumentDepth?: number;
20
+ /** Maximum number of node specs in a schema definition. */
21
+ maxSchemaNodes?: number;
22
+ /** Byte ceiling for the combined `content` expressions of a schema's nodes. */
23
+ maxSchemaExpressionBytes?: number;
24
+ /** Byte ceiling for one inbound collaboration message. */
25
+ maxCollaborationMessageBytes?: number;
26
+ /** Byte ceiling for an encoded Yjs state — imported room snapshots and exported ones. */
27
+ maxEncodedStateBytes?: number;
28
+ }
29
+ /**
30
+ * Bounds on editing work inside the engine, set on
31
+ * `NativeEditorCreateConfig.limits.editing`. Omitted fields use the Rust
32
+ * core's defaults; supplied values are validated against the same hard
33
+ * ceilings the core enforces.
34
+ */
35
+ export interface EditorEditingLimits {
36
+ /** Maximum operations one compiled transaction may carry. Core default 256. */
37
+ maxOperationsPerTransaction?: number;
38
+ /** Maximum undoable groups retained in history. Core default 500. */
39
+ maxUndoGroups?: number;
40
+ /** Maximum document units the undo stack may retain across all groups. Core default 1,000,000. */
41
+ maxUndoRetainedUnits?: number;
42
+ /** Byte ceiling for derived output (HTML, JSON, render state) the engine produces. Core default 32 MiB. */
43
+ maxDerivedOutputBytes?: number;
44
+ }
45
+ /**
46
+ * Bounds on the native collaboration transport, set on
47
+ * `NativeEditorCreateConfig.limits.collaboration`. Omitted fields use the
48
+ * Rust core's defaults; supplied values are validated against the same hard
49
+ * ceilings the core enforces.
50
+ */
51
+ export interface EditorCollaborationLimits {
52
+ /** Maximum protocol frames decoded from one transport message. Core default 64. */
53
+ maxFramesPerMessage?: number;
54
+ /** Byte ceiling for a single protocol frame. Core default 10 MiB. */
55
+ maxFrameBytes?: number;
56
+ /** Byte ceiling for all reply frames produced for one inbound message. Core default 10 MiB. */
57
+ maxAggregateResponseBytes?: number;
58
+ /** Maximum tracked awareness peers. Core default 1,024. */
59
+ maxAwarenessPeers?: number;
60
+ /** Byte ceiling for one peer's awareness state. Core default 64 KiB. */
61
+ maxAwarenessPeerBytes?: number;
62
+ /** Byte ceiling for all retained awareness state. Core default 10 MiB. */
63
+ maxAwarenessBytes?: number;
64
+ /** Maximum messages queued for send while disconnected. Core default 256. */
65
+ maxPendingOutboxMessages?: number;
66
+ /** Byte ceiling for the outbound queue. Core default 10 MiB. */
67
+ maxPendingOutboxBytes?: number;
68
+ /** Byte ceiling for remote updates buffered while awaiting their missing dependencies. Core default 10 MiB. */
69
+ maxPendingDependencyUpdateBytes?: number;
70
+ /** Work ceiling for those buffered dependency updates. Core default 1,000,000. */
71
+ maxPendingDependencyUpdateWork?: number;
72
+ }
73
+ /** {@link EditorResourceLimits} with every default filled in. */
74
+ export interface ResolvedEditorResourceLimits {
75
+ maxInputBytes: number;
76
+ maxDocumentNodes: number;
77
+ maxDocumentDepth: number;
78
+ maxSchemaNodes: number;
79
+ maxSchemaExpressionBytes: number;
80
+ maxCollaborationMessageBytes: number;
81
+ maxEncodedStateBytes: number;
82
+ }
83
+ /** The value used for each {@link EditorResourceLimits} field left unset. */
84
+ export declare const DEFAULT_EDITOR_RESOURCE_LIMITS: Readonly<ResolvedEditorResourceLimits>;
85
+ /** The ceiling each {@link EditorResourceLimits} field may not exceed. */
86
+ export declare const HARD_EDITOR_RESOURCE_LIMITS: Readonly<ResolvedEditorResourceLimits>;
87
+ export declare function validateEditorCreateLimits(limits?: {
88
+ resource?: EditorResourceLimits;
89
+ editing?: EditorEditingLimits;
90
+ collaboration?: EditorCollaborationLimits;
91
+ }): void;
92
+ /**
93
+ * Fill in every unset {@link EditorResourceLimits} field from
94
+ * {@link DEFAULT_EDITOR_RESOURCE_LIMITS}, validating each value against
95
+ * {@link HARD_EDITOR_RESOURCE_LIMITS}.
96
+ *
97
+ * @throws NativeEditorBoundaryError `INVALID_RESOURCE_LIMIT` when a value is
98
+ * not a positive integer within its ceiling.
99
+ */
100
+ export declare function resolveEditorResourceLimits(limits?: EditorResourceLimits): ResolvedEditorResourceLimits;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HARD_EDITOR_RESOURCE_LIMITS = exports.DEFAULT_EDITOR_RESOURCE_LIMITS = void 0;
4
+ exports.validateEditorCreateLimits = validateEditorCreateLimits;
5
+ exports.resolveEditorResourceLimits = resolveEditorResourceLimits;
6
+ const NativeEditorBoundaryError_1 = require("./NativeEditorBoundaryError");
7
+ /** The value used for each {@link EditorResourceLimits} field left unset. */
8
+ exports.DEFAULT_EDITOR_RESOURCE_LIMITS = {
9
+ maxInputBytes: 20 * 1024 * 1024,
10
+ maxDocumentNodes: 100000,
11
+ maxDocumentDepth: 256,
12
+ maxSchemaNodes: 1024,
13
+ maxSchemaExpressionBytes: 64 * 1024,
14
+ maxCollaborationMessageBytes: 10 * 1024 * 1024,
15
+ maxEncodedStateBytes: 50 * 1024 * 1024,
16
+ };
17
+ /** The ceiling each {@link EditorResourceLimits} field may not exceed. */
18
+ exports.HARD_EDITOR_RESOURCE_LIMITS = {
19
+ maxInputBytes: 64 * 1024 * 1024,
20
+ maxDocumentNodes: 1000000,
21
+ maxDocumentDepth: 1024,
22
+ maxSchemaNodes: 10000,
23
+ maxSchemaExpressionBytes: 1024 * 1024,
24
+ maxCollaborationMessageBytes: 64 * 1024 * 1024,
25
+ maxEncodedStateBytes: 256 * 1024 * 1024,
26
+ };
27
+ const HARD_EDITOR_EDITING_LIMITS = {
28
+ maxOperationsPerTransaction: 4096,
29
+ maxUndoGroups: 2000,
30
+ maxUndoRetainedUnits: 8000000,
31
+ maxDerivedOutputBytes: 128 * 1024 * 1024,
32
+ };
33
+ const HARD_EDITOR_COLLABORATION_LIMITS = {
34
+ maxFramesPerMessage: 1024,
35
+ maxFrameBytes: 64 * 1024 * 1024,
36
+ maxAggregateResponseBytes: 64 * 1024 * 1024,
37
+ maxAwarenessPeers: 10000,
38
+ maxAwarenessPeerBytes: 1024 * 1024,
39
+ maxAwarenessBytes: 64 * 1024 * 1024,
40
+ maxPendingOutboxMessages: 4096,
41
+ maxPendingOutboxBytes: 64 * 1024 * 1024,
42
+ maxPendingDependencyUpdateBytes: 64 * 1024 * 1024,
43
+ maxPendingDependencyUpdateWork: 8000000,
44
+ };
45
+ function validateLimit(name, value, ceiling) {
46
+ if (!Number.isSafeInteger(value) || value <= 0 || value > ceiling) {
47
+ throw new NativeEditorBoundaryError_1.NativeEditorBoundaryError('INVALID_RESOURCE_LIMIT', `${name} must be a positive integer no greater than ${ceiling}`, ceiling, value);
48
+ }
49
+ }
50
+ function resolveLimit(name, value) {
51
+ const resolved = value ?? exports.DEFAULT_EDITOR_RESOURCE_LIMITS[name];
52
+ validateLimit(name, resolved, exports.HARD_EDITOR_RESOURCE_LIMITS[name]);
53
+ return resolved;
54
+ }
55
+ function validateOverrides(limits, ceilings) {
56
+ if (limits === undefined)
57
+ return;
58
+ for (const name of Object.keys(ceilings)) {
59
+ const value = limits[name];
60
+ if (value !== undefined) {
61
+ validateLimit(String(name), value, ceilings[name]);
62
+ }
63
+ }
64
+ }
65
+ function validateEditorCreateLimits(limits) {
66
+ validateOverrides(limits?.resource, exports.HARD_EDITOR_RESOURCE_LIMITS);
67
+ validateOverrides(limits?.editing, HARD_EDITOR_EDITING_LIMITS);
68
+ validateOverrides(limits?.collaboration, HARD_EDITOR_COLLABORATION_LIMITS);
69
+ }
70
+ /**
71
+ * Fill in every unset {@link EditorResourceLimits} field from
72
+ * {@link DEFAULT_EDITOR_RESOURCE_LIMITS}, validating each value against
73
+ * {@link HARD_EDITOR_RESOURCE_LIMITS}.
74
+ *
75
+ * @throws NativeEditorBoundaryError `INVALID_RESOURCE_LIMIT` when a value is
76
+ * not a positive integer within its ceiling.
77
+ */
78
+ function resolveEditorResourceLimits(limits = {}) {
79
+ return Object.fromEntries(Object.keys(exports.DEFAULT_EDITOR_RESOURCE_LIMITS).map((name) => [name, resolveLimit(name, limits[name])]));
80
+ }
@@ -0,0 +1,4 @@
1
+ import { type RichTextEditorRef, type RichTextEditorProps } from './RichTextEditorTypes';
2
+ export declare const RichTextEditor: import("react").ForwardRefExoticComponent<RichTextEditorProps & import("react").RefAttributes<RichTextEditorRef>>;
3
+ /** @deprecated Use RichTextEditor instead. */
4
+ export declare const NativeRichTextEditor: import("react").ForwardRefExoticComponent<RichTextEditorProps & import("react").RefAttributes<RichTextEditorRef>>;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NativeRichTextEditor = exports.RichTextEditor = void 0;
4
+ const react_1 = require("react");
5
+ const useRichTextEditorState_1 = require("./useRichTextEditorState");
6
+ const useRichTextEditorUpdates_1 = require("./useRichTextEditorUpdates");
7
+ const useRichTextEditorCommands_1 = require("./useRichTextEditorCommands");
8
+ const useRichTextEditorEvents_1 = require("./useRichTextEditorEvents");
9
+ const useRichTextEditorMentions_1 = require("./useRichTextEditorMentions");
10
+ const useRichTextEditorPresentation_1 = require("./useRichTextEditorPresentation");
11
+ exports.RichTextEditor = (0, react_1.forwardRef)(function RichTextEditor(props, ref) {
12
+ const state = (0, useRichTextEditorState_1.useRichTextEditorState)(props, ref);
13
+ const updates = (0, useRichTextEditorUpdates_1.useRichTextEditorUpdates)(state);
14
+ const commands = (0, useRichTextEditorCommands_1.useRichTextEditorCommands)({ ...state, ...updates });
15
+ const events = (0, useRichTextEditorEvents_1.useRichTextEditorEvents)({ ...state, ...updates, ...commands });
16
+ const mentions = (0, useRichTextEditorMentions_1.useRichTextEditorMentions)({
17
+ ...state,
18
+ ...commands,
19
+ ...updates,
20
+ ...events,
21
+ });
22
+ return (0, useRichTextEditorPresentation_1.useRichTextEditorPresentation)({ ...state, ...mentions, ...commands, ...events });
23
+ });
24
+ /** @deprecated Use RichTextEditor instead. */
25
+ exports.NativeRichTextEditor = exports.RichTextEditor;
@@ -0,0 +1,122 @@
1
+ import { ExternalTextCompositionManager, type NativeExternalTextCompositionHandle } from './ExternalTextComposition';
2
+ import { type ReactNode } from 'react';
3
+ import { type NativeSyntheticEvent, type StyleProp, type ViewStyle } from 'react-native';
4
+ import { type DocumentJSON, type NativeEditorDocumentHandle } from './NativeEditorBridge';
5
+ import { type RichTextEditorAutoCapitalize, type RichTextEditorKeyboardType, type RichTextEditorToolbarPlacement, type RichTextEditorHeightBehavior } from './RichTextEditorTypes';
6
+ export interface NativeExternalTextCompositionEvent {
7
+ editorId: string;
8
+ resultJson: string;
9
+ }
10
+ export interface NativeEditorViewHandle extends NativeExternalTextCompositionHandle {
11
+ focus?: () => void;
12
+ blur?: () => void;
13
+ getCaretRect?: () => Promise<string | null> | string | null;
14
+ }
15
+ export interface NativeEditorViewProps {
16
+ children?: ReactNode;
17
+ style?: StyleProp<ViewStyle>;
18
+ onLayout?: () => void;
19
+ accessibilityLabel?: string;
20
+ accessibilityHint?: string;
21
+ editorId: string;
22
+ placeholder?: string;
23
+ editable: boolean;
24
+ autoFocus: boolean;
25
+ autoCapitalize?: RichTextEditorAutoCapitalize;
26
+ autoCorrect?: boolean;
27
+ keyboardType?: RichTextEditorKeyboardType;
28
+ androidInputOptionsJson?: string;
29
+ showToolbar: boolean;
30
+ toolbarPlacement: RichTextEditorToolbarPlacement;
31
+ heightBehavior: RichTextEditorHeightBehavior;
32
+ allowImageResizing: boolean;
33
+ imageLoadingPolicyJson?: string;
34
+ themeJson?: string;
35
+ addonsJson?: string;
36
+ atomsJson?: string;
37
+ toolbarItemsJson?: string;
38
+ toolbarFrameJson?: string;
39
+ remoteSelectionsJson?: string;
40
+ editorUpdateJson?: string;
41
+ editorUpdateResetJson?: string;
42
+ editorUpdateEditorId?: string;
43
+ editorUpdateRevision?: number;
44
+ onEditorUpdate: (event: NativeSyntheticEvent<NativeUpdateEvent>) => void;
45
+ onEditorError: (event: NativeSyntheticEvent<NativeErrorEvent>) => void;
46
+ onExternalTextCompositionEnd: (event: NativeSyntheticEvent<NativeExternalTextCompositionEvent>) => void;
47
+ onSelectionChange: (event: NativeSyntheticEvent<NativeSelectionEvent>) => void;
48
+ onFocusChange: (event: NativeSyntheticEvent<NativeFocusEvent>) => void;
49
+ onContentHeightChange: (event: NativeSyntheticEvent<NativeContentHeightEvent>) => void;
50
+ onAtomLayout: (event: NativeSyntheticEvent<NativeAtomLayoutEvent>) => void;
51
+ onToolbarAction: (event: NativeSyntheticEvent<NativeToolbarActionEvent>) => void;
52
+ onAddonEvent: (event: NativeSyntheticEvent<NativeAddonEvent>) => void;
53
+ }
54
+ export interface NativeUpdateEvent {
55
+ updateJson: string;
56
+ editorId: string;
57
+ documentRevision: string;
58
+ }
59
+ export interface NativeErrorEvent {
60
+ editorId: string;
61
+ error: unknown;
62
+ }
63
+ export interface NativeSelectionEvent {
64
+ anchor: number;
65
+ head: number;
66
+ stateJson?: string;
67
+ editorId: string;
68
+ documentVersion?: string;
69
+ }
70
+ export interface NativeFocusEvent {
71
+ isFocused: boolean;
72
+ editorId: string;
73
+ }
74
+ export interface NativeContentHeightEvent {
75
+ contentHeight: number;
76
+ editorId: string;
77
+ }
78
+ export interface NativeAtomLayoutEvent {
79
+ width: number;
80
+ editorId: string;
81
+ positions?: readonly NativeAtomPosition[];
82
+ viewport?: {
83
+ y: number;
84
+ height: number;
85
+ };
86
+ }
87
+ export interface NativeAtomPosition {
88
+ /** Native editor coordinates used for Fabric responder measurements. */
89
+ hostX?: number;
90
+ hostY?: number;
91
+ height?: number;
92
+ width?: number;
93
+ key: string;
94
+ x: number;
95
+ y: number;
96
+ }
97
+ export interface NativeToolbarActionEvent {
98
+ key: string;
99
+ editorId: string;
100
+ updateJson?: string;
101
+ stateJson?: string;
102
+ documentRevision?: string;
103
+ }
104
+ export interface NativeAddonEvent {
105
+ eventJson: string;
106
+ editorId: string;
107
+ }
108
+ export interface NativeEditorErrorBinding {
109
+ readonly handle: NativeEditorDocumentHandle;
110
+ readonly editorId: string;
111
+ readonly generation: number;
112
+ readonly mounted: boolean;
113
+ }
114
+ export interface ControlledValueDelivery {
115
+ manager: ExternalTextCompositionManager;
116
+ key: string | null;
117
+ value: string | undefined;
118
+ valueJSON: DocumentJSON | undefined;
119
+ }
120
+ export interface ExternalCompositionDisposalToken {
121
+ cancelled: boolean;
122
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { type NativeEditorViewProps, type NativeEditorViewHandle } from './RichTextEditorNativeTypes';
3
+ export declare const NativeEditorView: React.ComponentType<NativeEditorViewProps & React.RefAttributes<NativeEditorViewHandle>>;
4
+ export declare const styles: {
5
+ container: {
6
+ position: "relative";
7
+ };
8
+ inlineToolbar: {
9
+ flexDirection: "row";
10
+ alignItems: "center";
11
+ };
12
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.styles = exports.NativeEditorView = void 0;
4
+ const expo_modules_core_1 = require("expo-modules-core");
5
+ const react_native_1 = require("react-native");
6
+ exports.NativeEditorView = (0, expo_modules_core_1.requireNativeViewManager)('NativeEditor');
7
+ exports.styles = react_native_1.StyleSheet.create({
8
+ container: {
9
+ position: 'relative',
10
+ },
11
+ inlineToolbar: {
12
+ flexDirection: 'row',
13
+ alignItems: 'center',
14
+ },
15
+ });
@@ -0,0 +1,53 @@
1
+ import { type EditorMentionTheme } from './EditorTheme';
2
+ import { type ActiveState, type NativeEditorAtomicRenderSnapshot, type ReadonlyActiveState, type Selection } from './NativeEditorBridge';
3
+ import { type AtomInstance } from './atomInstances';
4
+ import { type EditorToolbarFrame, type EditorToolbarGroupChildItem, type EditorToolbarItem } from './EditorToolbar';
5
+ import { type RichTextEditorProps, type RemoteSelectionDecoration, type RichTextEditorCaretRect } from './RichTextEditorTypes';
6
+ export declare function externalCompositionErrorPayload(error: unknown): unknown;
7
+ export declare const LINK_TOOLBAR_ACTION_KEY = "__native-editor-link__";
8
+ export declare const IMAGE_TOOLBAR_ACTION_KEY = "__native-editor-image__";
9
+ export declare let nextNativeEditorToolbarFrameOwnerId: number;
10
+ export declare function mergeMentionSuggestionTheme(baseTheme: EditorMentionTheme | undefined, resolvedTheme: EditorMentionTheme | undefined): EditorMentionTheme | undefined;
11
+ export declare function allocateToolbarFrameOwnerId(): number;
12
+ export declare const EMPTY_ACTIVE_STATE: ActiveState;
13
+ export type AtomRenderBlocks = NonNullable<NativeEditorAtomicRenderSnapshot['renderBlocks']>;
14
+ export interface AtomRenderState {
15
+ blocks: AtomRenderBlocks;
16
+ instanceBlocks: ReadonlyArray<ReadonlyArray<AtomInstance>>;
17
+ instances: AtomInstance[];
18
+ documentVersion: string | null;
19
+ hasOnlyStableAtomKeys: boolean;
20
+ }
21
+ export declare function selectedAtomKeys(selection: Selection, instances: readonly AtomInstance[]): Set<string>;
22
+ export declare function equalStringSets(left: ReadonlySet<string>, right: ReadonlySet<string>): boolean;
23
+ export declare function equalAtomInstances(left: readonly AtomInstance[], right: readonly AtomInstance[]): boolean;
24
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
25
+ export declare function parseSelectionFromUpdate(value: unknown): Selection | null;
26
+ export declare function stringArray(value: unknown): string[];
27
+ export declare function booleanMap(value: unknown): Record<string, boolean>;
28
+ export declare function parseActiveStateFromUpdate(value: unknown): ActiveState | null;
29
+ export declare function isRevisionMismatchError(error: unknown): boolean;
30
+ export declare function isPositionInvalidError(error: unknown): boolean;
31
+ export interface NativeCommitPayload {
32
+ editorId: string;
33
+ documentRevision: string;
34
+ updateJson: string;
35
+ }
36
+ export interface AcceptedNativeCommit {
37
+ documentRevision: string;
38
+ snapshot: NativeEditorAtomicRenderSnapshot;
39
+ }
40
+ /**
41
+ * Native commits are a transport boundary, not a best-effort view hint. The
42
+ * payload must be a complete atomic snapshot paired with the same canonical
43
+ * revision that native says it committed.
44
+ */
45
+ export declare function acceptNativeCommitPayload(payload: NativeCommitPayload, boundEditorId: string, lastAcceptedRevision: string | null): AcceptedNativeCommit | null;
46
+ export declare function mapToolbarChildForNative(item: EditorToolbarGroupChildItem, activeState: ReadonlyActiveState, editable: boolean, onRequestLink?: RichTextEditorProps['onRequestLink'], onRequestImage?: RichTextEditorProps['onRequestImage']): EditorToolbarGroupChildItem;
47
+ export declare function mapToolbarItemsForNative(items: readonly EditorToolbarItem[], activeState: ReadonlyActiveState, editable: boolean, onRequestLink?: RichTextEditorProps['onRequestLink'], onRequestImage?: RichTextEditorProps['onRequestImage']): EditorToolbarItem[];
48
+ export declare function serializeRemoteSelections(remoteSelections?: readonly RemoteSelectionDecoration[]): string | undefined;
49
+ export declare function serializeToolbarFrames(frames: readonly EditorToolbarFrame[] | null | undefined): string | undefined;
50
+ export declare function parseCaretRectJson(raw: string | null | undefined): RichTextEditorCaretRect | null;
51
+ export declare const serializedJsonCache: WeakMap<object, string>;
52
+ export declare function stringifyCachedJson(value: unknown): string;
53
+ export declare function useSerializedValue<T>(value: T | null | undefined, serialize: (value: T) => string | undefined, revision?: unknown): string | undefined;