edytor 1.0.0-rc.3 → 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 (667) hide show
  1. package/README.md +21 -39
  2. package/dist/block/block.svelte.d.ts +11 -84
  3. package/dist/block/block.svelte.js +30 -134
  4. package/dist/block/colors.d.ts +0 -9
  5. package/dist/block/colors.js +1 -18
  6. package/dist/block/contentRange.d.ts +5 -1
  7. package/dist/block/contentRange.js +15 -16
  8. package/dist/block/inlineBlock.svelte.d.ts +11 -9
  9. package/dist/block/inlineBlock.svelte.js +18 -21
  10. package/dist/clipboard/createClipboardFragment.js +22 -64
  11. package/dist/clipboard/fragmentData.js +17 -42
  12. package/dist/clipboard/htmlFlow.js +7 -7
  13. package/dist/clipboard/insertClipboardFragment.js +5 -4
  14. package/dist/clipboard/moveText.js +16 -8
  15. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  16. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  17. package/dist/cloudflare/DocumentRoom.d.ts +4 -17
  18. package/dist/cloudflare/DocumentRoom.js +3 -5
  19. package/dist/cloudflare/move.d.ts +1 -18
  20. package/dist/cloudflare/move.js +2 -48
  21. package/dist/cloudflare/room/admission.d.ts +1 -60
  22. package/dist/cloudflare/room/admission.js +25 -29
  23. package/dist/cloudflare/room/comments.d.ts +1 -3
  24. package/dist/cloudflare/room/comments.js +6 -6
  25. package/dist/cloudflare/room/context.d.ts +25 -82
  26. package/dist/cloudflare/room/context.js +8 -8
  27. package/dist/cloudflare/room/forged.d.ts +1 -1
  28. package/dist/cloudflare/room/forged.js +2 -12
  29. package/dist/cloudflare/room/frames.d.ts +1 -1
  30. package/dist/cloudflare/room/frames.js +1 -1
  31. package/dist/cloudflare/room/history.d.ts +1 -25
  32. package/dist/cloudflare/room/history.js +39 -54
  33. package/dist/cloudflare/room/moves.d.ts +1 -13
  34. package/dist/cloudflare/room/moves.js +33 -57
  35. package/dist/cloudflare/room/presence.d.ts +1 -11
  36. package/dist/cloudflare/room/presence.js +4 -4
  37. package/dist/cloudflare/room/purge.d.ts +1 -2
  38. package/dist/cloudflare/room/purge.js +2 -2
  39. package/dist/cloudflare/room/replicas.d.ts +1 -7
  40. package/dist/cloudflare/room/replicas.js +2 -2
  41. package/dist/cloudflare/room/storage.d.ts +3 -32
  42. package/dist/cloudflare/room/storage.js +33 -108
  43. package/dist/cloudflare/room/updates.d.ts +4 -4
  44. package/dist/cloudflare/room/updates.js +17 -24
  45. package/dist/cloudflare/room/validation.d.ts +1 -5
  46. package/dist/cloudflare/room/validation.js +16 -37
  47. package/dist/collaboration/RemoteSelections.svelte +13 -17
  48. package/dist/collaboration/awarenessSelection.d.ts +22 -1
  49. package/dist/collaboration/awarenessSelection.js +42 -0
  50. package/dist/collaboration/comments/client.d.ts +2 -2
  51. package/dist/collaboration/comments/client.js +1 -1
  52. package/dist/collaboration/history/index.d.ts +5 -5
  53. package/dist/collaboration/history/index.js +5 -5
  54. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  55. package/dist/collaboration/history/panel.svelte.js +223 -0
  56. package/dist/collaboration/providers.d.ts +12 -3
  57. package/dist/collaboration/providers.js +5 -4
  58. package/dist/components/Block.svelte +42 -56
  59. package/dist/components/Block.svelte.d.ts +7 -5
  60. package/dist/components/Content.svelte +1 -5
  61. package/dist/components/Edytor.svelte +82 -99
  62. package/dist/components/Edytor.svelte.d.ts +16 -13
  63. package/dist/components/InlineBlock.svelte +1 -1
  64. package/dist/components/Ranges.svelte +96 -0
  65. package/dist/components/Ranges.svelte.d.ts +19 -0
  66. package/dist/components/Suggestion.svelte +3 -2
  67. package/dist/components/Text.svelte +2 -5
  68. package/dist/components/Text.svelte.d.ts +1 -1
  69. package/dist/crdt/admission.d.ts +2 -9
  70. package/dist/crdt/admission.js +3 -9
  71. package/dist/crdt/attribution/attribution.d.ts +11 -72
  72. package/dist/crdt/attribution/attribution.js +5 -52
  73. package/dist/crdt/attribution/block.d.ts +0 -78
  74. package/dist/crdt/attribution/block.js +1 -144
  75. package/dist/crdt/data.d.ts +18 -13
  76. package/dist/crdt/data.js +49 -71
  77. package/dist/crdt/doc/anchors.js +4 -4
  78. package/dist/crdt/doc/content.d.ts +5 -1
  79. package/dist/crdt/doc/content.js +3 -1
  80. package/dist/crdt/doc/delete.d.ts +1 -0
  81. package/dist/crdt/doc/funnel.d.ts +0 -23
  82. package/dist/crdt/doc/funnel.js +34 -85
  83. package/dist/crdt/doc/gate.d.ts +8 -9
  84. package/dist/crdt/doc/gate.js +7 -17
  85. package/dist/crdt/doc/history.d.ts +87 -14
  86. package/dist/crdt/doc/history.js +334 -149
  87. package/dist/crdt/doc/layout.d.ts +0 -1
  88. package/dist/crdt/doc/layout.js +2 -3
  89. package/dist/crdt/doc/meta.d.ts +4 -4
  90. package/dist/crdt/doc/meta.js +10 -21
  91. package/dist/crdt/doc/moves.d.ts +4 -4
  92. package/dist/crdt/doc/moves.js +5 -5
  93. package/dist/crdt/doc/plan.d.ts +2 -0
  94. package/dist/crdt/doc/plan.js +2 -0
  95. package/dist/crdt/doc/reads.d.ts +8 -5
  96. package/dist/crdt/doc/reads.js +49 -50
  97. package/dist/crdt/doc/seed.d.ts +15 -6
  98. package/dist/crdt/doc/seed.js +27 -26
  99. package/dist/crdt/doc/split-merge.d.ts +1 -3
  100. package/dist/crdt/doc/split-merge.js +4 -5
  101. package/dist/crdt/doc/steps.d.ts +3 -7
  102. package/dist/crdt/doc/steps.js +20 -9
  103. package/dist/crdt/doc/types.d.ts +0 -10
  104. package/dist/crdt/document.d.ts +32 -115
  105. package/dist/crdt/document.js +216 -302
  106. package/dist/crdt/edytor-doc.d.ts +689 -90
  107. package/dist/crdt/edytor-doc.js +74 -149
  108. package/dist/crdt/engine-api.d.ts +15 -47
  109. package/dist/crdt/engine.d.ts +7 -17
  110. package/dist/crdt/engine.js +9 -19
  111. package/dist/crdt/flow.d.ts +9 -37
  112. package/dist/crdt/flow.js +260 -238
  113. package/dist/crdt/index.d.ts +32 -85
  114. package/dist/crdt/index.js +21 -47
  115. package/dist/crdt/operations.d.ts +24 -33
  116. package/dist/crdt/operations.js +8 -17
  117. package/dist/crdt/placement/display.d.ts +0 -2
  118. package/dist/crdt/placement/display.js +0 -15
  119. package/dist/crdt/placement/model.d.ts +160 -12
  120. package/dist/crdt/placement/model.js +413 -414
  121. package/dist/crdt/placement/rank.d.ts +1 -5
  122. package/dist/crdt/placement/rank.js +28 -38
  123. package/dist/crdt/props.d.ts +32 -0
  124. package/dist/crdt/props.js +172 -0
  125. package/dist/crdt/protocol.d.ts +4 -5
  126. package/dist/crdt/protocol.js +3 -4
  127. package/dist/crdt/protocols/awareness.d.ts +3 -7
  128. package/dist/crdt/protocols/awareness.js +17 -33
  129. package/dist/crdt/protocols/envelope.d.ts +9 -29
  130. package/dist/crdt/protocols/envelope.js +8 -25
  131. package/dist/crdt/protocols/sync.d.ts +15 -30
  132. package/dist/crdt/protocols/sync.js +27 -89
  133. package/dist/crdt/providers/bound.d.ts +3 -1
  134. package/dist/crdt/providers/bound.js +3 -1
  135. package/dist/crdt/providers/container.d.ts +11 -17
  136. package/dist/crdt/providers/container.js +39 -27
  137. package/dist/crdt/providers/index.d.ts +34 -6
  138. package/dist/crdt/providers/index.js +106 -111
  139. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  140. package/dist/crdt/providers/indexeddb.js +29 -90
  141. package/dist/crdt/providers/room.d.ts +58 -2
  142. package/dist/crdt/providers/room.js +38 -21
  143. package/dist/crdt/providers/websocket.d.ts +1 -1
  144. package/dist/crdt/providers/websocket.js +3 -4
  145. package/dist/crdt/purge.d.ts +2 -2
  146. package/dist/crdt/purge.js +69 -6
  147. package/dist/crdt/rangeDelete.d.ts +4 -42
  148. package/dist/crdt/rangeDelete.js +7 -6
  149. package/dist/crdt/restore.d.ts +21 -1
  150. package/dist/crdt/restore.js +54 -59
  151. package/dist/crdt/schema.d.ts +2 -2
  152. package/dist/crdt/schema.js +4 -5
  153. package/dist/crdt/semantics.d.ts +10 -15
  154. package/dist/crdt/semantics.js +22 -21
  155. package/dist/crdt/storage.d.ts +7 -13
  156. package/dist/crdt/storage.js +10 -24
  157. package/dist/crdt/structs.d.ts +42 -47
  158. package/dist/crdt/structs.js +76 -67
  159. package/dist/crdt/tables.d.ts +9 -0
  160. package/dist/crdt/tables.js +20 -0
  161. package/dist/crdt/text/delete-index.d.ts +0 -13
  162. package/dist/crdt/text/delete-index.js +7 -14
  163. package/dist/crdt/text/deletes.d.ts +9 -22
  164. package/dist/crdt/text/deletes.js +11 -74
  165. package/dist/crdt/text/index/cache.js +3 -3
  166. package/dist/crdt/text/index/fold.d.ts +1 -2
  167. package/dist/crdt/text/index/fold.js +15 -10
  168. package/dist/crdt/text/index/layout.d.ts +0 -10
  169. package/dist/crdt/text/index/layout.js +6 -20
  170. package/dist/crdt/text/index/records.js +2 -1
  171. package/dist/crdt/text/index/report.js +5 -6
  172. package/dist/crdt/text/index/shared.d.ts +11 -4
  173. package/dist/crdt/text/index/shared.js +8 -7
  174. package/dist/crdt/text/index/state.d.ts +3 -33
  175. package/dist/crdt/text/index/state.js +2 -4
  176. package/dist/crdt/text/model.d.ts +82 -2
  177. package/dist/crdt/text/model.js +344 -354
  178. package/dist/crdt/text/rows.d.ts +0 -2
  179. package/dist/crdt/text/rows.js +0 -11
  180. package/dist/crdt/text/runs.d.ts +6 -3
  181. package/dist/crdt/text/runs.js +132 -137
  182. package/dist/crdt/text/streams.d.ts +1 -1
  183. package/dist/crdt/text/streams.js +1 -1
  184. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  185. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  186. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  187. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  188. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  189. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  190. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  191. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  192. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  193. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  194. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  195. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  196. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  197. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  198. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  199. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  200. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  201. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  202. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  203. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  204. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  205. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  206. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  207. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  208. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  209. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  210. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  211. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  212. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  213. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  214. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  215. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  216. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  217. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  218. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  219. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  220. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  221. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  222. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  223. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  224. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  225. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  226. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  227. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  228. package/dist/dnd/autoScroll.js +1 -2
  229. package/dist/{plugins/blockHandles → dnd}/dropIndicator.d.ts +2 -2
  230. package/dist/{plugins/blockHandles → dnd}/dropIndicator.js +52 -60
  231. package/dist/{plugins/blockHandles → dnd}/geometry.d.ts +4 -3
  232. package/dist/{plugins/blockHandles → dnd}/geometry.js +6 -6
  233. package/dist/dnd/placement.d.ts +200 -0
  234. package/dist/dnd/placement.js +426 -0
  235. package/dist/dnd/pragmatic.d.ts +4 -22
  236. package/dist/dnd/pragmatic.js +7 -26
  237. package/dist/dnd/track.d.ts +14 -0
  238. package/dist/dnd/track.js +55 -0
  239. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  240. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  241. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  242. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  243. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  254. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  265. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +36 -0
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  293. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  294. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  295. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  296. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  297. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  298. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  299. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  300. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  301. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  302. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  303. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  304. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  305. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  306. package/dist/edytor.svelte.d.ts +46 -63
  307. package/dist/edytor.svelte.js +126 -181
  308. package/dist/events/beforeInputCommands.d.ts +6 -11
  309. package/dist/events/beforeInputCommands.js +189 -181
  310. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  311. package/dist/events/beforeInputDeleteCommands.js +153 -204
  312. package/dist/events/domTextOffset.d.ts +9 -9
  313. package/dist/events/domTextOffset.js +20 -48
  314. package/dist/events/events.utils.d.ts +0 -2
  315. package/dist/events/events.utils.js +0 -4
  316. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  317. package/dist/events/nativeInteractiveControl.js +28 -56
  318. package/dist/events/onBeforeInput.d.ts +6 -1
  319. package/dist/events/onBeforeInput.js +207 -331
  320. package/dist/events/onCopy.js +1 -5
  321. package/dist/events/onDrop.d.ts +7 -1
  322. package/dist/events/onDrop.js +64 -78
  323. package/dist/events/onFocus.d.ts +9 -4
  324. package/dist/events/onFocus.js +45 -67
  325. package/dist/events/onInput.d.ts +8 -4
  326. package/dist/events/onInput.js +34 -147
  327. package/dist/events/onKeyDown.js +55 -122
  328. package/dist/events/onPaste.d.ts +14 -1
  329. package/dist/events/onPaste.js +51 -76
  330. package/dist/index.d.ts +11 -15
  331. package/dist/index.js +3 -3
  332. package/dist/kinds.d.ts +4 -6
  333. package/dist/kinds.js +28 -27
  334. package/dist/labels.d.ts +83 -320
  335. package/dist/labels.js +181 -408
  336. package/dist/plugins/Chrome.svelte +29 -0
  337. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  338. package/dist/plugins/Control.svelte +23 -0
  339. package/dist/plugins/Control.svelte.d.ts +30 -0
  340. package/dist/plugins/anchored.svelte.d.ts +47 -0
  341. package/dist/plugins/anchored.svelte.js +73 -0
  342. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  343. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  344. package/dist/plugins/bands.svelte.d.ts +57 -0
  345. package/dist/plugins/bands.svelte.js +95 -0
  346. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -154
  347. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  348. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +21 -196
  349. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +158 -573
  350. package/dist/plugins/blockHandles/BlockHandles.svelte +15 -23
  351. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  352. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +25 -39
  353. package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -185
  354. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  355. package/dist/plugins/blockHandles/dragPreview.js +18 -16
  356. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +28 -38
  357. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +116 -183
  358. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  359. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  360. package/dist/plugins/brand.d.ts +8 -0
  361. package/dist/plugins/brand.js +8 -0
  362. package/dist/plugins/chrome.d.ts +45 -38
  363. package/dist/plugins/chrome.js +59 -36
  364. package/dist/plugins/code/CodeHeader.svelte +8 -38
  365. package/dist/plugins/code/CodePlugin.svelte +53 -56
  366. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  367. package/dist/plugins/code/LanguageMenu.svelte +16 -125
  368. package/dist/plugins/code/LanguageMenu.svelte.d.ts +2 -1
  369. package/dist/plugins/code/code.css +5 -117
  370. package/dist/plugins/code/header.svelte.d.ts +2 -11
  371. package/dist/plugins/code/header.svelte.js +11 -38
  372. package/dist/plugins/code/languageMenu.svelte.d.ts +12 -32
  373. package/dist/plugins/code/languageMenu.svelte.js +30 -160
  374. package/dist/plugins/code/languages.d.ts +9 -22
  375. package/dist/plugins/code/languages.js +39 -128
  376. package/dist/plugins/columns/ColumnResize.svelte +16 -27
  377. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  378. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  379. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  380. package/dist/plugins/columns/columns.css +7 -26
  381. package/dist/plugins/columns/gaps.d.ts +7 -5
  382. package/dist/plugins/columns/gaps.js +11 -6
  383. package/dist/plugins/columns/resize.svelte.d.ts +17 -54
  384. package/dist/plugins/columns/resize.svelte.js +80 -173
  385. package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
  386. package/dist/plugins/comments/CommentsController.svelte.js +14 -25
  387. package/dist/plugins/comments/CommentsSidebar.svelte +82 -431
  388. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +4 -2
  389. package/dist/plugins/comments/commentsPlugin.d.ts +25 -9
  390. package/dist/plugins/comments/commentsPlugin.js +12 -10
  391. package/dist/plugins/equation/EquationEditor.svelte +16 -130
  392. package/dist/plugins/equation/EquationEditor.svelte.d.ts +1 -2
  393. package/dist/plugins/equation/EquationPlugin.svelte +109 -172
  394. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +3 -2
  395. package/dist/plugins/equation/EquationView.svelte +20 -11
  396. package/dist/plugins/equation/equation.css +7 -0
  397. package/dist/plugins/equation/equation.svelte.d.ts +37 -24
  398. package/dist/plugins/equation/equation.svelte.js +20 -94
  399. package/dist/plugins/equation/katex.js +6 -9
  400. package/dist/plugins/fileDrop.d.ts +28 -0
  401. package/dist/plugins/fileDrop.js +116 -0
  402. package/dist/plugins/find/FindController.svelte.d.ts +8 -13
  403. package/dist/plugins/find/FindController.svelte.js +34 -55
  404. package/dist/plugins/find/findPlugin.d.ts +4 -8
  405. package/dist/plugins/find/findPlugin.js +29 -9
  406. package/dist/plugins/image/ImageChrome.svelte +6 -167
  407. package/dist/plugins/image/ImageChrome.svelte.d.ts +0 -2
  408. package/dist/plugins/image/ImagePlugin.svelte +71 -151
  409. package/dist/plugins/image/ImagePlugin.svelte.d.ts +12 -41
  410. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  411. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  412. package/dist/plugins/image/controls.svelte.d.ts +6 -36
  413. package/dist/plugins/image/controls.svelte.js +43 -212
  414. package/dist/plugins/image/image.css +17 -0
  415. package/dist/plugins/image/image.d.ts +0 -5
  416. package/dist/plugins/image/image.js +0 -3
  417. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  418. package/dist/plugins/image/toolbar.svelte.js +145 -0
  419. package/dist/plugins/index.d.ts +30 -26
  420. package/dist/plugins/index.js +28 -22
  421. package/dist/plugins/list.svelte.d.ts +128 -0
  422. package/dist/plugins/list.svelte.js +217 -0
  423. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  424. package/dist/plugins/markdownShortcuts.js +10 -9
  425. package/dist/plugins/marquee/MarqueeBox.svelte +3 -20
  426. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +1 -1
  427. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +0 -2
  428. package/dist/plugins/marquee/MarqueeController.svelte.js +20 -23
  429. package/dist/plugins/marquee/marquee.js +4 -21
  430. package/dist/plugins/marquee/marqueePlugin.d.ts +4 -3
  431. package/dist/plugins/marquee/marqueePlugin.js +16 -15
  432. package/dist/plugins/media/AudioPlugin.svelte +13 -88
  433. package/dist/plugins/media/AudioPlugin.svelte.d.ts +11 -4
  434. package/dist/plugins/media/BookmarkPlugin.svelte +113 -120
  435. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +10 -15
  436. package/dist/plugins/media/EmbedPlugin.svelte +82 -86
  437. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +11 -17
  438. package/dist/plugins/media/EmptySlot.svelte +44 -0
  439. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  440. package/dist/plugins/media/FilePlugin.svelte +45 -113
  441. package/dist/plugins/media/FilePlugin.svelte.d.ts +21 -4
  442. package/dist/plugins/media/MediaEmpty.svelte +51 -90
  443. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  444. package/dist/plugins/media/SourceBlock.svelte +200 -0
  445. package/dist/plugins/media/SourceBlock.svelte.d.ts +34 -0
  446. package/dist/plugins/media/UploadPreview.svelte +32 -0
  447. package/dist/plugins/media/UploadPreview.svelte.d.ts +11 -0
  448. package/dist/plugins/media/VideoPlugin.svelte +14 -97
  449. package/dist/plugins/media/VideoPlugin.svelte.d.ts +12 -5
  450. package/dist/plugins/media/empty.svelte.d.ts +47 -46
  451. package/dist/plugins/media/empty.svelte.js +67 -60
  452. package/dist/plugins/media/media.d.ts +97 -44
  453. package/dist/plugins/media/media.js +77 -99
  454. package/dist/plugins/media/upload.css +23 -0
  455. package/dist/plugins/media/urlPaste.svelte.d.ts +6 -37
  456. package/dist/plugins/media/urlPaste.svelte.js +32 -102
  457. package/dist/plugins/mention/MentionPlugin.svelte +84 -126
  458. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +17 -27
  459. package/dist/plugins/mention/mention.css +6 -0
  460. package/dist/plugins/page/PageLink.svelte +54 -38
  461. package/dist/plugins/page/PagePlugin.svelte +20 -18
  462. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  463. package/dist/plugins/page/page.d.ts +35 -9
  464. package/dist/plugins/page/page.js +3 -4
  465. package/dist/plugins/pageLink/PageLinkPlugin.svelte +154 -109
  466. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +19 -26
  467. package/dist/plugins/pageLink/pageLink.css +6 -0
  468. package/dist/plugins/planned.d.ts +10 -0
  469. package/dist/plugins/planned.js +12 -0
  470. package/dist/plugins/richtext/CalloutIcon.svelte +13 -26
  471. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  472. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  473. package/dist/plugins/richtext/EmptyBody.svelte +13 -20
  474. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  475. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  476. package/dist/plugins/richtext/RichTextPlugin.svelte +174 -183
  477. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +34 -34
  478. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  479. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  480. package/dist/plugins/richtext/body.js +2 -2
  481. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +50 -55
  482. package/dist/plugins/richtext/calloutIcons.svelte.js +86 -174
  483. package/dist/plugins/richtext/callouts.d.ts +15 -0
  484. package/dist/plugins/richtext/callouts.js +23 -0
  485. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  486. package/dist/plugins/richtext/controls.svelte.js +126 -0
  487. package/dist/plugins/richtext/richTextOperations.js +37 -28
  488. package/dist/plugins/richtext/richtext.css +6 -0
  489. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +2 -14
  490. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +34 -71
  491. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +9 -26
  492. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  493. package/dist/plugins/suggestions/SuggestionBars.svelte +27 -84
  494. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  495. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -18
  496. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  497. package/dist/plugins/table/TableChrome.svelte +40 -124
  498. package/dist/plugins/table/TablePlugin.svelte +106 -168
  499. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  500. package/dist/plugins/table/chrome.svelte.d.ts +38 -141
  501. package/dist/plugins/table/chrome.svelte.js +340 -589
  502. package/dist/plugins/table/ops.d.ts +47 -0
  503. package/dist/plugins/table/ops.js +233 -0
  504. package/dist/plugins/table/table.css +16 -152
  505. package/dist/plugins/table/table.d.ts +15 -14
  506. package/dist/plugins/table/table.js +22 -16
  507. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  508. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  509. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  510. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  511. package/dist/plugins/toc/toc.d.ts +41 -10
  512. package/dist/plugins/toc/toc.js +2 -3
  513. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +4 -68
  514. package/dist/plugins/toolbar/ToolbarController.svelte.js +63 -89
  515. package/dist/plugins/toolbar/toolbarPlugin.d.ts +8 -18
  516. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  517. package/dist/plugins/triggers/TriggerController.svelte.d.ts +4 -68
  518. package/dist/plugins/triggers/TriggerController.svelte.js +48 -129
  519. package/dist/plugins/triggers/place.d.ts +0 -9
  520. package/dist/plugins/triggers/place.js +1 -17
  521. package/dist/plugins/triggers/triggers.d.ts +31 -9
  522. package/dist/plugins/triggers/triggers.js +82 -62
  523. package/dist/plugins/uploads.svelte.d.ts +55 -24
  524. package/dist/plugins/uploads.svelte.js +123 -50
  525. package/dist/plugins.d.ts +187 -66
  526. package/dist/selection/domSelection.d.ts +13 -4
  527. package/dist/selection/domSelection.js +110 -183
  528. package/dist/selection/pointer.svelte.d.ts +8 -10
  529. package/dist/selection/pointer.svelte.js +32 -73
  530. package/dist/selection/replaceSelection.d.ts +21 -22
  531. package/dist/selection/replaceSelection.js +60 -69
  532. package/dist/selection/selection.svelte.d.ts +5 -73
  533. package/dist/selection/selection.svelte.js +224 -542
  534. package/dist/selection/selection.utils.d.ts +34 -11
  535. package/dist/selection/selection.utils.js +128 -247
  536. package/dist/selection/visibility.d.ts +3 -8
  537. package/dist/selection/visibility.js +7 -5
  538. package/dist/session/announcer.svelte.d.ts +2 -1
  539. package/dist/session/announcer.svelte.js +7 -3
  540. package/dist/session/attempt.d.ts +43 -39
  541. package/dist/session/attempt.js +62 -55
  542. package/dist/session/bindings.js +117 -145
  543. package/dist/session/commands.d.ts +47 -22
  544. package/dist/session/commands.js +208 -208
  545. package/dist/session/composition.svelte.d.ts +2 -4
  546. package/dist/session/composition.svelte.js +55 -65
  547. package/dist/session/editing/text.d.ts +6 -0
  548. package/dist/session/editing/text.js +17 -3
  549. package/dist/session/handles.d.ts +10 -1
  550. package/dist/session/handles.js +28 -0
  551. package/dist/session/history.d.ts +0 -4
  552. package/dist/session/history.js +16 -21
  553. package/dist/session/inputRules.d.ts +6 -3
  554. package/dist/session/inputRules.js +78 -83
  555. package/dist/session/keymap.d.ts +1 -6
  556. package/dist/session/keymap.js +17 -20
  557. package/dist/session/moves.d.ts +43 -10
  558. package/dist/session/moves.js +101 -59
  559. package/dist/session/navigation.d.ts +10 -2
  560. package/dist/session/navigation.js +140 -172
  561. package/dist/session/ports.d.ts +2 -7
  562. package/dist/session/props.d.ts +25 -25
  563. package/dist/session/props.js +62 -159
  564. package/dist/session/selection.d.ts +4 -3
  565. package/dist/session/selection.js +5 -0
  566. package/dist/session/suggestions.svelte.d.ts +1 -1
  567. package/dist/session/suggestions.svelte.js +42 -47
  568. package/dist/session/uploads.d.ts +29 -0
  569. package/dist/session/uploads.js +10 -0
  570. package/dist/session/virtual.d.ts +3 -3
  571. package/dist/session/virtual.js +18 -40
  572. package/dist/surface/attributes.d.ts +1 -0
  573. package/dist/surface/attributes.js +3 -26
  574. package/dist/surface/cells.d.ts +5 -0
  575. package/dist/surface/cells.js +5 -0
  576. package/dist/surface/lines.d.ts +2 -2
  577. package/dist/surface/lines.js +1 -1
  578. package/dist/surface/observer.svelte.d.ts +3 -20
  579. package/dist/surface/observer.svelte.js +52 -72
  580. package/dist/surface/overlay.d.ts +41 -3
  581. package/dist/surface/overlay.js +92 -37
  582. package/dist/surface/pin.svelte.d.ts +5 -0
  583. package/dist/surface/pin.svelte.js +5 -0
  584. package/dist/surface/projector.svelte.d.ts +4 -6
  585. package/dist/surface/projector.svelte.js +42 -69
  586. package/dist/text/text.svelte.d.ts +14 -40
  587. package/dist/text/text.svelte.js +35 -51
  588. package/dist/text/wordBoundary.d.ts +19 -0
  589. package/dist/text/wordBoundary.js +29 -44
  590. package/dist/themes/notion.css +272 -106
  591. package/dist/utils/json.d.ts +3 -1
  592. package/dist/utils/json.js +52 -51
  593. package/dist/utils/listen.d.ts +8 -0
  594. package/dist/utils/listen.js +19 -0
  595. package/package.json +4 -5
  596. package/dist/block/block.utils.d.ts +0 -340
  597. package/dist/block/block.utils.js +0 -356
  598. package/dist/collaboration/history/HistoryPanel.svelte +0 -554
  599. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  600. package/dist/collaboration/history/panel.d.ts +0 -61
  601. package/dist/collaboration/history/panel.js +0 -3
  602. package/dist/components/SuggestionRanges.svelte +0 -58
  603. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  604. package/dist/crdt/doc/table.d.ts +0 -21
  605. package/dist/crdt/doc/table.js +0 -288
  606. package/dist/crdt/migration/generation.d.ts +0 -58
  607. package/dist/crdt/migration/generation.js +0 -70
  608. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  609. package/dist/crdt/migration/legacy-schema.js +0 -151
  610. package/dist/crdt/migration/migrate.d.ts +0 -56
  611. package/dist/crdt/migration/migrate.js +0 -227
  612. package/dist/crdt/nodes.d.ts +0 -121
  613. package/dist/crdt/nodes.js +0 -56
  614. package/dist/crdt/text/index/checks.d.ts +0 -15
  615. package/dist/crdt/text/index/checks.js +0 -156
  616. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  617. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  618. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  619. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  620. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  621. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  622. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  623. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  624. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  625. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  626. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  627. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  628. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  629. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  630. package/dist/edytor.utils.d.ts +0 -50
  631. package/dist/edytor.utils.js +0 -67
  632. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -335
  633. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  634. package/dist/plugins/find/FindBar.svelte +0 -170
  635. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  636. package/dist/plugins/find/FindHighlights.svelte +0 -75
  637. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  638. package/dist/plugins/icons.d.ts +0 -2
  639. package/dist/plugins/icons.js +0 -63
  640. package/dist/plugins/image/ImageEmpty.svelte +0 -93
  641. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -15
  642. package/dist/plugins/image/empty.svelte.d.ts +0 -56
  643. package/dist/plugins/image/empty.svelte.js +0 -83
  644. package/dist/plugins/keepInView.d.ts +0 -4
  645. package/dist/plugins/keepInView.js +0 -6
  646. package/dist/plugins/media/UrlPasteMenu.svelte +0 -92
  647. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -9
  648. package/dist/plugins/richtext/CalloutIconMenu.svelte +0 -98
  649. package/dist/plugins/richtext/CalloutIconMenu.svelte.d.ts +0 -9
  650. package/dist/plugins/richtext/labels.d.ts +0 -9
  651. package/dist/plugins/richtext/labels.js +0 -7
  652. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -276
  653. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  654. package/dist/plugins/table/dragPreview.d.ts +0 -29
  655. package/dist/plugins/table/dragPreview.js +0 -103
  656. package/dist/plugins/toolbar/LinkCard.svelte +0 -122
  657. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -9
  658. package/dist/plugins/toolbar/Toolbar.svelte +0 -349
  659. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  660. package/dist/plugins/triggers/TriggerMenu.svelte +0 -135
  661. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  662. package/dist/text/deltas.d.ts +0 -22
  663. package/dist/text/deltas.js +0 -46
  664. package/dist/text/text.utils.d.ts +0 -45
  665. package/dist/text/text.utils.js +0 -199
  666. /package/dist/{plugins/columns → dnd}/stacking.d.ts +0 -0
  667. /package/dist/{plugins/columns → dnd}/stacking.js +0 -0
