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
@@ -4,27 +4,30 @@
4
4
  * This module binds the three proven engine layers over ONE Y.Doc into the
5
5
  * single public surface the command layer and providers consume:
6
6
  *
7
- * - `placement/model.ts` (`bindModel`) — stable block registry + placement
7
+ * - `placement/model.ts` — stable block registry + placement
8
8
  * candidates; identity-preserving move/nest/split/merge.
9
- * - `text/model.ts` (`bindText`) — stable backing texts delimited by stream
9
+ * - `text/model.ts` — stable backing texts delimited by stream
10
10
  * boundaries + merge claims; split/merge never copy text.
11
- * - `text/runs.ts` (`bindRuns`) — the maintained run view: immutable run
11
+ * - `text/runs.ts` (`indexOf`) — the maintained run view: immutable run
12
12
  * snapshots, structural sharing, the change report.
13
13
  *
14
- * This module is the wiring: `create` builds a facade's parts, each a
14
+ * This module is the wiring: `docFacade` builds a facade's parts, each a
15
15
  * module under `doc/` taking an explicit context — the parts before it —
16
- * and assembles the facade object.
16
+ * and assembles the facade object. An editor's documents use it directly;
17
+ * the public binding (`bindDocModel`, `bindEdytorDoc`) adds the engine
18
+ * layers as objects (`model`, `text`, `runs`) and the room's tasks, so an
19
+ * editor's graph holds none of what only they reach.
17
20
  *
18
21
  * - `doc/gate.ts` — the schema manifest and gate (module-level);
19
22
  * `doc/seed.ts` — the version record and the deterministic seed;
20
23
  * `doc/types.ts` — the public types; `doc/plan.ts` — op results, a plan's
21
24
  * effect, ingress normalization.