@@ -1,10 +1,10 @@
1
- import type { EngineApi, EngineDoc, YDoc, YUndoManager } from './engine-api.js';
1
+ import type { EngineApi, EngineDoc, YDoc } from './engine-api.js';
2
2
  import { SCHEMA } from './schema.js';
3
- import { type BlockId, type BlockSpec, type Destination } from './placement/model.js';
3
+ import { bindModel, type BlockId } from './placement/model.js';
4
+ import { bindText } from './text/model.js';
4
5
  import { type RunView } from './text/runs.js';
5
- import { type DocBlock } from './nodes.js';
6
6
  import { type BlockAttribution } from './attribution/block.js';
7
- import { type JSONBlock, type JSONDoc } from '../utils/json.js';
7
+ import type { JSONBlock, JSONDoc } from '../utils/json.js';
8
8
  import { assertSchema, assertUsableDoc, checkSchema, isInitialized, META_KEY, registryEmpty, SCHEMA_NAME, SCHEMA_VERSION, SchemaMismatchError, schemaVersion } from './doc/gate.js';
9
9
  import type { EngineNode } from './engine-api.js';
10
10
  import type { ContentItem, InlineSpec, ModelView, SplitTail } from './placement/model.js';
@@ -17,20 +17,255 @@ export { SCHEMA };
17
17
  export { assertSchema, assertUsableDoc, checkSchema, isInitialized, META_KEY, registryEmpty, SCHEMA_NAME, SCHEMA_VERSION, SchemaMismatchError, schemaVersion };
18
18
  export { UnsupportedDocError, type SchemaProblem } from './doc/gate.js';
19
19
  export { SEED_ORIGIN } from './doc/seed.js';
20
- export { EdytorDocDisposedError, lineageDepthOf } from './doc/funnel.js';
20
+ export { EdytorDocDisposedError } from './doc/funnel.js';
21
21
  export { DEFAULT_HISTORY_LIMIT } from './doc/history.js';
22
22
  export type { AnchorAffinity, BlockRole, DataTarget, DocAnchor, DocChange, EdytorDocConfig, OpResult, OrderPolicy, Plan, PlanEffect, PlanStep, Prepared, TextRange };
23
23
  export type EdytorDoc = ReturnType<EdytorDocBinding['create']>;
24
+ /** A facade as the editor reads it: every member but the public binding's engine layers. */
25
+ export type DocFacade = Omit<EdytorDoc, 'model' | 'text'>;
24
26
  export type EdytorDocBinding = ReturnType<typeof bindEdytorDoc>;
27
+ export type DocModelBinding = ReturnType<typeof bindDocModel>;
28
+ /**
29
+ * The engine layers a facade lists as `model` and `text`: the public
30
+ * binding's ({@link bindDocModel}); an editor's facade lists none, so its
31
+ * graph holds neither object.
32
+ */
33
+ type Layers = {
34
+ model: ReturnType<typeof bindModel> | undefined;
35
+ text: ReturnType<typeof bindText> | undefined;
36
+ };
37
+ /**
38
+ * The per-doc facade factory over the engine `Y` (the editor's documents
39
+ * use it directly; {@link bindDocModel} is the public binding around it).
40
+ */
41
+ export declare const docFacade: <L extends Layers>(Y: EngineApi, layers: L) => (doc: EngineDoc, config?: EdytorDocConfig) => {
42
+ /** Every op prepared: pure, a plan of named steps + its effect, or `refused`. */
43
+ prepare: {
44
+ insertFlow: (target: import("./flow.js").FlowTarget, flow: import("./flow.js").Flow, view?: import("./flow.js").FlowView) => Prepared;
45
+ deleteRange: (from: DocPosition, to: DocPosition, view?: import("./rangeDelete.js").RangeView) => Prepared;
46
+ replaceRange: (from: DocPosition, to: DocPosition, view?: import("./rangeDelete.js").RangeView) => Prepared;
47
+ insertBlocks: (dest: import("./index.js").Destination, specs: readonly (import("./index.js").BlockSpec | JSONBlock)[]) => Prepared;
48
+ moveBlocks: (ids: readonly BlockId[], dest: import("./index.js").Destination) => Prepared;
49
+ /**
50
+ * Move `id` to the last position under `parent` — under a container
51
+ * it is no item of, under its last item (`nestParent`: Tab after a list).
52
+ */
53
+ nestBlock: (id: BlockId, parent: BlockId) => Prepared;
54
+ unNestBlock: (id: BlockId) => Prepared;
55
+ unNestBlocks: (ids: readonly BlockId[]) => Prepared;
56
+ liftOut: (id: BlockId, kind: string, { keep, after }?: {
57
+ keep?: boolean;
58
+ after?: readonly import("./index.js").BlockSpec[];
59
+ }) => Prepared;
60
+ placeBeside: (ids: readonly BlockId[], target: BlockId, side: "left" | "right", kind?: string) => Prepared;
61
+ wrapInLayout: (ids: readonly BlockId[], kind?: string, columns?: number) => Prepared;
62
+ splitBlock: (id: BlockId, offset: number, newId: BlockId, tail?: SplitTail) => Prepared;
63
+ mergeBlocks: (fromId: BlockId, intoId: BlockId) => Prepared;
64
+ mergeBackward: (id: BlockId) => Prepared;
65
+ mergeForward: (id: BlockId) => Prepared;
66
+ deleteBlock: (id: BlockId, opts?: {
67
+ keepChildren?: boolean;
68
+ }) => Prepared;
69
+ setBlock: (id: BlockId, value: {
70
+ type?: string;
71
+ data?: Record<string, unknown>;
72
+ content?: (ContentItem | import("./index.js").JSONText | import("./index.js").JSONInlineBlock)[];
73
+ children?: (import("./index.js").BlockSpec | JSONBlock)[];
74
+ }) => Prepared;
75
+ setBlockType: (id: BlockId, type: string) => Prepared;
76
+ patchData: (target: DataTarget, patches: readonly DataPatch[]) => Prepared;
77
+ duplicateBlock: (id: BlockId, freshId?: (oldId: string, kind: "block" | "inline") => string) => Prepared;
78
+ insertText: (id: BlockId, offset: number, text: string, marks?: Record<string, unknown>) => Prepared;
79
+ deleteText: (id: BlockId, offset: number, length: number) => Prepared;
80
+ formatRange: (id: BlockId, offset: number, length: number, marks: Record<string, unknown>) => Prepared;
81
+ clearMarks: (id: BlockId, offset: number, length: number) => Prepared;
82
+ insertInline: (id: BlockId, offset: number, atom: import("./doc/content.js").NewInline) => Prepared;
83
+ removeInline: (id: BlockId, inlineId: string) => Prepared;
84
+ /** Delete a block selection — one plan; only the members leave (`deleteBlocks` above). */
85
+ deleteBlocks: (ids: readonly BlockId[]) => Prepared;
86
+ };
87
+ /** Write a prepared plan exactly (refusals pass through). */
88
+ apply: (p: Prepared) => OpResult;
89
+ compose: (...parts: Prepared[]) => Prepared;
90
+ transact: <R>(fn: () => R, origin?: unknown) => R;
91
+ model: L["model"];
92
+ text: L["text"];
93
+ runsView: RunView;
94
+ version: number;
95
+ insertFlow: (target: import("./flow.js").FlowTarget, flow: import("./flow.js").Flow, view?: import("./flow.js").FlowView | undefined) => OpResult;
96
+ deleteRange: (from: DocPosition, to: DocPosition, view?: import("./rangeDelete.js").RangeView | undefined) => OpResult;
97
+ replaceRange: (from: DocPosition, to: DocPosition, view?: import("./rangeDelete.js").RangeView | undefined) => OpResult;
98
+ insertBlocks: (dest: import("./index.js").Destination, specs: readonly (import("./index.js").BlockSpec | JSONBlock)[]) => OpResult;
99
+ moveBlocks: (ids: readonly string[], dest: import("./index.js").Destination) => OpResult;
100
+ nestBlock: (id: string, parent: string) => OpResult;
101
+ unNestBlock: (id: string) => OpResult;
102
+ unNestBlocks: (ids: readonly string[]) => OpResult;
103
+ liftOut: (id: string, kind: string, args_2?: {
104
+ keep?: boolean;
105
+ after?: readonly import("./index.js").BlockSpec[];
106
+ } | undefined) => OpResult;
107
+ placeBeside: (ids: readonly string[], target: string, side: "right" | "left", kind?: string | undefined) => OpResult;
108
+ wrapInLayout: (ids: readonly string[], kind?: string | undefined, columns?: number | undefined) => OpResult;
109
+ splitBlock: (id: string, offset: number, newId: string, tail?: SplitTail | undefined) => OpResult;
110
+ mergeBlocks: (fromId: string, intoId: string) => OpResult;
111
+ mergeBackward: (id: string) => OpResult;
112
+ mergeForward: (id: string) => OpResult;
113
+ deleteBlock: (id: string, opts?: {
114
+ keepChildren?: boolean;
115
+ } | undefined) => OpResult;
116
+ setBlock: (id: string, value: {
117
+ type?: string;
118
+ data?: Record<string, unknown>;
119
+ content?: (ContentItem | import("./index.js").JSONText | import("./index.js").JSONInlineBlock)[];
120
+ children?: (import("./index.js").BlockSpec | JSONBlock)[];
121
+ }) => OpResult;
122
+ setBlockType: (id: string, type: string) => OpResult;
123
+ patchData: (target: DataTarget, patches: readonly DataPatch[]) => OpResult;
124
+ duplicateBlock: (id: string, freshId?: ((oldId: string, kind: "block" | "inline") => string) | undefined) => OpResult;
125
+ insertText: (id: string, offset: number, text: string, marks?: Record<string, unknown> | undefined) => OpResult;
126
+ deleteText: (id: string, offset: number, length: number) => OpResult;
127
+ formatRange: (id: string, offset: number, length: number, marks: Record<string, unknown>) => OpResult;
128
+ clearMarks: (id: string, offset: number, length: number) => OpResult;
129
+ insertInline: (id: string, offset: number, atom: import("./doc/content.js").NewInline) => OpResult;
130
+ removeInline: (id: string, inlineId: string) => OpResult;
131
+ deleteBlocks: (ids: readonly string[]) => OpResult;
132
+ init: (opts?: Parameters<(doc: EngineDoc, opts?: {
133
+ content?: import("./index.js").BlockSpec[];
134
+ defaultType?: string;
135
+ }) => void>[1]) => void;
136
+ /** Apply the deterministic seed of `value` and the document's `data` — the document's seed decision. */
137
+ seed: (value: JSONBlock[], data?: JsonObj) => void;
138
+ isInitialized: () => boolean;
139
+ /** Replicated `meta.v` schema version (the module-level read, bound). */
140
+ schemaVersion: () => number | undefined;
141
+ /**
142
+ * The schema gate for this doc — throws {@link SchemaMismatchError}
143
+ * on unversioned-content or unsupported-version state. Consumers
144
+ * (`Edytor.sync()`, packed consumers) call it before trusting
145
+ * a synced doc.
146
+ */
147
+ checkSchema: () => import("./edytor-doc.js").SchemaProblem | null;
148
+ assertSchema: () => void;
149
+ dispose: () => void;
150
+ createUndoManager: (options?: import("./doc/history.js").HistoryOptions) => import("./doc/history.js").UndoManager;
151
+ project: () => import("./index.js").ProjectedDoc;
152
+ toJSON: () => JSONDoc;
153
+ blockJSON: (id: string) => JSONBlock;
154
+ childrenIds: (id: string | null) => string[];
155
+ /** Visible children of `parent` with their ranks, in `(rank, id)` order. */
156
+ childSlots: (parent: BlockId | null) => import("./placement/model.js").ChildSlot[];
157
+ slotOf: (id: string) => {
158
+ parent: BlockId | null;
159
+ rank: string;
160
+ } | null;
161
+ positionOf: (id: string) => import("./index.js").Destination | null;
162
+ pathOf: (id: string) => number[] | null;
163
+ parentOf: (id: string) => string | null;
164
+ ancestorsOf: (id: string) => string[];
165
+ listBlockIds: () => string[];
166
+ blockText: (id: string) => string | null;
167
+ blockTypeOf: (id: string) => string | undefined;
168
+ blockDataOf: (id: string) => Record<string, unknown> | undefined;
169
+ docData: () => JsonObj;
170
+ dataItemIds: (target: DataTarget, path: readonly string[]) => string[];
171
+ dataPreview: (target: DataTarget, pending: readonly DataPatch[]) => {
172
+ data: {
173
+ [x: string]: unknown;
174
+ };
175
+ ids: (path: readonly string[]) => string[];
176
+ } | null;
177
+ /**
178
+ * Compact per-block attribution (`{createdBy, contributors,
179
+ * lastChangedBy}`), or `undefined` for unauthored/system blocks.
180
+ * O(1) per call; live-replicated (remote values read the same).
181
+ */
182
+ blockAttribution: (id: string) => BlockAttribution | undefined;
183
+ crdtId: (id: string) => string | null;
184
+ resolveBlock: (id: string) => EngineNode | null;
185
+ displayLength: (id: string) => number;
186
+ contentItems: (id: string) => ContentItem[];
187
+ hasBlock: (id: string) => boolean;
188
+ isVisibleBlock: (id: string) => boolean;
189
+ order: () => readonly BlockId[];
190
+ compare: (a: BlockId, b: BlockId) => number;
191
+ next: (id: string, policy?: OrderPolicy | undefined) => string | null;
192
+ previous: (id: string, policy?: OrderPolicy | undefined) => string | null;
193
+ anchorAt: (id: string, offset: number, affinity?: AnchorAffinity | undefined) => DocAnchor | null;
194
+ resolveAnchor: (anchor: DocAnchor) => {
195
+ blockId: BlockId;
196
+ offset: number;
197
+ } | null;
198
+ followUndo: (anchor: DocAnchor) => DocAnchor;
199
+ /** Re-read the roles after `roleOf` answers differently (roles adopted later). */
200
+ rolesChanged: () => void;
201
+ isVoid: (id: string) => boolean;
202
+ isIsland: (id: string) => boolean;
203
+ isLines: (id: string) => boolean;
204
+ /** `id` is a layout: its kind's role says `layout` (`layout.*`). */
205
+ isLayout: (id: string) => boolean;
206
+ /** `id` is a layout item: of its layout's item kind, directly in it (a column). */
207
+ isLayoutItem: (id: string) => boolean;
208
+ /** The block a beside placement at `id` stands beside (`placeBeside`'s resolution). */
209
+ besideAt: (id: BlockId, kind?: string) => string;
210
+ islandOf: (id: string) => string | null;
211
+ /** `id` is a table: its kind's role says `table` (`table.*`). */
212
+ isTable: (id: string) => boolean;
213
+ /** `id` is a table's row: of its table's row kind, directly in it. */
214
+ isTableRow: (id: string) => boolean;
215
+ /** `id` is a table's cell: of its row's cell kind, directly in a row of a table. */
216
+ isTableCell: (id: string) => boolean;
217
+ /** The table `id` is, or whose row or cell it is; `null` for any other block. */
218
+ tableOf: (id: string) => string | null;
219
+ /** The columns a table lists (`data.columns`), or `null` when it lists none. */
220
+ tableColumns: (id: string) => {
221
+ id: string;
222
+ width?: number;
223
+ }[] | null;
224
+ /**
225
+ * A table as a grid: its column ids and each shown row's cells by
226
+ * column, `null` where the row shows none (a padded cell, `table.pad`).
227
+ */
228
+ tableGrid: (id: string) => {
229
+ columns: string[];
230
+ rows: {
231
+ id: BlockId;
232
+ cells: (BlockId | null)[];
233
+ }[];
234
+ } | null;
235
+ insideIsland: (id: string) => boolean;
236
+ canPlace: (ids: readonly BlockId[], parent?: BlockId | null) => boolean;
237
+ canMerge: (from: BlockId, into: BlockId) => boolean;
238
+ /** May a block of `kind` sit directly under `parent`? The container rule (`fits`). */
239
+ fits: (parent: BlockId | null, kind: string) => boolean;
240
+ /** Where `ids` nest when nested into `parent` (Tab, a drop inside it): `nestParent`. */
241
+ nestParent: (ids: readonly BlockId[], parent: BlockId) => string;
242
+ /** Where a block of `kind` at `id`'s place lands, and the containers it leaves (`liftOut`). */
243
+ landingOf: (id: BlockId, kind: string, after?: boolean) => {
244
+ parent: string | null;
245
+ levels: string[];
246
+ };
247
+ defaultChild: (id: string | null) => string;
248
+ runs: (id: string) => readonly ContentRun[];
249
+ contentJSON: (id: string) => ({
250
+ text: string;
251
+ marks?: Record<string, unknown>;
252
+ } | {
253
+ id?: string;
254
+ type: string;
255
+ data?: unknown;
256
+ })[];
257
+ onChange: (cb: (change: DocChange) => void) => (() => void);
258
+ };
25
259
  /**
26
260
  * Bind the assembled model to a concrete engine surface. `Y` must be the
27
261
  * vendored v14 module — injected so this file type-checks structurally and
28
- * never imports vendor `.js` (see `engine-api.ts`).
262
+ * never imports vendor `.js` (see `engine-api.ts`). A document composes
263
+ * this binding; {@link bindEdytorDoc} adds the room's purge and restore.
29
264
  */