22
- * - `doc/reads.ts` (`DocBase`: the doc, its engine layers, its index and
25
+ * - `doc/reads.ts` (`DocBase`: the doc, its engine, its index and
23
26
  * roles) — the reads, roles and document order; `doc/capability.ts` —
24
27
  * structural capability (`canPlace`, `fits`, `canMerge`, the island and
25
28
  * void rules).
26
- * - `doc/funnel.ts` — the write funnel (`write`, `apply`, attribution and
27
- * lineage); `doc/events.ts` — `onChange`; `doc/history.ts` —
29
+ * - `doc/funnel.ts` — the write funnel (`write`, `apply`, attribution);
30
+ * `doc/events.ts` — `onChange`; `doc/history.ts` —
28
31
  * `createUndoManager`; `doc/anchors.ts` — caret anchors.
29
32
  * - `doc/steps.ts` — the step writers every op composes (ranks, settle,
30
33
  * emptying, dissolving); the prepared op families over them
@@ -45,20 +48,18 @@
45
48
  */
46
49
  import { setMarkEdges } from './text/marks.js';
47
50
  import { keepingReplaced } from './incarnations.js';
48
- import { TYPE, SCHEMA } from './schema.js';
49
- import { bindModel } from './placement/model.js';
51
+ import { SCHEMA } from './schema.js';
52
+ import { bindModel, blockText, crdtId, listBlockIds, project, resolveBlock } from './placement/model.js';
50
53
  import { bindText } from './text/model.js';
51
54
  import { bindDeletes } from './text/deletes.js';
52
55
  import { bindPurge, readHorizon } from './purge.js';
53
56
  import { restoreDocument } from './restore.js';
54
- import { bindRuns } from './text/runs.js';
55
- import { bindNodes } from './nodes.js';
57
+ import { bindRuns, indexOf } from './text/runs.js';
56
58
  import { bindBlockAttribution, blockAttributionOf } from './attribution/block.js';
57
59
  import { rangeDeleteOps } from './rangeDelete.js';
58
60
  import { flowOps } from './flow.js';
59
- import { sanitizeSpec } from '../utils/json.js';
60
61
  import { assertSchema, assertUsableDoc, checkSchema, isInitialized, META_KEY, registryEmpty, SCHEMA_NAME, SCHEMA_VERSION, SchemaMismatchError, schemaVersion } from './doc/gate.js';
61
- import { bindSeed } from './doc/seed.js';
62
+ import { bindSeed, restore } from './doc/seed.js';
62
63
  import { applied, ref } from './doc/plan.js';
63
64
  import { docReads } from './doc/reads.js';
64
65
  import { docCapability } from './doc/capability.js';
@@ -73,40 +74,25 @@ import { splitMergeOps } from './doc/split-merge.js';
73
74
  import { deleteOps } from './doc/delete.js';
74
75
  import { metaOps } from './doc/meta.js';
75
76
  import { contentOps } from './doc/content.js';
76
- import { tableOps } from './doc/table.js';
77
77
  // ── schema manifest and gate (`doc/gate.ts`) ────────────────────────────
78
78
  export { SCHEMA };
79
79
  export { assertSchema, assertUsableDoc, checkSchema, isInitialized, META_KEY, registryEmpty, SCHEMA_NAME, SCHEMA_VERSION, SchemaMismatchError, schemaVersion };
80
80
  export { UnsupportedDocError } from './doc/gate.js';
81
81
  export { SEED_ORIGIN } from './doc/seed.js';
82
- export { EdytorDocDisposedError, lineageDepthOf } from './doc/funnel.js';
82
+ export { EdytorDocDisposedError } from './doc/funnel.js';
83
83
  export { DEFAULT_HISTORY_LIMIT } from './doc/history.js';
84
84
  /**
85
- * Bind the assembled model to a concrete engine surface. `Y` must be the
86
- * vendored v14 module — injected so this file type-checks structurally and
87
- * never imports vendor `.js` (see `engine-api.ts`).
85
+ * The per-doc facade factory over the engine `Y` (the editor's documents
86
+ * use it directly; {@link bindDocModel} is the public binding around it).
88
87
  */
89
- export const bindEdytorDoc = (Y) => {
90
- // The doc's index (`text/runs.ts`) is the one owner of derived state:
91
- // commands, runs, anchors, the change report and rendering read it.
92
- const R = bindRuns(Y);
93
- const M = bindModel(Y);
94
- const T = bindText(Y);
88
+ export const docFacade = (Y, layers) => {
95
89
  const D = bindDeletes(Y);
96
- const P = bindPurge(Y);
97
- /** Each history's release of all its steps (`releaseHistory`). */
98
- const releasers = new WeakMap();
99
90
  // Compact per-block attribution writes (`attribution/block.ts`).
100
91
  // One bound instance per engine binding; its suppression memory is
101
92
  // per-doc (WeakMap-keyed), so facades on the same doc share it.
102
93
  const BA = bindBlockAttribution(Y);
103
- // ── version record / bootstrap (doc-level, facade-free) ────────────
104
- // `schemaVersion`, `registryEmpty`, `isInitialized`, `checkSchema` and
105
- // `assertSchema` are module-level (see above) — pure doc reads shared by
106
- // providers and migration without re-binding.
107
- const { restore, init, seed } = bindSeed(Y, M, BA);
108
- // ── per-doc facade ──────────────────────────────────────────────────
109
- const create = (doc, config = {}) => {
94
+ const { init, seed } = bindSeed(Y, BA);
95
+ return (doc, config = {}) => {
110
96
  keepingReplaced(doc);
111
97
  // Document-boundary check — foreign (v13-engine) and legacy-schema docs
112
98
  // fail fast here rather than inside the runs view (see assertUsableDoc).
@@ -116,7 +102,7 @@ export const bindEdytorDoc = (Y) => {
116
102
  const defaultType = config.defaultType ?? 'paragraph';
117
103
  const defaultChildOf = config.defaultChildOf ?? (() => undefined);
118
104
  const rendersContentOf = config.rendersContent ?? (() => true);
119
- const runsView = R.attach(doc);
105
+ const runsView = indexOf(doc);
120
106
  // The role table — the display and every guard below ask it.
121
107
  // a void kind displays no children — the index sheds them into its
122
108
  // slot at read time, so a child a peer nests or splits under a block
@@ -146,16 +132,11 @@ export const bindEdytorDoc = (Y) => {
146
132
  if (config.roleOf)
147
133
  runsView.roles(roles);
148
134
  // The facade's parts, each over the ones before it (`doc/*`).
149
- const base = { Y, doc, M, T, runsView, roles, roleOf, rendersContentOf };
135
+ const base = { Y, doc, runsView, roles, roleOf, rendersContentOf };
150
136
  const reads = { ...base, ...docReads(base) };
151
137
  const shape = { ...reads, ...docCapability(reads) };
152
- const { blockJSON, view, blockTypeOf, blockDataOf, docData, dataItemIds, childrenIds, positionOf, pathOf, ancestorsOf, slotOf, isVoid, isIsland, isLines, islandOf, insideIsland, isLayout, isLayoutItem, insideItem, order, compare, next, previous, displayLength, contentItems, hasBlock, live, contentTarget } = reads;
153
- const { canPlace, isContainer, fits, fitted, emptiable, nestParent, canMerge, rendersContent, defaultChild, kindToCopy } = shape;
154
- // Lineage ring watermark repair — concurrent partition appends can
155
- // merge a ring past every writer's `depth`; this converges the
156
- // stored ring back to the entries' own watermark after remote
157
- // applies. Once per doc, doc-lifetime, no-op when nothing is over.
158
- BA.attachRingTrim(doc);
138
+ const { blockJSON, view, blockTypeOf, blockDataOf, docData, dataItemIds, dataPreview, childrenIds, positionOf, pathOf, ancestorsOf, slotOf, isVoid, isIsland, isLines, islandOf, insideIsland, isLayout, isLayoutItem, order, compare, next, previous, displayLength, contentItems, hasBlock, live } = reads;
139
+ const { canPlace, fits, nestParent, canMerge, defaultChild } = shape;
159
140
  const funnel = writeFunnel({ ...reads, BA, config });
160
141
  const { write, apply } = funnel;
161
142
  const events = docEvents({ runsView });
@@ -164,10 +145,10 @@ export const bindEdytorDoc = (Y) => {
164
145
  funnel.dispose();
165
146
  events.close();
166
147
  };
167
- const { createUndoManager } = docHistory({ ...base, ...funnel, D, BA, releasers, init });
148
+ const { createUndoManager } = docHistory({ ...base, ...funnel, D, init });
168
149
  const { anchorAt, followUndo, resolveAnchor } = docAnchors(reads);
169
150
  const steps = { ...shape, ...planSteps(shape) };
170
- const { REFUSED, plan, ranksFor, move, pieceRanks, attr, settle, dissolving, remove } = steps;
151
+ const { plan } = steps;
171
152
  // The prepared op families (`OpsContext`: the reads, capability and step writers).
172
153
  const { insertBlocks, moveBlocks, unNestBlocks, unNestBlock, landingOf, liftOut, duplicateBlock } = moveOps(steps);
173
154
  const { besideAt, placeBeside, wrapInLayout } = layoutOps(steps);
@@ -175,65 +156,12 @@ export const bindEdytorDoc = (Y) => {
175
156
  const { deleteBlocks, deleteBlock } = deleteOps(steps);
176
157
  const { dataSteps, replaceData, setBlockType, patchData, setBlock } = metaOps(steps);
177
158
  const { insertText, deleteText, formatRange, clearMarks, insertInline, removeInline } = contentOps(steps);
178
- const tables = tableOps({ ...steps, dataSteps });
179
- /** What range deletion and flow placement read, and the step writers they compose. */
180
- const context = {
181
- ref,
182
- refused: REFUSED,
183
- plan,
184
- order: () => view().order,
185
- positionOf,
186
- ancestorsOf: (id) => ancestorsOf(id),
187
- childrenIds,
188
- displayLength,
189
- contentTarget,
190
- rendersContent,
191
- canMerge,
192
- isIsland,
193
- isLines,
194
- defaultChild,
195
- fitted,
196
- move,
197
- retype: (id, type) => attr(id, TYPE, type),
198
- isContainer,
199
- emptiable,
200
- settle,
201
- remove,
202
- insertBlocks,
203
- sanitize: sanitizeSpec,
204
- collides: (specs) => M.collides(doc, specs),
205
- isVoid,
206
- roleOf: (kind) => ({
207
- void: roles.childless(kind),
208
- island: roles.island(kind),
209
- rendersContent: roles.rendersContent(kind),
210
- layout: roles.layout(kind)
211
- }),
212
- insideItem: (id) => insideItem(id),
213
- tailOf: (id) => ({ type: kindToCopy(id), data: blockDataOf(id) }),
214
- ranksFor,
215
- insertRanks: (parent, index, count) => ranksFor(parent, index, count, [], true),
216
- pieceRanks,
217
- redata: (id, data) => dataSteps(id, replaceData(data)) ?? [],
218
- deleteBlocks: (ids, filled) => deleteBlocks(ids, false, filled),
219
- dissolving: (gone, leaving, writes) => dissolving(new Set(gone), leaving, writes),
220
- tableOf: (id) => reads.tableOf(id),
221
- isTableCell: (id) => reads.isTableCell(id),
222
- tableKind: (kind) => roles.table(kind) !== undefined
223
- ? 'table'
224
- : reads.isRowKind(kind)
225
- ? 'row'
226
- : reads.isCellKind(kind)
227
- ? 'cell'
228
- : undefined
229
- };
159
+ /** What range deletion and flow placement compose: the step writers and the ops. */
160
+ const ops = { ...steps, insertBlocks, deleteBlocks, dataSteps, replaceData };
230
161
  /** Every document op, prepared — `apply(prepare.op(…))` is the op. */
231
162
  const prepare = {
232
163
  insertBlocks,
233
- insertBlock: (dest, spec) => insertBlocks(dest, [spec]),
234
164
  moveBlocks,
235
- /** Relocate `id` — identity preserved. */
236
- moveBlock: (id, dest) => moveBlocks([id], dest),
237
165
  /**
238
166
  * Move `id` to the last position under `parent` — under a container
239
167
  * it is no item of, under its last item (`nestParent`: Tab after a list).
@@ -255,25 +183,17 @@ export const bindEdytorDoc = (Y) => {
255
183
  setBlock,
256
184
  setBlockType,
257
185
  patchData,
258
- /** Replace a block's `data`: a patch of its root. */
259
- setBlockData: (id, data) => patchData(id, [{ path: [], value: data }]),
260
186
  duplicateBlock,
261
187
  insertText,
262
188
  deleteText,
263
189
  formatRange,
264
- setMark: (id, offset, length, name, value) => formatRange(id, offset, length, { [name]: value }),
265
- unsetMark: (id, offset, length, name) => formatRange(id, offset, length, { [name]: null }),
266
190
  clearMarks,
267
191
  insertInline,
268
192
  removeInline,
269
- /** Replace an inline atom's `data`: a patch of its root. */
270
- setInlineData: (id, inlineId, data) => patchData({ block: id, atom: inlineId }, [{ path: [], value: data }]),
271
193
  /** Delete a block selection — one plan; only the members leave (`deleteBlocks` above). */
272
194
  deleteBlocks: (ids) => deleteBlocks(ids),
273
- // Tables (`table.*`): rows are blocks, columns the table's `data.columns`.
274
- ...tables,
275
- ...rangeDeleteOps(context),
276
- ...flowOps(context)
195
+ ...rangeDeleteOps(ops),
196
+ ...flowOps(ops)
277
197
  };
278
198
  /**
279
199
  * Plans prepared at one version, as one plan (refused if any part is;
@@ -306,14 +226,6 @@ export const bindEdytorDoc = (Y) => {
306
226
  // ── facade object ─────────────────────────────────────────────────
307
227
  /** A read taking an id first: the id normalizes at ingress. */
308
228
  const byRef = (f) => (id, ...rest) => f(ref(id), ...rest);
309
- /**
310
- * The typed-node surface (`document.block(id)` handles — see
311
- * `nodes.ts`). Created lazily on first use; `bindNodes` caches one
312
- * handle per block id, so repeated `facade.block(id)` calls return
313
- * the same instance.
314
- */
315
- let nodeApi;
316
- const nodes = () => (nodeApi ??= bindNodes(facade));
317
229
  const facade = {
318
230
  // lifecycle
319
231
  init: (opts) => write(() => init(doc, opts)),
@@ -332,16 +244,8 @@ export const bindEdytorDoc = (Y) => {
332
244
  assertSchema: () => assertSchema(doc),
333
245
  dispose,
334
246
  createUndoManager,
335
- /**
336
- * Drop every step of a history `createUndoManager` made (undo and
337
- * redo) and release what they kept for their undo, as the history
338
- * limit does: the engine collects that content now, the doc's
339
- * `gcFilter` still deciding. The room's validation history runs
340
- * it after each frame.
341
- */
342
- releaseHistory: (um) => releasers.get(um)?.(),
343
247
  // reads — every id argument normalizes at ingress
344
- project: () => M.project(doc),
248
+ project: () => project(doc),
345
249
  toJSON,
346
250
  blockJSON: byRef(blockJSON),
347
251
  childrenIds: byRef(childrenIds),
@@ -352,20 +256,21 @@ export const bindEdytorDoc = (Y) => {
352
256
  pathOf: byRef(pathOf),
353
257
  parentOf: byRef((id) => positionOf(id)?.parent ?? null),
354
258
  ancestorsOf: byRef((id) => ancestorsOf(id)),
355
- listBlockIds: () => M.listBlockIds(doc),
356
- blockText: byRef((id) => M.blockText(doc, id)),
259
+ listBlockIds: () => listBlockIds(doc),
260
+ blockText: byRef((id) => blockText(doc, id)),
357
261
  blockTypeOf: byRef(blockTypeOf),
358
262
  blockDataOf: byRef(blockDataOf),
359
263
  docData,
360
264
  dataItemIds,
265
+ dataPreview,
361
266
  /**
362
267
  * Compact per-block attribution (`{createdBy, contributors,
363
268
  * lastChangedBy}`), or `undefined` for unauthored/system blocks.
364
269
  * O(1) per call; live-replicated (remote values read the same).
365
270
  */
366
271
  blockAttribution: byRef((id) => blockAttributionOf(doc, id)),
367
- crdtId: byRef((id) => M.crdtId(doc, id)),
368
- resolveBlock: byRef((id) => M.resolveBlock(doc, id)),
272
+ crdtId: byRef((id) => crdtId(doc, id)),
273
+ resolveBlock: byRef((id) => resolveBlock(doc, id)),
369
274
  displayLength: byRef(displayLength),
370
275
  contentItems: byRef(contentItems),
371
276
  hasBlock: byRef(hasBlock),
@@ -433,10 +338,10 @@ export const bindEdytorDoc = (Y) => {
433
338
  // that batch several ops into one undo step / one event)
434
339
  transact: (fn, origin) => write(() => doc.transact(fn, origin)),
435
340
  // escape hatch for the history and debugging — the bound engine layers.
436
- model: M,
437
- text: T,
341
+ model: layers.model,
342
+ text: layers.text,
438
343
  runsView,
439
- // ── model-state version + typed node surface ──────────
344
+ // ── model-state version ─────────────────────────────
440
345
  /**
441
346
  * The index version — bumps on every fold that changed derived
442
347
  * state, mid-transaction writes included. Read surfaces that
@@ -445,18 +350,24 @@ export const bindEdytorDoc = (Y) => {
445
350
  */
446
351
  get version() {
447
352
  return runsView.version();
448
- },
449
- /**
450
- * The typed handle over one document block — the domain command
451
- * surface (see `nodes.ts` for the contract: display offsets,
452
- * transaction-aware reads, dead-safe). Handles are cached per
453
- * id; a handle for an absent id reports `exists`/`live`/`visible`
454
- * false and refuses ops.
455
- */
456
- block: (id) => nodes().block(ref(id))
353
+ }
457
354
  };
458
355
  return facade;
459
356
  };
357
+ };
358
+ /**
359
+ * Bind the assembled model to a concrete engine surface. `Y` must be the
360
+ * vendored v14 module — injected so this file type-checks structurally and
361
+ * never imports vendor `.js` (see `engine-api.ts`). A document composes
362
+ * this binding; {@link bindEdytorDoc} adds the room's purge and restore.
363
+ */
364
+ export const bindDocModel = (Y) => {
365
+ const M = bindModel(Y);
366
+ const T = bindText(Y);
367
+ const R = bindRuns(Y);
368
+ const D = bindDeletes(Y);
369
+ const { init, seed } = bindSeed(Y, bindBlockAttribution(Y));
370
+ const create = docFacade(Y, { model: M, text: T });
460
371
  return {
461
372
  /** The schema manifest constants table. */
462
373
  SCHEMA,
@@ -491,12 +402,26 @@ export const bindEdytorDoc = (Y) => {
491
402
  * what an editing replica keeps.
492
403
  */
493
404
  keepCopies: (doc) => void D.scope(doc),
405
+ /** The bound engine layers (same instances the facades use). */
406
+ model: M,
407
+ text: T,
408
+ runs: R
409
+ };
410
+ };
411
+ /**
412
+ * {@link bindDocModel} with the room's tasks: only the public binding
413
+ * (`bindCrdt(Y).doc`) reaches them, so an editor's graph holds neither.
414
+ */
415
+ export const bindEdytorDoc = (Y) => {
416
+ const { model, text, runs, ...binding } = bindDocModel(Y);
417
+ // The spread last: the declared type lists the binding first, as before.
418
+ return {
494
419
  /**
495
420
  * Purge from `doc` what was deleted before `horizon` (`room.purge.what`): real deletes, inside the caller's transaction,
496
421
  * and the horizon record every history reads (`hist.purge.horizon`).
497
422
  * The room's purge task runs it; `facade` is a facade over `doc`.
498
423
  */
499
- purge: P.purge,
424
+ purge: bindPurge(Y).purge,
500
425
  /** The purge horizon `doc` holds, or `null`. */
501
426
  horizonOf: (doc) => readHorizon(doc),
502
427
  /**
@@ -504,9 +429,9 @@ export const bindEdytorDoc = (Y) => {
504
429
  * registry holds and writing only what differs (`room.history.restore`), inside the caller's transaction.
505
430
  */
506
431
  restoreTo: restoreDocument,
507
- /** The bound engine layers (same instances the facades use). */
508
- model: M,
509
- text: T,
510
- runs: R
432
+ model,
433
+ text,
434
+ runs,
435
+ ...binding
511
436
  };
512
437
  };
@@ -2,15 +2,11 @@
2
2
  * Engine-facing types for the placement model.
3
3
  *
4
4
  * The vendored v14 engine is plain JSDoc-typed JS that is deliberately
5
- * excluded from `tsconfig.json` type-checking. Its emitted declarations
6
- * (`vendor/yjs/dts`) parameterize `YNode` on a delta-config generic that
7
- * collapses to `never` when instantiated with `any` — unusable as an
8
- * ergonomic call surface.
9
- *
10
- * So the model works against the STRUCTURAL interfaces below — the exact
11
- * subset of the v14 Node/Doc surface it uses — and receives the engine
12
- * module by injection (`bindModel(Y)`). Only `engine.js` (declared by
13
- * `engine.d.ts`) imports vendor `.js`, so `pnpm check` never traverses
5
+ * excluded from `tsconfig.json` type-checking. The model works against the
6
+ * STRUCTURAL interfaces below — the exact
7
+ * subset of the v14 Node/Doc surface it uses — and reads the engine
8
+ * through `engine.js` (its `Y`, declared by `engine.d.ts`), the only
9
+ * module that imports vendor `.js`, so `pnpm check` never traverses
14
10
  * vendored sources.
15
11
  */
16
12
  import type * as Y from './vendor/yjs/dts/index.js';
@@ -24,7 +20,8 @@ import type { Y as Engine } from './engine.js';
24
20
  export type EngineApi = typeof Engine;
25
21
  export type YDoc = InstanceType<typeof Y.Doc>;
26
22
  export type YNode = InstanceType<typeof Y.Node>;
27
- export type YUndoManager = InstanceType<typeof Y.UndoManager>;
23
+ /** The document's undo manager (`doc/history.ts`). */
24
+ export type YUndoManager = import('./doc/history.js').UndoManager;
28
25
  export type YTransaction = Y.Transaction;
29
26
  export type YItem = Y.Item;
30
27
  /** Engine item identity — used by `crdtId` (`client:clock`). */
@@ -53,23 +50,6 @@ export type EngineItemRef = {
53
50
  export interface EngineTransaction {
54
51
  changed?: Map<unknown, Set<string | null>>;
55
52
  }
56
- /**
57
- * The deep-observer event surface (v14 `YEvent`, observed through
58
- * `observeDeep` on an ancestor — in our schema, the registry root). The
59
- * document index folds the event's `transaction.changed` at commit.
60
- */
61
- export interface EngineDeepEvent {
62
- readonly target: unknown;
63
- readonly currentTarget: unknown;
64
- readonly keysChanged?: ReadonlySet<string>;
65
- readonly delta?: {
66
- toJSON(): unknown;
67
- };
68
- readonly deltaDeep?: {
69
- toJSON(): unknown;
70
- };
71
- readonly transaction?: unknown;
72
- }
73
53
  /**
74
54
  * Structural minimum of the vendored `Y.Node` (v14) used by the placement
75
55
  * model. A real `YNode` satisfies this at runtime; typed consumers cast once
@@ -89,27 +69,8 @@ export interface EngineNode {
89
69
  deleteAttr(key: string): void;
90
70
  forEachAttr(f: (value: unknown, key: string, node: EngineNode) => void): void;
91
71
  attrKeys(): IterableIterator<string>;
92
- insert(index: number, content: unknown, format?: Record<string, unknown>): void;
72
+ insert(index: number, content: unknown): void;
93
73
  delete(index: number, length?: number): void;
94
- format(index: number, length: number, formats: Record<string, unknown>): void;
95
- get(index: number): unknown;
96
- slice(start?: number, end?: number): unknown[];
97
- toArray(): unknown[];
98
- /** Maintained delta cache — `toJSON()` yields the serialized op list. */
99
- readonly delta: {
100
- toJSON(): {
101
- children?: unknown[];
102
- };
103
- };
104
- toDelta(opts?: {
105
- deep?: boolean;
106
- }): {
107
- toJSON(): unknown;
108
- };
109
- /** Deep event channel — anchors/observers follow the node across moves. */
110
- observeDeep(f: (event: EngineDeepEvent, transaction: unknown) => void): unknown;
111
- unobserveDeep(f: (event: EngineDeepEvent, transaction: unknown) => void): void;
112
- on(name: 'delta', f: (delta: unknown, origin: unknown) => void): void;
113
74
  }
114
75
  /** Structural minimum of the vendored `Y.Doc`. */
115
76
  export interface EngineDoc {
@@ -130,6 +91,13 @@ export interface EngineDoc {
130
91
  */
131
92
  on(name: 'update', f: (update: Uint8Array, origin: unknown, doc: EngineDoc, transaction: unknown) => void): void;
132
93
  off(name: 'update', f: (update: Uint8Array, origin: unknown, doc: EngineDoc, transaction: unknown) => void): void;
94
+ /**
95
+ * Doc-level `commit` channel — fires once per
96
+ * transaction, before `afterTransaction`, with the transaction: the
97
+ * index folds it there.
98
+ */
99
+ on(name: 'commit', f: (transaction: never) => void): void;
100
+ off(name: 'commit', f: (transaction: never) => void): void;
133
101
  /** Doc destruction event — doc-scoped state must release on destroy. */
134
102
  on(name: 'destroy', f: () => void): void;
135
103
  off(name: 'destroy', f: () => void): void;
@@ -4,7 +4,6 @@ import type * as V from './vendor/yjs/dts/index.js';
4
4
  export type EngineSymbol =
5
5
  | 'Doc'
6
6
  | 'Node'
7
- | 'UndoManager'
8
7
  | 'Item'
9
8
  | 'RangeCursor'
10
9
  | 'transact'
@@ -13,33 +12,24 @@ export type EngineSymbol =
13
12
  | 'encodeStateVector'
14
13
  | 'decodeStateVector'
15
14
  | 'decodeUpdate'
16
- | 'decodeUpdateV2'
17
- | 'UpdateEncoderV1'
15
+ | 'UpdateEncoder'
18
16
  | 'writeIdSet'
19
17
  | 'mergeUpdates'
20
- | 'applyUpdateV2'
21
- | 'encodeStateAsUpdateV2'
22
- | 'mergeUpdatesV2'
23
- | 'convertUpdateFormatV2ToV1'
24
- | 'UpdateDecoderV1'
25
- | 'UpdateEncoderV2'
26
18
  | 'Skip'
27
19
  | 'findIndexSS'
28
20
  | 'isKeptReplaced'
29
- | 'createRelativePositionFromTypeIndex'
30
- | 'createRelativePositionFromJSON'
31
- | 'createAbsolutePositionFromRelativePosition'
32
- | 'relativePositionToJSON'
21
+ | 'idAtIndex'
22
+ | 'indexOfId'
33
23
  | 'createIdSet'
34
24
  | 'diffIdSet'
35
25
  | 'insertIntoIdSet'
36
- | 'createIdMap'
37
- | 'insertIntoIdMap'
38
- | 'createContentMap'
39
- | 'decodeContentMap'
40
26
  | 'iterateStructsByIdSet'
41
27
  | 'getItemCleanStart'
42
28
  | 'redoItem'
29
+ | 'keepItem'
30
+ | 'followRedone'
31
+ | 'isParentOf'
32
+ | 'mergeIdSets'
43
33
  | 'ContentAny'
44
34
  | 'createID';
45
35
 
@@ -15,7 +15,6 @@ import * as V from './vendor/yjs/src/index.js';
15
15
  export const Y = {
16
16
  Doc: V.Doc,
17
17
  Node: V.Node,
18
- UndoManager: V.UndoManager,
19
18
  Item: V.Item,
20
19
  RangeCursor: V.RangeCursor,
21
20
  transact: V.transact,
@@ -24,38 +23,29 @@ export const Y = {
24
23
  encodeStateVector: V.encodeStateVector,
25
24
  decodeStateVector: V.decodeStateVector,
26
25
  decodeUpdate: V.decodeUpdate,
27
- // the engine's pending store is V2-encoded (admission of pending structs)
28
- decodeUpdateV2: V.decodeUpdateV2,
29
26
  // the store-before-ack body carries the acknowledged deletes (`sync.writeSaved`)
30
- UpdateEncoderV1: V.UpdateEncoderV1,
27
+ UpdateEncoder: V.UpdateEncoder,
31
28
  writeIdSet: V.writeIdSet,
32
29
  mergeUpdates: V.mergeUpdates,
33
- // storage in the v2 (columnar) encoding: room rows and the IndexedDB store
34
- applyUpdateV2: V.applyUpdateV2,
35
- encodeStateAsUpdateV2: V.encodeStateAsUpdateV2,
36
- mergeUpdatesV2: V.mergeUpdatesV2,
37
- convertUpdateFormatV2ToV1: V.convertUpdateFormatV2ToV1,
38
- UpdateDecoderV1: V.UpdateDecoderV1,
39
- UpdateEncoderV2: V.UpdateEncoderV2,
40
30
  Skip: V.Skip,
41
31
  findIndexSS: V.findIndexSS,
42
32
  // a concurrent creation of one block id keeps the losing node (fork patch YP14)
43
33
  isKeptReplaced: V.isKeptReplaced,
44
- createRelativePositionFromTypeIndex: V.createRelativePositionFromTypeIndex,
45
- createRelativePositionFromJSON: V.createRelativePositionFromJSON,
46
- createAbsolutePositionFromRelativePosition: V.createAbsolutePositionFromRelativePosition,
47
- relativePositionToJSON: V.relativePositionToJSON,
34
+ // a position as an item id and back (fork patch YP19)
35
+ idAtIndex: V.idAtIndex,
36
+ indexOfId: V.indexOfId,
48
37
  createIdSet: V.createIdSet,
49
38
  diffIdSet: V.diffIdSet,
50
39
  insertIntoIdSet: V.insertIntoIdSet,
51
- createIdMap: V.createIdMap,
52
- insertIntoIdMap: V.insertIntoIdMap,
53
- createContentMap: V.createContentMap,
54
- decodeContentMap: V.decodeContentMap,
55
40
  // text delete marks (`text/deletes.ts`, fork patch YP11)
56
41
  iterateStructsByIdSet: V.iterateStructsByIdSet,
57
42
  getItemCleanStart: V.getItemCleanStart,
58
43
  redoItem: V.redoItem,
44
+ // the document's undo manager (`doc/history.ts`, fork patch YP18)
45
+ keepItem: V.keepItem,
46
+ followRedone: V.followRedone,
47
+ isParentOf: V.isParentOf,
48
+ mergeIdSets: V.mergeIdSets,
59
49
  // a folded delete record appended after the one it replaces
60
50
  ContentAny: V.ContentAny,
61
51
  createID: V.createID
@@ -35,9 +35,13 @@
35
35
  * other kind keeps its kind and data (a pasted image stays an image, a
36
36
  * bulleted item in an `ordered-list` a bulleted item).
37
37
  */
38
- import type { BlockId, BlockSpec, Destination, SplitTail } from './placement/model.js';
39
- import type { PlanStep, Prepared } from './edytor-doc.js';
40
- import type { DocPosition, RangeDeleteContext, RangeView } from './rangeDelete.js';
38
+ import type { BlockId, BlockSpec, Destination } from './placement/model.js';
39
+ import type { Prepared } from './edytor-doc.js';
40
+ import type { DocPosition, RangeView } from './rangeDelete.js';
41
+ import type { OpsContext } from './doc/steps.js';
42
+ import type { MoveOps } from './doc/moves.js';
43
+ import type { DeleteOps } from './doc/delete.js';
44
+ import type { MetaOps } from './doc/meta.js';
41
45
  /** One line of a flow: a kinded block, or an inline run when it has no `type`. */
42
46
  export type FlowLine = Omit<BlockSpec, 'type'> & {
43
47
  type?: string;
@@ -68,40 +72,8 @@ export type FlowTarget = DocPosition | {
68
72
  } | {
69
73
  slot: Destination;
70
74
  };
71
- /** What flow placement reads beyond range deletion's context. */
72
- export type FlowContext = RangeDeleteContext & {
73
- defaultChild: (parent: BlockId | null) => string;
74
- /** `kind`, or `parent`'s item where it does not fit there (the container rule). */
75
- fitted: (parent: BlockId | null, kind: string | undefined) => string | undefined;
76
- retype: (id: BlockId, type: string) => PlanStep[];
77
- sanitize: (spec: BlockSpec) => BlockSpec;
78
- collides: (specs: readonly BlockSpec[]) => boolean;
79
- isVoid: (id: BlockId) => boolean;
80
- /**
81
- * A kind's display role: void, an island, whether it renders its own
82
- * content, and a layout's item kind (`layout.*`).
83
- */
84
- roleOf: (kind: string) => {
85
- void: boolean;
86
- island: boolean;
87
- rendersContent: boolean;
88
- layout?: string;
89
- };
90
- /** `id` is a layout item or sits inside one (no layout lands there). */
91
- insideItem: (id: BlockId) => boolean;
92
- /** What a kind is to the table rules: a table, a row or a cell kind (`table.*`). */
93
- tableKind: (kind: string) => 'table' | 'row' | 'cell' | undefined;
94
- tailOf: (id: BlockId) => SplitTail;
95
- ranksFor: (parent: BlockId | null, index: number, count: number) => string[];
96
- /** `ranksFor` for new blocks: after a block this client ranked, in its run there. */
97
- insertRanks: (parent: BlockId | null, index: number, count: number) => string[];
98
- /** Ranks for the `count` blocks a split of `id` at `at` puts after it, by that offset. */
99
- pieceRanks: (id: BlockId, at: number, count: number) => string[];
100
- redata: (id: BlockId, data: Record<string, unknown>) => PlanStep[];
101
- /** `deleteBlocks`; `filled`: a parent the plan fills again, never emptied (`flow.slot`). */
102
- deleteBlocks: (ids: readonly BlockId[], filled?: BlockId | null) => Prepared;
103
- insertBlocks: (dest: Destination, specs: readonly BlockSpec[]) => Prepared;
104
- };
75
+ /** What flow placement composes: the step writers and the ops it places and deletes with. */
76
+ export type FlowContext = OpsContext & Pick<MoveOps, 'insertBlocks'> & Pick<DeleteOps, 'deleteBlocks'> & Pick<MetaOps, 'dataSteps' | 'replaceData'>;
105
77
  /**
106
78
  * Where the caret ends a placed block: its own content's end when it shows a
107
79
  * line (renders its content, no void; a toggle's header, never its body),