30
- export declare const bindEdytorDoc: (Y: EngineApi) => {
265
+ export declare const bindDocModel: (Y: EngineApi) => {
31
266
  /** The schema manifest constants table. */
32
267
  SCHEMA: {
33
- readonly version: 5;
268
+ readonly version: 6;
34
269
  readonly name: "edytor-doc";
35
270
  readonly roots: {
36
271
  readonly registry: "blocks";
@@ -41,15 +276,15 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
41
276
  readonly schema: "schema";
42
277
  };
43
278
  };
44
- SCHEMA_VERSION: 5;
279
+ SCHEMA_VERSION: 6;
45
280
  SCHEMA_NAME: "edytor-doc";
46
281
  META_KEY: "meta";
47
282
  /** Doc-level API (no facade needed). */
48
283
  init: (doc: EngineDoc, opts?: {
49
- content?: BlockSpec[];
284
+ content?: import("./index.js").BlockSpec[];
50
285
  defaultType?: string;
51
286
  }) => void;
52
- restore: (doc: EngineDoc, content: BlockSpec[]) => void;
287
+ restore: (doc: EngineDoc, content: import("./index.js").BlockSpec[]) => void;
53
288
  seed: (doc: EngineDoc, value?: JSONBlock[], defaultType?: string, data?: JsonObj) => void;
54
289
  isInitialized: (doc: EngineDoc) => boolean;
55
290
  schemaVersion: (doc: EngineDoc) => number | undefined;
@@ -64,18 +299,8 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
64
299
  insertFlow: (target: import("./flow.js").FlowTarget, flow: import("./flow.js").Flow, view?: import("./flow.js").FlowView) => Prepared;
65
300
  deleteRange: (from: DocPosition, to: DocPosition, view?: import("./rangeDelete.js").RangeView) => Prepared;
66
301
  replaceRange: (from: DocPosition, to: DocPosition, view?: import("./rangeDelete.js").RangeView) => Prepared;
67
- insertTableRow: (table: BlockId, index: number) => Prepared;
68
- deleteTableRows: (rows: readonly BlockId[]) => Prepared;
69
- insertTableColumn: (table: BlockId, index: number, width?: number) => Prepared;
70
- deleteTableColumn: (table: BlockId, column: string | number) => Prepared;
71
- moveTableColumn: (table: BlockId, column: string | number, to: number) => Prepared;
72
- moveTableRows: (rows: readonly BlockId[], to: number) => Prepared;
73
- fillTableCell: (row: BlockId, column: string | number) => Prepared;
74
- insertBlocks: (dest: Destination, specs: readonly (BlockSpec | JSONBlock)[]) => Prepared;
75
- insertBlock: (dest: Destination, spec: BlockSpec | JSONBlock) => Prepared;
76
- moveBlocks: (ids: readonly BlockId[], dest: Destination) => Prepared;
77
- /** Relocate `id` — identity preserved. */
78
- moveBlock: (id: BlockId, dest: Destination) => Prepared;
302
+ insertBlocks: (dest: import("./index.js").Destination, specs: readonly (import("./index.js").BlockSpec | JSONBlock)[]) => Prepared;
303
+ moveBlocks: (ids: readonly BlockId[], dest: import("./index.js").Destination) => Prepared;
79
304
  /**
80
305
  * Move `id` to the last position under `parent` — under a container
81
306
  * it is no item of, under its last item (`nestParent`: Tab after a list).
@@ -85,7 +310,7 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
85
310
  unNestBlocks: (ids: readonly BlockId[]) => Prepared;
86
311
  liftOut: (id: BlockId, kind: string, { keep, after }?: {
87
312
  keep?: boolean;
88
- after?: readonly BlockSpec[];
313
+ after?: readonly import("./index.js").BlockSpec[];
89
314
  }) => Prepared;
90
315
  placeBeside: (ids: readonly BlockId[], target: BlockId, side: "left" | "right", kind?: string) => Prepared;
91
316
  wrapInLayout: (ids: readonly BlockId[], kind?: string, columns?: number) => Prepared;
@@ -99,24 +324,18 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
99
324
  setBlock: (id: BlockId, value: {
100
325
  type?: string;
101
326
  data?: Record<string, unknown>;
102
- content?: ContentItem[];
103
- children?: BlockSpec[];
327
+ content?: (ContentItem | import("./index.js").JSONText | import("./index.js").JSONInlineBlock)[];
328
+ children?: (import("./index.js").BlockSpec | JSONBlock)[];
104
329
  }) => Prepared;
105
330
  setBlockType: (id: BlockId, type: string) => Prepared;
106
331
  patchData: (target: DataTarget, patches: readonly DataPatch[]) => Prepared;
107
- /** Replace a block's `data`: a patch of its root. */
108
- setBlockData: (id: BlockId, data: Record<string, unknown>) => Prepared;
109
- duplicateBlock: (id: BlockId, freshId: (oldId: string, kind: "block" | "inline") => string) => Prepared;
332
+ duplicateBlock: (id: BlockId, freshId?: (oldId: string, kind: "block" | "inline") => string) => Prepared;
110
333
  insertText: (id: BlockId, offset: number, text: string, marks?: Record<string, unknown>) => Prepared;
111
334
  deleteText: (id: BlockId, offset: number, length: number) => Prepared;
112
335
  formatRange: (id: BlockId, offset: number, length: number, marks: Record<string, unknown>) => Prepared;
113
- setMark: (id: BlockId, offset: number, length: number, name: string, value: unknown) => Prepared;
114
- unsetMark: (id: BlockId, offset: number, length: number, name: string) => Prepared;
115
336
  clearMarks: (id: BlockId, offset: number, length: number) => Prepared;
116
- insertInline: (id: BlockId, offset: number, atom: InlineSpec) => Prepared;
337
+ insertInline: (id: BlockId, offset: number, atom: import("./doc/content.js").NewInline) => Prepared;
117
338
  removeInline: (id: BlockId, inlineId: string) => Prepared;
118
- /** Replace an inline atom's `data`: a patch of its root. */
119
- setInlineData: (id: BlockId, inlineId: string, data: Record<string, unknown>) => Prepared;
120
339
  /** Delete a block selection — one plan; only the members leave (`deleteBlocks` above). */
121
340
  deleteBlocks: (ids: readonly BlockId[]) => Prepared;
122
341
  };
@@ -134,7 +353,7 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
134
353
  view: (doc: EngineDoc) => ModelView;
135
354
  resolvePlacements: (blocks: Map<BlockId, import("./placement/model.js").BlockRec>, ownerOf?: (b: BlockId) => import("./text/model.js").Owner) => Map<BlockId, import("./placement/model.js").ResolvedPlacement>;
136
355
  childrenIndex: (placements: Map<BlockId, import("./placement/model.js").ResolvedPlacement>, own: import("./placement/model.js").DisplayOwnership) => Map<BlockId | null, import("./placement/model.js").ChildSlot[]>;
137
- positionInView: (v: ModelView, id: BlockId) => Destination | null;
356
+ positionInView: (v: ModelView, id: BlockId) => import("./index.js").Destination | null;
138
357
  buildInline: (atom: InlineSpec) => EngineNode;
139
358
  isSelfOrDescendant: (placements: Map<BlockId, import("./placement/model.js").ResolvedPlacement>, own: import("./text/model.js").Ownership, id: BlockId, maybeAncestor: BlockId) => boolean;
140
359
  ranksAt: (siblings: readonly {
@@ -143,21 +362,21 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
143
362
  writePlacement: (doc: EngineDoc, node: EngineNode, p: BlockId | null, r: string) => void;
144
363
  withdrawOnUndo: (doc: EngineDoc) => (item: import("./engine-api.js").EngineItemRef, stackItem: {
145
364
  inserts: {
146
- hasId(id: unknown): boolean;
365
+ has(client: number, clock: number): boolean;
147
366
  };
148
367
  }) => boolean;
149
- materializeSpec: (doc: EngineDoc, sp: BlockSpec, parent: BlockId | null, rank: string) => void;
150
- collides: (doc: EngineDoc, specs: readonly BlockSpec[]) => boolean;
368
+ materializeSpec: (doc: EngineDoc, sp: import("./index.js").BlockSpec, parent: BlockId | null, rank: string) => void;
369
+ collides: (doc: EngineDoc, specs: readonly import("./index.js").BlockSpec[]) => boolean;
151
370
  writeSplit: (doc: EngineDoc, id: BlockId, offset: number, newId: BlockId, tail: SplitTail, place: import("./placement/model.js").PlacementValue) => void;
152
371
  ownText: (doc: EngineDoc, id: BlockId) => {
153
372
  from: unknown;
154
373
  to: number;
155
374
  };
156
- insertBlocks: (doc: EngineDoc, dest: Destination, specs: BlockSpec[]) => boolean;
157
- insertBlock: (doc: EngineDoc, dest: Destination, spec: BlockSpec) => boolean;
158
- restoreBlocks: (doc: EngineDoc, specs: BlockSpec[]) => void;
375
+ insertBlocks: (doc: EngineDoc, dest: import("./index.js").Destination, specs: import("./index.js").BlockSpec[]) => boolean;
376
+ insertBlock: (doc: EngineDoc, dest: import("./index.js").Destination, spec: import("./index.js").BlockSpec) => boolean;
377
+ restoreBlocks: (doc: EngineDoc, specs: import("./index.js").BlockSpec[]) => void;
159
378
  project: (doc: EngineDoc) => import("./index.js").ProjectedDoc;
160
- positionOf: (doc: EngineDoc, id: BlockId) => Destination | null;
379
+ positionOf: (doc: EngineDoc, id: BlockId) => import("./index.js").Destination | null;
161
380
  listBlockIds: (doc: EngineDoc) => BlockId[];
162
381
  blockText: (doc: EngineDoc, id: BlockId) => string | null;
163
382
  crdtId: (doc: EngineDoc, id: BlockId) => string | null;
@@ -193,34 +412,17 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
193
412
  };
194
413
  runsView: RunView;
195
414
  version: number;
196
- /**
197
- * The typed handle over one document block — the domain command
198
- * surface (see `nodes.ts` for the contract: display offsets,
199
- * transaction-aware reads, dead-safe). Handles are cached per
200
- * id; a handle for an absent id reports `exists`/`live`/`visible`
201
- * false and refuses ops.
202
- */
203
- block: (id: BlockId) => DocBlock;
204
415
  insertFlow: (target: import("./flow.js").FlowTarget, flow: import("./flow.js").Flow, view?: import("./flow.js").FlowView | undefined) => OpResult;
205
416
  deleteRange: (from: DocPosition, to: DocPosition, view?: import("./rangeDelete.js").RangeView | undefined) => OpResult;
206
417
  replaceRange: (from: DocPosition, to: DocPosition, view?: import("./rangeDelete.js").RangeView | undefined) => OpResult;
207
- insertTableRow: (table: string, index: number) => OpResult;
208
- deleteTableRows: (rows: readonly string[]) => OpResult;
209
- insertTableColumn: (table: string, index: number, width?: number | undefined) => OpResult;
210
- deleteTableColumn: (table: string, column: string | number) => OpResult;
211
- moveTableColumn: (table: string, column: string | number, to: number) => OpResult;
212
- moveTableRows: (rows: readonly string[], to: number) => OpResult;
213
- fillTableCell: (row: string, column: string | number) => OpResult;
214
- insertBlocks: (dest: Destination, specs: readonly (JSONBlock | BlockSpec)[]) => OpResult;
215
- insertBlock: (dest: Destination, spec: JSONBlock | BlockSpec) => OpResult;
216
- moveBlocks: (ids: readonly string[], dest: Destination) => OpResult;
217
- moveBlock: (id: string, dest: Destination) => OpResult;
418
+ insertBlocks: (dest: import("./index.js").Destination, specs: readonly (import("./index.js").BlockSpec | JSONBlock)[]) => OpResult;
419
+ moveBlocks: (ids: readonly string[], dest: import("./index.js").Destination) => OpResult;
218
420
  nestBlock: (id: string, parent: string) => OpResult;
219
421
  unNestBlock: (id: string) => OpResult;
220
422
  unNestBlocks: (ids: readonly string[]) => OpResult;
221
423
  liftOut: (id: string, kind: string, args_2?: {
222
424
  keep?: boolean;
223
- after?: readonly BlockSpec[];
425
+ after?: readonly import("./index.js").BlockSpec[];
224
426
  } | undefined) => OpResult;
225
427
  placeBeside: (ids: readonly string[], target: string, side: "right" | "left", kind?: string | undefined) => OpResult;
226
428
  wrapInLayout: (ids: readonly string[], kind?: string | undefined, columns?: number | undefined) => OpResult;
@@ -234,25 +436,21 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
234
436
  setBlock: (id: string, value: {
235
437
  type?: string;
236
438
  data?: Record<string, unknown>;
237
- content?: ContentItem[];
238
- children?: BlockSpec[];
439
+ content?: (ContentItem | import("./index.js").JSONText | import("./index.js").JSONInlineBlock)[];
440
+ children?: (import("./index.js").BlockSpec | JSONBlock)[];
239
441
  }) => OpResult;
240
442
  setBlockType: (id: string, type: string) => OpResult;
241
443
  patchData: (target: DataTarget, patches: readonly DataPatch[]) => OpResult;
242
- setBlockData: (id: string, data: Record<string, unknown>) => OpResult;
243
- duplicateBlock: (id: string, freshId: (oldId: string, kind: "block" | "inline") => string) => OpResult;
444
+ duplicateBlock: (id: string, freshId?: ((oldId: string, kind: "block" | "inline") => string) | undefined) => OpResult;
244
445
  insertText: (id: string, offset: number, text: string, marks?: Record<string, unknown> | undefined) => OpResult;
245
446
  deleteText: (id: string, offset: number, length: number) => OpResult;
246
447
  formatRange: (id: string, offset: number, length: number, marks: Record<string, unknown>) => OpResult;
247
- setMark: (id: string, offset: number, length: number, name: string, value: unknown) => OpResult;
248
- unsetMark: (id: string, offset: number, length: number, name: string) => OpResult;
249
448
  clearMarks: (id: string, offset: number, length: number) => OpResult;
250
- insertInline: (id: string, offset: number, atom: InlineSpec) => OpResult;
449
+ insertInline: (id: string, offset: number, atom: import("./doc/content.js").NewInline) => OpResult;
251
450
  removeInline: (id: string, inlineId: string) => OpResult;
252
- setInlineData: (id: string, inlineId: string, data: Record<string, unknown>) => OpResult;
253
451
  deleteBlocks: (ids: readonly string[]) => OpResult;
254
452
  init: (opts?: Parameters<(doc: EngineDoc, opts?: {
255
- content?: BlockSpec[];
453
+ content?: import("./index.js").BlockSpec[];
256
454
  defaultType?: string;
257
455
  }) => void>[1]) => void;
258
456
  /** Apply the deterministic seed of `value` and the document's `data` — the document's seed decision. */
@@ -269,17 +467,413 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
269
467
  checkSchema: () => import("./edytor-doc.js").SchemaProblem | null;
270
468
  assertSchema: () => void;
271
469
  dispose: () => void;
272
- createUndoManager: (options?: ConstructorParameters<EngineApi["UndoManager"]>[1] & {
273
- limit?: number;
274
- }) => YUndoManager;
470
+ createUndoManager: (options?: import("./doc/history.js").HistoryOptions) => import("./doc/history.js").UndoManager;
471
+ project: () => import("./index.js").ProjectedDoc;
472
+ toJSON: () => JSONDoc;
473
+ blockJSON: (id: string) => JSONBlock;
474
+ childrenIds: (id: string | null) => string[];
475
+ /** Visible children of `parent` with their ranks, in `(rank, id)` order. */
476
+ childSlots: (parent: BlockId | null) => import("./placement/model.js").ChildSlot[];
477
+ slotOf: (id: string) => {
478
+ parent: BlockId | null;
479
+ rank: string;
480
+ } | null;
481
+ positionOf: (id: string) => import("./index.js").Destination | null;
482
+ pathOf: (id: string) => number[] | null;
483
+ parentOf: (id: string) => string | null;
484
+ ancestorsOf: (id: string) => string[];
485
+ listBlockIds: () => string[];
486
+ blockText: (id: string) => string | null;
487
+ blockTypeOf: (id: string) => string | undefined;
488
+ blockDataOf: (id: string) => Record<string, unknown> | undefined;
489
+ docData: () => JsonObj;
490
+ dataItemIds: (target: DataTarget, path: readonly string[]) => string[];
491
+ dataPreview: (target: DataTarget, pending: readonly DataPatch[]) => {
492
+ data: {
493
+ [x: string]: unknown;
494
+ };
495
+ ids: (path: readonly string[]) => string[];
496
+ } | null;
497
+ /**
498
+ * Compact per-block attribution (`{createdBy, contributors,
499
+ * lastChangedBy}`), or `undefined` for unauthored/system blocks.
500
+ * O(1) per call; live-replicated (remote values read the same).
501
+ */
502
+ blockAttribution: (id: string) => BlockAttribution | undefined;
503
+ crdtId: (id: string) => string | null;
504
+ resolveBlock: (id: string) => EngineNode | null;
505
+ displayLength: (id: string) => number;
506
+ contentItems: (id: string) => ContentItem[];
507
+ hasBlock: (id: string) => boolean;
508
+ isVisibleBlock: (id: string) => boolean;
509
+ order: () => readonly BlockId[];
510
+ compare: (a: BlockId, b: BlockId) => number;
511
+ next: (id: string, policy?: OrderPolicy | undefined) => string | null;
512
+ previous: (id: string, policy?: OrderPolicy | undefined) => string | null;
513
+ anchorAt: (id: string, offset: number, affinity?: AnchorAffinity | undefined) => DocAnchor | null;
514
+ resolveAnchor: (anchor: DocAnchor) => {
515
+ blockId: BlockId;
516
+ offset: number;
517
+ } | null;
518
+ followUndo: (anchor: DocAnchor) => DocAnchor;
519
+ /** Re-read the roles after `roleOf` answers differently (roles adopted later). */
520
+ rolesChanged: () => void;
521
+ isVoid: (id: string) => boolean;
522
+ isIsland: (id: string) => boolean;
523
+ isLines: (id: string) => boolean;
524
+ /** `id` is a layout: its kind's role says `layout` (`layout.*`). */
525
+ isLayout: (id: string) => boolean;
526
+ /** `id` is a layout item: of its layout's item kind, directly in it (a column). */
527
+ isLayoutItem: (id: string) => boolean;
528
+ /** The block a beside placement at `id` stands beside (`placeBeside`'s resolution). */
529
+ besideAt: (id: BlockId, kind?: string) => string;
530
+ islandOf: (id: string) => string | null;
531
+ /** `id` is a table: its kind's role says `table` (`table.*`). */
532
+ isTable: (id: string) => boolean;
533
+ /** `id` is a table's row: of its table's row kind, directly in it. */
534
+ isTableRow: (id: string) => boolean;
535
+ /** `id` is a table's cell: of its row's cell kind, directly in a row of a table. */
536
+ isTableCell: (id: string) => boolean;
537
+ /** The table `id` is, or whose row or cell it is; `null` for any other block. */
538
+ tableOf: (id: string) => string | null;
539
+ /** The columns a table lists (`data.columns`), or `null` when it lists none. */
540
+ tableColumns: (id: string) => {
541
+ id: string;
542
+ width?: number;
543
+ }[] | null;
275
544
  /**
276
- * Drop every step of a history `createUndoManager` made (undo and
277
- * redo) and release what they kept for their undo, as the history
278
- * limit does: the engine collects that content now, the doc's
279
- * `gcFilter` still deciding. The room's validation history runs
280
- * it after each frame.
545
+ * A table as a grid: its column ids and each shown row's cells by
546
+ * column, `null` where the row shows none (a padded cell, `table.pad`).
281
547
  */
282
- releaseHistory: (um: YUndoManager) => void;
548
+ tableGrid: (id: string) => {
549
+ columns: string[];
550
+ rows: {
551
+ id: BlockId;
552
+ cells: (BlockId | null)[];
553
+ }[];
554
+ } | null;
555
+ insideIsland: (id: string) => boolean;
556
+ canPlace: (ids: readonly BlockId[], parent?: BlockId | null) => boolean;
557
+ canMerge: (from: BlockId, into: BlockId) => boolean;
558
+ /** May a block of `kind` sit directly under `parent`? The container rule (`fits`). */
559
+ fits: (parent: BlockId | null, kind: string) => boolean;
560
+ /** Where `ids` nest when nested into `parent` (Tab, a drop inside it): `nestParent`. */
561
+ nestParent: (ids: readonly BlockId[], parent: BlockId) => string;
562
+ /** Where a block of `kind` at `id`'s place lands, and the containers it leaves (`liftOut`). */
563
+ landingOf: (id: BlockId, kind: string, after?: boolean) => {
564
+ parent: string | null;
565
+ levels: string[];
566
+ };
567
+ defaultChild: (id: string | null) => string;
568
+ runs: (id: string) => readonly ContentRun[];
569
+ contentJSON: (id: string) => ({
570
+ text: string;
571
+ marks?: Record<string, unknown>;
572
+ } | {
573
+ id?: string;
574
+ type: string;
575
+ data?: unknown;
576
+ })[];
577
+ onChange: (cb: (change: DocChange) => void) => (() => void);
578
+ };
579
+ /**
580
+ * A new engine document that is an edytor document from the start:
581
+ * a registry value a concurrent creation replaced keeps its subtree
582
+ * (each edytor document carries the rule; the engine's default stays
583
+ * upstream's). `create` gives it to a document it adopts, which must
584
+ * not have integrated anything yet.
585
+ */
586
+ newDoc: (opts?: ConstructorParameters<EngineApi["Doc"]>[0]) => YDoc;
587
+ /**
588
+ * Keep, on `doc`, the text a replica may have to copy again: its
589
+ * `gcFilter` then spares a deleted copy's content, as every facade's
590
+ * history does. A doc that only relays updates (the room) calls it
591
+ * before applying anything, so what it collects and encodes matches
592
+ * what an editing replica keeps.
593
+ */
594
+ keepCopies: (doc: EngineDoc) => void;
595
+ /** The bound engine layers (same instances the facades use). */
596
+ model: {
597
+ REGISTRY_KEY: string;
598
+ registryOf: (doc: EngineDoc) => EngineNode;
599
+ blockNodeOf: (doc: EngineDoc, id: BlockId) => EngineNode | null;
600
+ liveNodeOf: (doc: EngineDoc, id: BlockId) => EngineNode | null;
601
+ isLive: (doc: EngineDoc, id: BlockId) => boolean;
602
+ candidatesOf: (node: EngineNode) => import("./placement/model.js").PlacementCand[];
603
+ view: (doc: EngineDoc) => ModelView;
604
+ resolvePlacements: (blocks: Map<BlockId, import("./placement/model.js").BlockRec>, ownerOf?: (b: BlockId) => import("./text/model.js").Owner) => Map<BlockId, import("./placement/model.js").ResolvedPlacement>;
605
+ childrenIndex: (placements: Map<BlockId, import("./placement/model.js").ResolvedPlacement>, own: import("./placement/model.js").DisplayOwnership) => Map<BlockId | null, import("./placement/model.js").ChildSlot[]>;
606
+ positionInView: (v: ModelView, id: BlockId) => import("./index.js").Destination | null;
607
+ buildInline: (atom: InlineSpec) => EngineNode;
608
+ isSelfOrDescendant: (placements: Map<BlockId, import("./placement/model.js").ResolvedPlacement>, own: import("./text/model.js").Ownership, id: BlockId, maybeAncestor: BlockId) => boolean;
609
+ ranksAt: (siblings: readonly {
610
+ rank: string;
611
+ }[], index: number, count: number, clientId: number, rand?: () => number, run?: boolean) => string[];
612
+ writePlacement: (doc: EngineDoc, node: EngineNode, p: BlockId | null, r: string) => void;
613
+ withdrawOnUndo: (doc: EngineDoc) => (item: import("./engine-api.js").EngineItemRef, stackItem: {
614
+ inserts: {
615
+ has(client: number, clock: number): boolean;
616
+ };
617
+ }) => boolean;
618
+ materializeSpec: (doc: EngineDoc, sp: import("./index.js").BlockSpec, parent: BlockId | null, rank: string) => void;
619
+ collides: (doc: EngineDoc, specs: readonly import("./index.js").BlockSpec[]) => boolean;
620
+ writeSplit: (doc: EngineDoc, id: BlockId, offset: number, newId: BlockId, tail: SplitTail, place: import("./placement/model.js").PlacementValue) => void;
621
+ ownText: (doc: EngineDoc, id: BlockId) => {
622
+ from: unknown;
623
+ to: number;
624
+ };
625
+ insertBlocks: (doc: EngineDoc, dest: import("./index.js").Destination, specs: import("./index.js").BlockSpec[]) => boolean;
626
+ insertBlock: (doc: EngineDoc, dest: import("./index.js").Destination, spec: import("./index.js").BlockSpec) => boolean;
627
+ restoreBlocks: (doc: EngineDoc, specs: import("./index.js").BlockSpec[]) => void;
628
+ project: (doc: EngineDoc) => import("./index.js").ProjectedDoc;
629
+ positionOf: (doc: EngineDoc, id: BlockId) => import("./index.js").Destination | null;
630
+ listBlockIds: (doc: EngineDoc) => BlockId[];
631
+ blockText: (doc: EngineDoc, id: BlockId) => string | null;
632
+ crdtId: (doc: EngineDoc, id: BlockId) => string | null;
633
+ resolveBlock: (doc: EngineDoc, id: BlockId) => EngineNode | null;
634
+ };
635
+ text: {
636
+ newNode: (name: string) => EngineNode;
637
+ resolveAnchor: (doc: EngineDoc, text: EngineNode, anchor: Anchor) => number | null;
638
+ anchorAt: (text: EngineNode, index: number, assoc: number) => Anchor;
639
+ openRangeCursor: (text: EngineNode) => import("./text/model.js").RangeCursor;
640
+ itemsOfRange: (text: EngineNode, i0: number, i1: number) => import("./text/model.js").RangeItem[];
641
+ readSegs: (segs: readonly import("./text/model.js").Seg[], stats?: import("./text/model.js").RangeReadStats) => import("./text/model.js").RangeItem[];
642
+ computeOwnership: (doc: EngineDoc, given: ReadonlyMap<import("./text/model.js").BlockId, import("./text/model.js").TextBlockRec>) => import("./text/model.js").Ownership;
643
+ flatten: (b: import("./text/model.js").BlockId, blocks: unknown, own: import("./text/model.js").Ownership) => import("./text/model.js").Seg[];
644
+ ownedLength: (segs: readonly import("./text/model.js").Seg[]) => number;
645
+ contentItemsOf: (b: import("./text/model.js").BlockId, blocks: unknown, own: import("./text/model.js").Ownership) => import("./text/model.js").RangeItem[];
646
+ blockTextOf: (b: import("./text/model.js").BlockId, blocks: unknown, own: import("./text/model.js").Ownership) => string;
647
+ insertIntoText: (doc: EngineDoc, blocks: unknown, own: import("./text/model.js").Ownership, b: import("./text/model.js").BlockId, offset: number, payload: string | EngineNode, marks?: Record<string, unknown>) => void;
648
+ deleteRange: (doc: EngineDoc, blocks: unknown, own: import("./text/model.js").Ownership, b: import("./text/model.js").BlockId, offset: number, length: number) => void;
649
+ formatRangeIn: (doc: EngineDoc, blocks: unknown, own: import("./text/model.js").Ownership, b: import("./text/model.js").BlockId, offset: number, length: number, formats: Record<string, unknown>) => void;
650
+ purgeStreams: (streams: readonly import("./text/model.js").Stream[]) => void;
651
+ findAtom: (own: import("./text/model.js").Ownership, b: import("./text/model.js").BlockId, inlineId: string) => {
652
+ text: EngineNode;
653
+ at: number;
654
+ node: EngineNode;
655
+ } | null;
656
+ splitAt: (blocks: ReadonlyMap<import("./text/model.js").BlockId, import("./text/model.js").TextBlockRec>, own: import("./text/model.js").Ownership, b: import("./text/model.js").BlockId, offset: number, newId: import("./text/model.js").BlockId, n: number) => import("./text/model.js").MergeClaim[];
657
+ claimInto: (blocks: ReadonlyMap<import("./text/model.js").BlockId, import("./text/model.js").TextBlockRec>, own: Pick<import("./text/model.js").Ownership, "streamOf">, from: import("./text/model.js").BlockId, into: import("./text/model.js").BlockId) => void;
658
+ ownText: (doc: EngineDoc, rec: import("./text/model.js").TextBlockRec) => {
659
+ from: unknown;
660
+ to: number;
661
+ };
662
+ };
663
+ runs: {
664
+ attach: (doc: EngineDoc) => RunView;
665
+ };
666
+ };
667
+ /**
668
+ * {@link bindDocModel} with the room's tasks: only the public binding
669
+ * (`bindCrdt(Y).doc`) reaches them, so an editor's graph holds neither.
670
+ */
671
+ export declare const bindEdytorDoc: (Y: EngineApi) => {
672
+ /** The schema manifest constants table. */
673
+ SCHEMA: {
674
+ readonly version: 6;
675
+ readonly name: "edytor-doc";
676
+ readonly roots: {
677
+ readonly registry: "blocks";
678
+ readonly meta: "meta";
679
+ };
680
+ readonly metaAttrs: {
681
+ readonly version: "v";
682
+ readonly schema: "schema";
683
+ };
684
+ };
685
+ SCHEMA_VERSION: 6;
686
+ SCHEMA_NAME: "edytor-doc";
687
+ META_KEY: "meta";
688
+ /** Doc-level API (no facade needed). */
689
+ init: (doc: EngineDoc, opts?: {
690
+ content?: import("./index.js").BlockSpec[];
691
+ defaultType?: string;
692
+ }) => void;
693
+ restore: (doc: EngineDoc, content: import("./index.js").BlockSpec[]) => void;
694
+ seed: (doc: EngineDoc, value?: JSONBlock[], defaultType?: string, data?: JsonObj) => void;
695
+ isInitialized: (doc: EngineDoc) => boolean;
696
+ schemaVersion: (doc: EngineDoc) => number | undefined;
697
+ registryEmpty: (doc: EngineDoc) => boolean;
698
+ checkSchema: (doc: EngineDoc) => import("./edytor-doc.js").SchemaProblem | null;
699
+ assertSchema: (doc: EngineDoc, docName?: string) => void;
700
+ SchemaMismatchError: typeof SchemaMismatchError;
701
+ /** Attach the per-doc facade. */
702
+ create: (doc: EngineDoc, config?: EdytorDocConfig) => {
703
+ /** Every op prepared: pure, a plan of named steps + its effect, or `refused`. */
704
+ prepare: {
705
+ insertFlow: (target: import("./flow.js").FlowTarget, flow: import("./flow.js").Flow, view?: import("./flow.js").FlowView) => Prepared;
706
+ deleteRange: (from: DocPosition, to: DocPosition, view?: import("./rangeDelete.js").RangeView) => Prepared;
707
+ replaceRange: (from: DocPosition, to: DocPosition, view?: import("./rangeDelete.js").RangeView) => Prepared;
708
+ insertBlocks: (dest: import("./index.js").Destination, specs: readonly (import("./index.js").BlockSpec | JSONBlock)[]) => Prepared;
709
+ moveBlocks: (ids: readonly BlockId[], dest: import("./index.js").Destination) => Prepared;
710
+ /**
711
+ * Move `id` to the last position under `parent` — under a container
712
+ * it is no item of, under its last item (`nestParent`: Tab after a list).
713
+ */
714
+ nestBlock: (id: BlockId, parent: BlockId) => Prepared;
715
+ unNestBlock: (id: BlockId) => Prepared;
716
+ unNestBlocks: (ids: readonly BlockId[]) => Prepared;
717
+ liftOut: (id: BlockId, kind: string, { keep, after }?: {
718
+ keep?: boolean;
719
+ after?: readonly import("./index.js").BlockSpec[];
720
+ }) => Prepared;
721
+ placeBeside: (ids: readonly BlockId[], target: BlockId, side: "left" | "right", kind?: string) => Prepared;
722
+ wrapInLayout: (ids: readonly BlockId[], kind?: string, columns?: number) => Prepared;
723
+ splitBlock: (id: BlockId, offset: number, newId: BlockId, tail?: SplitTail) => Prepared;
724
+ mergeBlocks: (fromId: BlockId, intoId: BlockId) => Prepared;
725
+ mergeBackward: (id: BlockId) => Prepared;
726
+ mergeForward: (id: BlockId) => Prepared;
727
+ deleteBlock: (id: BlockId, opts?: {
728
+ keepChildren?: boolean;
729
+ }) => Prepared;
730
+ setBlock: (id: BlockId, value: {
731
+ type?: string;
732
+ data?: Record<string, unknown>;
733
+ content?: (ContentItem | import("./index.js").JSONText | import("./index.js").JSONInlineBlock)[];
734
+ children?: (import("./index.js").BlockSpec | JSONBlock)[];
735
+ }) => Prepared;
736
+ setBlockType: (id: BlockId, type: string) => Prepared;
737
+ patchData: (target: DataTarget, patches: readonly DataPatch[]) => Prepared;
738
+ duplicateBlock: (id: BlockId, freshId?: (oldId: string, kind: "block" | "inline") => string) => Prepared;
739
+ insertText: (id: BlockId, offset: number, text: string, marks?: Record<string, unknown>) => Prepared;
740
+ deleteText: (id: BlockId, offset: number, length: number) => Prepared;
741
+ formatRange: (id: BlockId, offset: number, length: number, marks: Record<string, unknown>) => Prepared;
742
+ clearMarks: (id: BlockId, offset: number, length: number) => Prepared;
743
+ insertInline: (id: BlockId, offset: number, atom: import("./doc/content.js").NewInline) => Prepared;
744
+ removeInline: (id: BlockId, inlineId: string) => Prepared;
745
+ /** Delete a block selection — one plan; only the members leave (`deleteBlocks` above). */
746
+ deleteBlocks: (ids: readonly BlockId[]) => Prepared;
747
+ };
748
+ /** Write a prepared plan exactly (refusals pass through). */
749
+ apply: (p: Prepared) => OpResult;
750
+ compose: (...parts: Prepared[]) => Prepared;
751
+ transact: <R>(fn: () => R, origin?: unknown) => R;
752
+ model: {
753
+ REGISTRY_KEY: string;
754
+ registryOf: (doc: EngineDoc) => EngineNode;
755
+ blockNodeOf: (doc: EngineDoc, id: BlockId) => EngineNode | null;
756
+ liveNodeOf: (doc: EngineDoc, id: BlockId) => EngineNode | null;
757
+ isLive: (doc: EngineDoc, id: BlockId) => boolean;
758
+ candidatesOf: (node: EngineNode) => import("./placement/model.js").PlacementCand[];
759
+ view: (doc: EngineDoc) => ModelView;
760
+ resolvePlacements: (blocks: Map<BlockId, import("./placement/model.js").BlockRec>, ownerOf?: (b: BlockId) => import("./text/model.js").Owner) => Map<BlockId, import("./placement/model.js").ResolvedPlacement>;
761
+ childrenIndex: (placements: Map<BlockId, import("./placement/model.js").ResolvedPlacement>, own: import("./placement/model.js").DisplayOwnership) => Map<BlockId | null, import("./placement/model.js").ChildSlot[]>;
762
+ positionInView: (v: ModelView, id: BlockId) => import("./index.js").Destination | null;
763
+ buildInline: (atom: InlineSpec) => EngineNode;
764
+ isSelfOrDescendant: (placements: Map<BlockId, import("./placement/model.js").ResolvedPlacement>, own: import("./text/model.js").Ownership, id: BlockId, maybeAncestor: BlockId) => boolean;
765
+ ranksAt: (siblings: readonly {
766
+ rank: string;
767
+ }[], index: number, count: number, clientId: number, rand?: () => number, run?: boolean) => string[];
768
+ writePlacement: (doc: EngineDoc, node: EngineNode, p: BlockId | null, r: string) => void;
769
+ withdrawOnUndo: (doc: EngineDoc) => (item: import("./engine-api.js").EngineItemRef, stackItem: {
770
+ inserts: {
771
+ has(client: number, clock: number): boolean;
772
+ };
773
+ }) => boolean;
774
+ materializeSpec: (doc: EngineDoc, sp: import("./index.js").BlockSpec, parent: BlockId | null, rank: string) => void;
775
+ collides: (doc: EngineDoc, specs: readonly import("./index.js").BlockSpec[]) => boolean;
776
+ writeSplit: (doc: EngineDoc, id: BlockId, offset: number, newId: BlockId, tail: SplitTail, place: import("./placement/model.js").PlacementValue) => void;
777
+ ownText: (doc: EngineDoc, id: BlockId) => {
778
+ from: unknown;
779
+ to: number;
780
+ };
781
+ insertBlocks: (doc: EngineDoc, dest: import("./index.js").Destination, specs: import("./index.js").BlockSpec[]) => boolean;
782
+ insertBlock: (doc: EngineDoc, dest: import("./index.js").Destination, spec: import("./index.js").BlockSpec) => boolean;
783
+ restoreBlocks: (doc: EngineDoc, specs: import("./index.js").BlockSpec[]) => void;
784
+ project: (doc: EngineDoc) => import("./index.js").ProjectedDoc;
785
+ positionOf: (doc: EngineDoc, id: BlockId) => import("./index.js").Destination | null;
786
+ listBlockIds: (doc: EngineDoc) => BlockId[];
787
+ blockText: (doc: EngineDoc, id: BlockId) => string | null;
788
+ crdtId: (doc: EngineDoc, id: BlockId) => string | null;
789
+ resolveBlock: (doc: EngineDoc, id: BlockId) => EngineNode | null;
790
+ };
791
+ text: {
792
+ newNode: (name: string) => EngineNode;
793
+ resolveAnchor: (doc: EngineDoc, text: EngineNode, anchor: Anchor) => number | null;
794
+ anchorAt: (text: EngineNode, index: number, assoc: number) => Anchor;
795
+ openRangeCursor: (text: EngineNode) => import("./text/model.js").RangeCursor;
796
+ itemsOfRange: (text: EngineNode, i0: number, i1: number) => import("./text/model.js").RangeItem[];
797
+ readSegs: (segs: readonly import("./text/model.js").Seg[], stats?: import("./text/model.js").RangeReadStats) => import("./text/model.js").RangeItem[];
798
+ computeOwnership: (doc: EngineDoc, given: ReadonlyMap<import("./text/model.js").BlockId, import("./text/model.js").TextBlockRec>) => import("./text/model.js").Ownership;
799
+ flatten: (b: import("./text/model.js").BlockId, blocks: unknown, own: import("./text/model.js").Ownership) => import("./text/model.js").Seg[];
800
+ ownedLength: (segs: readonly import("./text/model.js").Seg[]) => number;
801
+ contentItemsOf: (b: import("./text/model.js").BlockId, blocks: unknown, own: import("./text/model.js").Ownership) => import("./text/model.js").RangeItem[];
802
+ blockTextOf: (b: import("./text/model.js").BlockId, blocks: unknown, own: import("./text/model.js").Ownership) => string;
803
+ insertIntoText: (doc: EngineDoc, blocks: unknown, own: import("./text/model.js").Ownership, b: import("./text/model.js").BlockId, offset: number, payload: string | EngineNode, marks?: Record<string, unknown>) => void;
804
+ deleteRange: (doc: EngineDoc, blocks: unknown, own: import("./text/model.js").Ownership, b: import("./text/model.js").BlockId, offset: number, length: number) => void;
805
+ formatRangeIn: (doc: EngineDoc, blocks: unknown, own: import("./text/model.js").Ownership, b: import("./text/model.js").BlockId, offset: number, length: number, formats: Record<string, unknown>) => void;
806
+ purgeStreams: (streams: readonly import("./text/model.js").Stream[]) => void;
807
+ findAtom: (own: import("./text/model.js").Ownership, b: import("./text/model.js").BlockId, inlineId: string) => {
808
+ text: EngineNode;
809
+ at: number;
810
+ node: EngineNode;
811
+ } | null;
812
+ splitAt: (blocks: ReadonlyMap<import("./text/model.js").BlockId, import("./text/model.js").TextBlockRec>, own: import("./text/model.js").Ownership, b: import("./text/model.js").BlockId, offset: number, newId: import("./text/model.js").BlockId, n: number) => import("./text/model.js").MergeClaim[];
813
+ claimInto: (blocks: ReadonlyMap<import("./text/model.js").BlockId, import("./text/model.js").TextBlockRec>, own: Pick<import("./text/model.js").Ownership, "streamOf">, from: import("./text/model.js").BlockId, into: import("./text/model.js").BlockId) => void;
814
+ ownText: (doc: EngineDoc, rec: import("./text/model.js").TextBlockRec) => {
815
+ from: unknown;
816
+ to: number;
817
+ };
818
+ };
819
+ runsView: RunView;
820
+ version: number;
821
+ insertFlow: (target: import("./flow.js").FlowTarget, flow: import("./flow.js").Flow, view?: import("./flow.js").FlowView | undefined) => OpResult;
822
+ deleteRange: (from: DocPosition, to: DocPosition, view?: import("./rangeDelete.js").RangeView | undefined) => OpResult;
823
+ replaceRange: (from: DocPosition, to: DocPosition, view?: import("./rangeDelete.js").RangeView | undefined) => OpResult;
824
+ insertBlocks: (dest: import("./index.js").Destination, specs: readonly (import("./index.js").BlockSpec | JSONBlock)[]) => OpResult;
825
+ moveBlocks: (ids: readonly string[], dest: import("./index.js").Destination) => OpResult;
826
+ nestBlock: (id: string, parent: string) => OpResult;
827
+ unNestBlock: (id: string) => OpResult;
828
+ unNestBlocks: (ids: readonly string[]) => OpResult;
829
+ liftOut: (id: string, kind: string, args_2?: {
830
+ keep?: boolean;
831
+ after?: readonly import("./index.js").BlockSpec[];
832
+ } | undefined) => OpResult;
833
+ placeBeside: (ids: readonly string[], target: string, side: "right" | "left", kind?: string | undefined) => OpResult;
834
+ wrapInLayout: (ids: readonly string[], kind?: string | undefined, columns?: number | undefined) => OpResult;
835
+ splitBlock: (id: string, offset: number, newId: string, tail?: SplitTail | undefined) => OpResult;
836
+ mergeBlocks: (fromId: string, intoId: string) => OpResult;
837
+ mergeBackward: (id: string) => OpResult;
838
+ mergeForward: (id: string) => OpResult;
839
+ deleteBlock: (id: string, opts?: {
840
+ keepChildren?: boolean;
841
+ } | undefined) => OpResult;
842
+ setBlock: (id: string, value: {
843
+ type?: string;
844
+ data?: Record<string, unknown>;
845
+ content?: (ContentItem | import("./index.js").JSONText | import("./index.js").JSONInlineBlock)[];
846
+ children?: (import("./index.js").BlockSpec | JSONBlock)[];
847
+ }) => OpResult;
848
+ setBlockType: (id: string, type: string) => OpResult;
849
+ patchData: (target: DataTarget, patches: readonly DataPatch[]) => OpResult;
850
+ duplicateBlock: (id: string, freshId?: ((oldId: string, kind: "block" | "inline") => string) | undefined) => OpResult;
851
+ insertText: (id: string, offset: number, text: string, marks?: Record<string, unknown> | undefined) => OpResult;
852
+ deleteText: (id: string, offset: number, length: number) => OpResult;
853
+ formatRange: (id: string, offset: number, length: number, marks: Record<string, unknown>) => OpResult;
854
+ clearMarks: (id: string, offset: number, length: number) => OpResult;
855
+ insertInline: (id: string, offset: number, atom: import("./doc/content.js").NewInline) => OpResult;
856
+ removeInline: (id: string, inlineId: string) => OpResult;
857
+ deleteBlocks: (ids: readonly string[]) => OpResult;
858
+ init: (opts?: Parameters<(doc: EngineDoc, opts?: {
859
+ content?: import("./index.js").BlockSpec[];
860
+ defaultType?: string;
861
+ }) => void>[1]) => void;
862
+ /** Apply the deterministic seed of `value` and the document's `data` — the document's seed decision. */
863
+ seed: (value: JSONBlock[], data?: JsonObj) => void;
864
+ isInitialized: () => boolean;
865
+ /** Replicated `meta.v` schema version (the module-level read, bound). */
866
+ schemaVersion: () => number | undefined;
867
+ /**
868
+ * The schema gate for this doc — throws {@link SchemaMismatchError}
869
+ * on unversioned-content or unsupported-version state. Consumers
870
+ * (`Edytor.sync()`, packed consumers) call it before trusting
871
+ * a synced doc.
872
+ */
873
+ checkSchema: () => import("./edytor-doc.js").SchemaProblem | null;
874
+ assertSchema: () => void;
875
+ dispose: () => void;
876
+ createUndoManager: (options?: import("./doc/history.js").HistoryOptions) => import("./doc/history.js").UndoManager;
283
877
  project: () => import("./index.js").ProjectedDoc;
284
878
  toJSON: () => JSONDoc;
285
879
  blockJSON: (id: string) => JSONBlock;
@@ -290,7 +884,7 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
290
884
  parent: BlockId | null;
291
885
  rank: string;
292
886
  } | null;
293
- positionOf: (id: string) => Destination | null;
887
+ positionOf: (id: string) => import("./index.js").Destination | null;
294
888
  pathOf: (id: string) => number[] | null;
295
889
  parentOf: (id: string) => string | null;
296
890
  ancestorsOf: (id: string) => string[];
@@ -300,6 +894,12 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
300
894
  blockDataOf: (id: string) => Record<string, unknown> | undefined;
301
895
  docData: () => JsonObj;
302
896
  dataItemIds: (target: DataTarget, path: readonly string[]) => string[];
897
+ dataPreview: (target: DataTarget, pending: readonly DataPatch[]) => {
898
+ data: {
899
+ [x: string]: unknown;
900
+ };
901
+ ids: (path: readonly string[]) => string[];
902
+ } | null;
303
903
  /**
304
904
  * Compact per-block attribution (`{createdBy, contributors,
305
905
  * lastChangedBy}`), or `undefined` for unauthored/system blocks.
@@ -414,7 +1014,6 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
414
1014
  * registry holds and writing only what differs (`room.history.restore`), inside the caller's transaction.
415
1015
  */
416
1016
  restoreTo: <Plan>(doc: EngineDoc, facade: import("./restore.js").RestoreFacade<Plan>, json: JSONDoc) => import("./restore.js").RestoreReport;
417
- /** The bound engine layers (same instances the facades use). */
418
1017
  model: {
419
1018
  REGISTRY_KEY: string;
420
1019
  registryOf: (doc: EngineDoc) => EngineNode;
@@ -425,7 +1024,7 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
425
1024
  view: (doc: EngineDoc) => ModelView;
426
1025
  resolvePlacements: (blocks: Map<BlockId, import("./placement/model.js").BlockRec>, ownerOf?: (b: BlockId) => import("./text/model.js").Owner) => Map<BlockId, import("./placement/model.js").ResolvedPlacement>;
427
1026
  childrenIndex: (placements: Map<BlockId, import("./placement/model.js").ResolvedPlacement>, own: import("./placement/model.js").DisplayOwnership) => Map<BlockId | null, import("./placement/model.js").ChildSlot[]>;
428
- positionInView: (v: ModelView, id: BlockId) => Destination | null;
1027
+ positionInView: (v: ModelView, id: BlockId) => import("./index.js").Destination | null;
429
1028
  buildInline: (atom: InlineSpec) => EngineNode;
430
1029
  isSelfOrDescendant: (placements: Map<BlockId, import("./placement/model.js").ResolvedPlacement>, own: import("./text/model.js").Ownership, id: BlockId, maybeAncestor: BlockId) => boolean;
431
1030
  ranksAt: (siblings: readonly {
@@ -434,21 +1033,21 @@ export declare const bindEdytorDoc: (Y: EngineApi) => {
434
1033
  writePlacement: (doc: EngineDoc, node: EngineNode, p: BlockId | null, r: string) => void;
435
1034
  withdrawOnUndo: (doc: EngineDoc) => (item: import("./engine-api.js").EngineItemRef, stackItem: {
436
1035
  inserts: {
437
- hasId(id: unknown): boolean;
1036
+ has(client: number, clock: number): boolean;
438
1037
  };
439
1038
  }) => boolean;
440
- materializeSpec: (doc: EngineDoc, sp: BlockSpec, parent: BlockId | null, rank: string) => void;
441
- collides: (doc: EngineDoc, specs: readonly BlockSpec[]) => boolean;
1039
+ materializeSpec: (doc: EngineDoc, sp: import("./index.js").BlockSpec, parent: BlockId | null, rank: string) => void;
1040
+ collides: (doc: EngineDoc, specs: readonly import("./index.js").BlockSpec[]) => boolean;
442
1041
  writeSplit: (doc: EngineDoc, id: BlockId, offset: number, newId: BlockId, tail: SplitTail, place: import("./placement/model.js").PlacementValue) => void;
443
1042
  ownText: (doc: EngineDoc, id: BlockId) => {
444
1043
  from: unknown;
445
1044
  to: number;
446
1045
  };
447
- insertBlocks: (doc: EngineDoc, dest: Destination, specs: BlockSpec[]) => boolean;
448
- insertBlock: (doc: EngineDoc, dest: Destination, spec: BlockSpec) => boolean;
449
- restoreBlocks: (doc: EngineDoc, specs: BlockSpec[]) => void;
1046
+ insertBlocks: (doc: EngineDoc, dest: import("./index.js").Destination, specs: import("./index.js").BlockSpec[]) => boolean;
1047
+ insertBlock: (doc: EngineDoc, dest: import("./index.js").Destination, spec: import("./index.js").BlockSpec) => boolean;
1048
+ restoreBlocks: (doc: EngineDoc, specs: import("./index.js").BlockSpec[]) => void;
450
1049
  project: (doc: EngineDoc) => import("./index.js").ProjectedDoc;
451
- positionOf: (doc: EngineDoc, id: BlockId) => Destination | null;
1050
+ positionOf: (doc: EngineDoc, id: BlockId) => import("./index.js").Destination | null;
452
1051
  listBlockIds: (doc: EngineDoc) => BlockId[];
453
1052
  blockText: (doc: EngineDoc, id: BlockId) => string | null;
454
1053
  crdtId: (doc: EngineDoc, id: BlockId) => string | null;