edytor 1.0.0-rc.2 → 1.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 (653) hide show
  1. package/README.md +65 -25
  2. package/dist/block/block.svelte.d.ts +10 -85
  3. package/dist/block/block.svelte.js +47 -141
  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 +8 -10
  9. package/dist/block/inlineBlock.svelte.js +14 -22
  10. package/dist/clipboard/createClipboardFragment.js +22 -64
  11. package/dist/clipboard/fragmentData.js +17 -42
  12. package/dist/clipboard/htmlFlow.d.ts +6 -1
  13. package/dist/clipboard/htmlFlow.js +26 -13
  14. package/dist/clipboard/insertClipboardFragment.js +5 -4
  15. package/dist/clipboard/moveText.js +16 -8
  16. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  17. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  18. package/dist/cloudflare/DocumentRoom.d.ts +22 -17
  19. package/dist/cloudflare/DocumentRoom.js +10 -5
  20. package/dist/cloudflare/index.d.ts +1 -1
  21. package/dist/cloudflare/index.js +1 -1
  22. package/dist/cloudflare/move.d.ts +1 -18
  23. package/dist/cloudflare/move.js +2 -48
  24. package/dist/cloudflare/room/admission.d.ts +1 -60
  25. package/dist/cloudflare/room/admission.js +25 -29
  26. package/dist/cloudflare/room/comments.d.ts +1 -3
  27. package/dist/cloudflare/room/comments.js +6 -6
  28. package/dist/cloudflare/room/context.d.ts +20 -82
  29. package/dist/cloudflare/room/context.js +8 -8
  30. package/dist/cloudflare/room/forged.d.ts +1 -1
  31. package/dist/cloudflare/room/forged.js +2 -12
  32. package/dist/cloudflare/room/frames.d.ts +1 -1
  33. package/dist/cloudflare/room/frames.js +1 -1
  34. package/dist/cloudflare/room/history.d.ts +1 -25
  35. package/dist/cloudflare/room/history.js +39 -54
  36. package/dist/cloudflare/room/moves.d.ts +1 -13
  37. package/dist/cloudflare/room/moves.js +33 -57
  38. package/dist/cloudflare/room/presence.d.ts +1 -11
  39. package/dist/cloudflare/room/presence.js +4 -4
  40. package/dist/cloudflare/room/purge.d.ts +1 -2
  41. package/dist/cloudflare/room/purge.js +2 -2
  42. package/dist/cloudflare/room/replicas.d.ts +1 -7
  43. package/dist/cloudflare/room/replicas.js +2 -2
  44. package/dist/cloudflare/room/storage.d.ts +9 -30
  45. package/dist/cloudflare/room/storage.js +52 -104
  46. package/dist/cloudflare/room/updates.d.ts +4 -4
  47. package/dist/cloudflare/room/updates.js +17 -24
  48. package/dist/cloudflare/room/validation.d.ts +1 -5
  49. package/dist/cloudflare/room/validation.js +16 -37
  50. package/dist/collaboration/RemoteSelections.svelte +13 -17
  51. package/dist/collaboration/comments/client.d.ts +2 -2
  52. package/dist/collaboration/comments/client.js +1 -1
  53. package/dist/collaboration/history/index.d.ts +5 -5
  54. package/dist/collaboration/history/index.js +5 -5
  55. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  56. package/dist/collaboration/history/panel.svelte.js +223 -0
  57. package/dist/collaboration/providers.d.ts +12 -3
  58. package/dist/collaboration/providers.js +5 -4
  59. package/dist/components/Block.svelte +160 -119
  60. package/dist/components/Block.svelte.d.ts +8 -3
  61. package/dist/components/Content.svelte +91 -44
  62. package/dist/components/CustomMark.svelte +46 -0
  63. package/dist/components/CustomMark.svelte.d.ts +11 -0
  64. package/dist/components/Edytor.svelte +80 -95
  65. package/dist/components/Edytor.svelte.d.ts +8 -12
  66. package/dist/components/InlineBlock.svelte +4 -9
  67. package/dist/components/Mark.svelte +46 -35
  68. package/dist/components/Mark.svelte.d.ts +7 -0
  69. package/dist/components/Ranges.svelte +96 -0
  70. package/dist/components/Ranges.svelte.d.ts +19 -0
  71. package/dist/components/Suggestion.svelte +3 -2
  72. package/dist/components/Text.svelte +48 -14
  73. package/dist/components/Text.svelte.d.ts +1 -1
  74. package/dist/crdt/admission.d.ts +2 -9
  75. package/dist/crdt/admission.js +3 -9
  76. package/dist/crdt/attribution/attribution.d.ts +11 -72
  77. package/dist/crdt/attribution/attribution.js +5 -52
  78. package/dist/crdt/attribution/block.d.ts +0 -78
  79. package/dist/crdt/attribution/block.js +1 -144
  80. package/dist/crdt/data.d.ts +8 -13
  81. package/dist/crdt/data.js +30 -70
  82. package/dist/crdt/doc/anchors.js +4 -4
  83. package/dist/crdt/doc/content.d.ts +5 -1
  84. package/dist/crdt/doc/content.js +3 -1
  85. package/dist/crdt/doc/delete.d.ts +1 -0
  86. package/dist/crdt/doc/funnel.d.ts +0 -23
  87. package/dist/crdt/doc/funnel.js +34 -85
  88. package/dist/crdt/doc/gate.d.ts +8 -9
  89. package/dist/crdt/doc/gate.js +7 -17
  90. package/dist/crdt/doc/history.d.ts +87 -14
  91. package/dist/crdt/doc/history.js +334 -149
  92. package/dist/crdt/doc/layout.d.ts +0 -1
  93. package/dist/crdt/doc/layout.js +2 -3
  94. package/dist/crdt/doc/meta.d.ts +4 -4
  95. package/dist/crdt/doc/meta.js +10 -21
  96. package/dist/crdt/doc/moves.d.ts +4 -4
  97. package/dist/crdt/doc/moves.js +5 -5
  98. package/dist/crdt/doc/plan.d.ts +2 -0
  99. package/dist/crdt/doc/plan.js +2 -0
  100. package/dist/crdt/doc/reads.d.ts +1 -5
  101. package/dist/crdt/doc/reads.js +38 -49
  102. package/dist/crdt/doc/seed.d.ts +15 -6
  103. package/dist/crdt/doc/seed.js +27 -26
  104. package/dist/crdt/doc/split-merge.d.ts +1 -3
  105. package/dist/crdt/doc/split-merge.js +4 -5
  106. package/dist/crdt/doc/steps.d.ts +3 -7
  107. package/dist/crdt/doc/steps.js +20 -9
  108. package/dist/crdt/doc/types.d.ts +0 -10
  109. package/dist/crdt/document.d.ts +24 -115
  110. package/dist/crdt/document.js +207 -305
  111. package/dist/crdt/edytor-doc.d.ts +671 -90
  112. package/dist/crdt/edytor-doc.js +73 -149
  113. package/dist/crdt/engine-api.d.ts +15 -47
  114. package/dist/crdt/engine.d.ts +7 -17
  115. package/dist/crdt/engine.js +9 -19
  116. package/dist/crdt/flow.d.ts +9 -37
  117. package/dist/crdt/flow.js +260 -238
  118. package/dist/crdt/index.d.ts +26 -85
  119. package/dist/crdt/index.js +21 -47
  120. package/dist/crdt/operations.d.ts +24 -33
  121. package/dist/crdt/operations.js +7 -17
  122. package/dist/crdt/placement/display.d.ts +0 -2
  123. package/dist/crdt/placement/display.js +0 -15
  124. package/dist/crdt/placement/model.d.ts +160 -12
  125. package/dist/crdt/placement/model.js +413 -414
  126. package/dist/crdt/placement/rank.d.ts +1 -5
  127. package/dist/crdt/placement/rank.js +28 -38
  128. package/dist/crdt/protocol.d.ts +4 -5
  129. package/dist/crdt/protocol.js +3 -4
  130. package/dist/crdt/protocols/awareness.d.ts +3 -7
  131. package/dist/crdt/protocols/awareness.js +17 -33
  132. package/dist/crdt/protocols/envelope.d.ts +9 -29
  133. package/dist/crdt/protocols/envelope.js +8 -25
  134. package/dist/crdt/protocols/sync.d.ts +15 -30
  135. package/dist/crdt/protocols/sync.js +27 -89
  136. package/dist/crdt/providers/bound.d.ts +3 -1
  137. package/dist/crdt/providers/bound.js +3 -1
  138. package/dist/crdt/providers/container.d.ts +11 -17
  139. package/dist/crdt/providers/container.js +39 -27
  140. package/dist/crdt/providers/index.d.ts +34 -6
  141. package/dist/crdt/providers/index.js +106 -111
  142. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  143. package/dist/crdt/providers/indexeddb.js +29 -90
  144. package/dist/crdt/providers/room.d.ts +58 -2
  145. package/dist/crdt/providers/room.js +38 -21
  146. package/dist/crdt/providers/websocket.d.ts +1 -1
  147. package/dist/crdt/providers/websocket.js +3 -4
  148. package/dist/crdt/purge.d.ts +2 -2
  149. package/dist/crdt/purge.js +69 -6
  150. package/dist/crdt/rangeDelete.d.ts +4 -42
  151. package/dist/crdt/rangeDelete.js +7 -6
  152. package/dist/crdt/restore.d.ts +21 -1
  153. package/dist/crdt/restore.js +54 -59
  154. package/dist/crdt/schema.d.ts +2 -2
  155. package/dist/crdt/schema.js +4 -5
  156. package/dist/crdt/semantics.d.ts +10 -15
  157. package/dist/crdt/semantics.js +22 -21
  158. package/dist/crdt/storage.d.ts +7 -13
  159. package/dist/crdt/storage.js +10 -24
  160. package/dist/crdt/structs.d.ts +42 -47
  161. package/dist/crdt/structs.js +76 -67
  162. package/dist/crdt/tables.d.ts +9 -0
  163. package/dist/crdt/tables.js +20 -0
  164. package/dist/crdt/text/delete-index.d.ts +0 -13
  165. package/dist/crdt/text/delete-index.js +7 -14
  166. package/dist/crdt/text/deletes.d.ts +9 -22
  167. package/dist/crdt/text/deletes.js +11 -74
  168. package/dist/crdt/text/index/cache.js +3 -3
  169. package/dist/crdt/text/index/fold.d.ts +1 -2
  170. package/dist/crdt/text/index/fold.js +15 -10
  171. package/dist/crdt/text/index/layout.d.ts +0 -10
  172. package/dist/crdt/text/index/layout.js +6 -20
  173. package/dist/crdt/text/index/records.js +2 -1
  174. package/dist/crdt/text/index/report.js +5 -6
  175. package/dist/crdt/text/index/shared.d.ts +11 -4
  176. package/dist/crdt/text/index/shared.js +8 -7
  177. package/dist/crdt/text/index/state.d.ts +3 -33
  178. package/dist/crdt/text/index/state.js +2 -4
  179. package/dist/crdt/text/model.d.ts +82 -2
  180. package/dist/crdt/text/model.js +344 -354
  181. package/dist/crdt/text/rows.d.ts +0 -2
  182. package/dist/crdt/text/rows.js +0 -11
  183. package/dist/crdt/text/runs.d.ts +6 -3
  184. package/dist/crdt/text/runs.js +132 -137
  185. package/dist/crdt/text/streams.d.ts +1 -1
  186. package/dist/crdt/text/streams.js +1 -1
  187. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  188. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  189. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  190. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  191. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  192. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  193. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  194. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  195. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  196. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  197. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  198. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  199. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  200. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  201. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  202. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  203. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  204. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  205. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  206. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  207. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  208. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  209. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  210. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  211. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  212. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  213. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  214. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  215. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  216. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  217. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  218. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  219. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  220. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  221. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  222. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  223. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  224. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  225. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  226. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  227. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  228. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  229. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  230. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  231. package/dist/{plugins/blockHandles → dnd}/autoScroll.d.ts +2 -1
  232. package/dist/{plugins/blockHandles → dnd}/autoScroll.js +3 -3
  233. package/dist/dnd/pragmatic.d.ts +4 -22
  234. package/dist/dnd/pragmatic.js +7 -26
  235. package/dist/dnd/track.d.ts +14 -0
  236. package/dist/dnd/track.js +55 -0
  237. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  238. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  239. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  240. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  241. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  242. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  243. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  254. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  263. 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
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  265. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  293. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  294. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  295. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  296. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  297. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  298. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  299. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  300. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  301. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  302. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  303. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  304. package/dist/edytor.svelte.d.ts +34 -64
  305. package/dist/edytor.svelte.js +118 -180
  306. package/dist/events/beforeInputCommands.d.ts +6 -11
  307. package/dist/events/beforeInputCommands.js +189 -184
  308. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  309. package/dist/events/beforeInputDeleteCommands.js +153 -204
  310. package/dist/events/domTextOffset.d.ts +9 -9
  311. package/dist/events/domTextOffset.js +20 -48
  312. package/dist/events/events.utils.d.ts +0 -2
  313. package/dist/events/events.utils.js +0 -4
  314. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  315. package/dist/events/nativeInteractiveControl.js +28 -56
  316. package/dist/events/onBeforeInput.d.ts +6 -1
  317. package/dist/events/onBeforeInput.js +207 -331
  318. package/dist/events/onCopy.js +1 -5
  319. package/dist/events/onDrop.d.ts +7 -1
  320. package/dist/events/onDrop.js +33 -72
  321. package/dist/events/onFocus.d.ts +9 -4
  322. package/dist/events/onFocus.js +92 -72
  323. package/dist/events/onInput.d.ts +8 -4
  324. package/dist/events/onInput.js +34 -147
  325. package/dist/events/onKeyDown.js +55 -122
  326. package/dist/events/onPaste.d.ts +13 -1
  327. package/dist/events/onPaste.js +46 -76
  328. package/dist/index.d.ts +10 -13
  329. package/dist/index.js +3 -3
  330. package/dist/kinds.d.ts +4 -6
  331. package/dist/kinds.js +28 -27
  332. package/dist/labels.d.ts +91 -314
  333. package/dist/labels.js +180 -396
  334. package/dist/plugins/Chrome.svelte +29 -0
  335. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  336. package/dist/plugins/Control.svelte +23 -0
  337. package/dist/plugins/Control.svelte.d.ts +30 -0
  338. package/dist/plugins/anchored.svelte.d.ts +47 -0
  339. package/dist/plugins/anchored.svelte.js +73 -0
  340. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  341. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  342. package/dist/plugins/bands.svelte.d.ts +57 -0
  343. package/dist/plugins/bands.svelte.js +95 -0
  344. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -151
  345. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  346. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +63 -97
  347. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +247 -268
  348. package/dist/plugins/blockHandles/BlockHandles.svelte +46 -29
  349. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  350. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +29 -23
  351. package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -162
  352. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  353. package/dist/plugins/blockHandles/dragPreview.js +20 -17
  354. package/dist/plugins/blockHandles/dropIndicator.js +52 -60
  355. package/dist/plugins/blockHandles/geometry.d.ts +46 -1
  356. package/dist/plugins/blockHandles/geometry.js +51 -4
  357. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +59 -28
  358. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +180 -105
  359. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  360. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  361. package/dist/plugins/brand.d.ts +8 -0
  362. package/dist/plugins/brand.js +8 -0
  363. package/dist/plugins/chrome.d.ts +79 -0
  364. package/dist/plugins/chrome.js +87 -0
  365. package/dist/plugins/code/CodeHeader.svelte +12 -58
  366. package/dist/plugins/code/CodeHeader.svelte.d.ts +1 -0
  367. package/dist/plugins/code/CodePlugin.svelte +75 -56
  368. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  369. package/dist/plugins/code/LanguageMenu.svelte +25 -0
  370. package/dist/plugins/code/LanguageMenu.svelte.d.ts +9 -0
  371. package/dist/plugins/code/code.css +5 -100
  372. package/dist/plugins/code/header.svelte.d.ts +47 -0
  373. package/dist/plugins/code/header.svelte.js +141 -0
  374. package/dist/plugins/code/languageMenu.svelte.d.ts +84 -0
  375. package/dist/plugins/code/languageMenu.svelte.js +199 -0
  376. package/dist/plugins/code/languages.d.ts +21 -10
  377. package/dist/plugins/code/languages.js +39 -126
  378. package/dist/plugins/columns/ColumnResize.svelte +13 -25
  379. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  380. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  381. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  382. package/dist/plugins/columns/columns.css +7 -26
  383. package/dist/plugins/columns/resize.svelte.d.ts +14 -51
  384. package/dist/plugins/columns/resize.svelte.js +70 -164
  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 -430
  388. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +6 -7
  389. package/dist/plugins/comments/commentsPlugin.d.ts +31 -10
  390. package/dist/plugins/comments/commentsPlugin.js +12 -10
  391. package/dist/plugins/equation/EquationEditor.svelte +18 -129
  392. package/dist/plugins/equation/EquationEditor.svelte.d.ts +2 -1
  393. package/dist/plugins/equation/EquationPlugin.svelte +123 -168
  394. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +5 -3
  395. package/dist/plugins/equation/EquationView.svelte +20 -11
  396. package/dist/plugins/equation/equation.svelte.d.ts +74 -36
  397. package/dist/plugins/equation/equation.svelte.js +74 -66
  398. package/dist/plugins/equation/importUrl.d.ts +6 -0
  399. package/dist/plugins/equation/importUrl.js +6 -0
  400. package/dist/plugins/equation/katex.d.ts +8 -0
  401. package/dist/plugins/equation/katex.js +77 -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 +5 -151
  407. package/dist/plugins/image/ImagePlugin.svelte +49 -117
  408. package/dist/plugins/image/ImagePlugin.svelte.d.ts +1 -24
  409. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  410. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  411. package/dist/plugins/image/controls.svelte.d.ts +6 -57
  412. package/dist/plugins/image/controls.svelte.js +51 -174
  413. package/dist/plugins/image/image.d.ts +0 -5
  414. package/dist/plugins/image/image.js +0 -3
  415. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  416. package/dist/plugins/image/toolbar.svelte.js +145 -0
  417. package/dist/plugins/index.d.ts +39 -24
  418. package/dist/plugins/index.js +30 -22
  419. package/dist/plugins/list.svelte.d.ts +128 -0
  420. package/dist/plugins/list.svelte.js +217 -0
  421. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  422. package/dist/plugins/markdownShortcuts.js +6 -5
  423. package/dist/plugins/marquee/MarqueeBox.svelte +15 -0
  424. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +9 -0
  425. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +46 -0
  426. package/dist/plugins/marquee/MarqueeController.svelte.js +243 -0
  427. package/dist/plugins/marquee/marquee.d.ts +33 -0
  428. package/dist/plugins/marquee/marquee.js +89 -0
  429. package/dist/plugins/marquee/marqueePlugin.d.ts +32 -0
  430. package/dist/plugins/marquee/marqueePlugin.js +68 -0
  431. package/dist/plugins/media/AudioPlugin.svelte +3 -88
  432. package/dist/plugins/media/AudioPlugin.svelte.d.ts +1 -4
  433. package/dist/plugins/media/BookmarkPlugin.svelte +124 -112
  434. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +20 -7
  435. package/dist/plugins/media/EmbedPlugin.svelte +93 -77
  436. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +21 -9
  437. package/dist/plugins/media/EmptySlot.svelte +44 -0
  438. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  439. package/dist/plugins/media/FilePlugin.svelte +35 -111
  440. package/dist/plugins/media/FilePlugin.svelte.d.ts +12 -4
  441. package/dist/plugins/media/MediaEmpty.svelte +55 -112
  442. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  443. package/dist/plugins/media/SourceBlock.svelte +164 -0
  444. package/dist/plugins/media/SourceBlock.svelte.d.ts +33 -0
  445. package/dist/plugins/media/VideoPlugin.svelte +4 -97
  446. package/dist/plugins/media/VideoPlugin.svelte.d.ts +2 -5
  447. package/dist/plugins/media/empty.svelte.d.ts +69 -0
  448. package/dist/plugins/media/empty.svelte.js +111 -0
  449. package/dist/plugins/media/media.d.ts +93 -30
  450. package/dist/plugins/media/media.js +79 -86
  451. package/dist/plugins/media/urlPaste.svelte.d.ts +9 -32
  452. package/dist/plugins/media/urlPaste.svelte.js +46 -75
  453. package/dist/plugins/mention/MentionPlugin.svelte +47 -124
  454. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +11 -23
  455. package/dist/plugins/page/PageLink.svelte +54 -38
  456. package/dist/plugins/page/PagePlugin.svelte +20 -18
  457. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  458. package/dist/plugins/page/page.d.ts +35 -9
  459. package/dist/plugins/page/page.js +3 -4
  460. package/dist/plugins/pageLink/PageLinkPlugin.svelte +52 -108
  461. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +11 -23
  462. package/dist/plugins/planned.d.ts +10 -0
  463. package/dist/plugins/planned.js +12 -0
  464. package/dist/plugins/richtext/CalloutIcon.svelte +25 -0
  465. package/dist/plugins/richtext/CalloutIcon.svelte.d.ts +9 -0
  466. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  467. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  468. package/dist/plugins/richtext/EmptyBody.svelte +25 -0
  469. package/dist/plugins/richtext/EmptyBody.svelte.d.ts +8 -0
  470. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  471. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  472. package/dist/plugins/richtext/RichTextPlugin.svelte +272 -148
  473. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +37 -18
  474. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  475. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  476. package/dist/plugins/richtext/body.d.ts +9 -0
  477. package/dist/plugins/richtext/body.js +16 -0
  478. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +97 -0
  479. package/dist/plugins/richtext/calloutIcons.svelte.js +214 -0
  480. package/dist/plugins/richtext/callouts.d.ts +15 -0
  481. package/dist/plugins/richtext/callouts.js +23 -0
  482. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  483. package/dist/plugins/richtext/controls.svelte.js +126 -0
  484. package/dist/plugins/richtext/richTextOperations.js +37 -28
  485. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +18 -11
  486. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +93 -35
  487. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +11 -24
  488. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  489. package/dist/plugins/suggestions/SuggestionBars.svelte +32 -84
  490. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  491. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -16
  492. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  493. package/dist/plugins/table/TableChrome.svelte +96 -127
  494. package/dist/plugins/table/TableChrome.svelte.d.ts +5 -1
  495. package/dist/plugins/table/TablePlugin.svelte +116 -171
  496. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  497. package/dist/plugins/table/chrome.svelte.d.ts +110 -117
  498. package/dist/plugins/table/chrome.svelte.js +643 -289
  499. package/dist/plugins/table/ops.d.ts +47 -0
  500. package/dist/plugins/table/ops.js +233 -0
  501. package/dist/plugins/table/table.css +55 -134
  502. package/dist/plugins/table/table.d.ts +26 -7
  503. package/dist/plugins/table/table.js +23 -49
  504. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  505. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  506. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  507. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  508. package/dist/plugins/toc/toc.d.ts +41 -10
  509. package/dist/plugins/toc/toc.js +2 -3
  510. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +29 -66
  511. package/dist/plugins/toolbar/ToolbarController.svelte.js +151 -76
  512. package/dist/plugins/toolbar/toolbarPlugin.d.ts +14 -13
  513. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  514. package/dist/plugins/triggers/TriggerController.svelte.d.ts +6 -45
  515. package/dist/plugins/triggers/TriggerController.svelte.js +51 -96
  516. package/dist/plugins/triggers/place.d.ts +0 -9
  517. package/dist/plugins/triggers/place.js +1 -17
  518. package/dist/plugins/triggers/triggers.d.ts +31 -9
  519. package/dist/plugins/triggers/triggers.js +82 -62
  520. package/dist/plugins/uploads.svelte.d.ts +38 -20
  521. package/dist/plugins/uploads.svelte.js +39 -32
  522. package/dist/plugins.d.ts +167 -60
  523. package/dist/selection/domSelection.d.ts +13 -4
  524. package/dist/selection/domSelection.js +110 -183
  525. package/dist/selection/pointer.svelte.d.ts +12 -10
  526. package/dist/selection/pointer.svelte.js +154 -71
  527. package/dist/selection/replaceSelection.d.ts +21 -22
  528. package/dist/selection/replaceSelection.js +60 -69
  529. package/dist/selection/selection.svelte.d.ts +5 -73
  530. package/dist/selection/selection.svelte.js +263 -542
  531. package/dist/selection/selection.utils.d.ts +34 -11
  532. package/dist/selection/selection.utils.js +128 -247
  533. package/dist/selection/visibility.d.ts +11 -8
  534. package/dist/selection/visibility.js +23 -8
  535. package/dist/session/announcer.svelte.d.ts +2 -1
  536. package/dist/session/announcer.svelte.js +7 -3
  537. package/dist/session/attempt.d.ts +33 -39
  538. package/dist/session/attempt.js +61 -53
  539. package/dist/session/bindings.js +108 -139
  540. package/dist/session/commands.d.ts +47 -22
  541. package/dist/session/commands.js +206 -208
  542. package/dist/session/composition.svelte.d.ts +2 -4
  543. package/dist/session/composition.svelte.js +55 -65
  544. package/dist/session/editing/text.d.ts +6 -0
  545. package/dist/session/editing/text.js +17 -3
  546. package/dist/session/handles.d.ts +10 -1
  547. package/dist/session/handles.js +28 -0
  548. package/dist/session/history.d.ts +0 -4
  549. package/dist/session/history.js +15 -21
  550. package/dist/session/inputRules.js +75 -84
  551. package/dist/session/keymap.d.ts +1 -6
  552. package/dist/session/keymap.js +17 -20
  553. package/dist/session/moves.d.ts +10 -10
  554. package/dist/session/moves.js +31 -59
  555. package/dist/session/navigation.d.ts +18 -3
  556. package/dist/session/navigation.js +194 -153
  557. package/dist/session/ports.d.ts +7 -0
  558. package/dist/session/selection.d.ts +4 -3
  559. package/dist/session/selection.js +8 -0
  560. package/dist/session/suggestions.svelte.d.ts +1 -1
  561. package/dist/session/suggestions.svelte.js +64 -47
  562. package/dist/session/virtual.d.ts +3 -3
  563. package/dist/session/virtual.js +18 -40
  564. package/dist/surface/attributes.d.ts +1 -0
  565. package/dist/surface/attributes.js +3 -26
  566. package/dist/surface/cells.d.ts +5 -0
  567. package/dist/surface/cells.js +5 -0
  568. package/dist/surface/lines.d.ts +32 -0
  569. package/dist/surface/lines.js +43 -0
  570. package/dist/surface/observer.svelte.d.ts +3 -20
  571. package/dist/surface/observer.svelte.js +73 -77
  572. package/dist/surface/overlay.d.ts +48 -6
  573. package/dist/surface/overlay.js +133 -23
  574. package/dist/surface/pin.svelte.d.ts +5 -0
  575. package/dist/surface/pin.svelte.js +5 -0
  576. package/dist/surface/projector.svelte.d.ts +4 -6
  577. package/dist/surface/projector.svelte.js +42 -69
  578. package/dist/text/text.svelte.d.ts +14 -40
  579. package/dist/text/text.svelte.js +35 -51
  580. package/dist/text/wordBoundary.d.ts +19 -0
  581. package/dist/text/wordBoundary.js +29 -44
  582. package/dist/themes/notion.css +315 -126
  583. package/dist/utils/json.d.ts +3 -1
  584. package/dist/utils/json.js +52 -51
  585. package/dist/utils/listen.d.ts +8 -0
  586. package/dist/utils/listen.js +19 -0
  587. package/package.json +4 -5
  588. package/dist/block/block.utils.d.ts +0 -340
  589. package/dist/block/block.utils.js +0 -356
  590. package/dist/collaboration/history/HistoryPanel.svelte +0 -525
  591. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  592. package/dist/collaboration/history/panel.d.ts +0 -43
  593. package/dist/collaboration/history/panel.js +0 -3
  594. package/dist/components/SuggestionRanges.svelte +0 -58
  595. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  596. package/dist/crdt/doc/table.d.ts +0 -21
  597. package/dist/crdt/doc/table.js +0 -288
  598. package/dist/crdt/migration/generation.d.ts +0 -58
  599. package/dist/crdt/migration/generation.js +0 -70
  600. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  601. package/dist/crdt/migration/legacy-schema.js +0 -151
  602. package/dist/crdt/migration/migrate.d.ts +0 -56
  603. package/dist/crdt/migration/migrate.js +0 -227
  604. package/dist/crdt/nodes.d.ts +0 -121
  605. package/dist/crdt/nodes.js +0 -56
  606. package/dist/crdt/text/index/checks.d.ts +0 -15
  607. package/dist/crdt/text/index/checks.js +0 -156
  608. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  609. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  610. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  611. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  612. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  613. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  614. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  615. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  616. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  617. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  618. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  619. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  620. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  621. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  622. package/dist/edytor.utils.d.ts +0 -50
  623. package/dist/edytor.utils.js +0 -67
  624. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -447
  625. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  626. package/dist/plugins/find/FindBar.svelte +0 -170
  627. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  628. package/dist/plugins/find/FindHighlights.svelte +0 -75
  629. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  630. package/dist/plugins/icons.d.ts +0 -2
  631. package/dist/plugins/icons.js +0 -63
  632. package/dist/plugins/image/ImageEmpty.svelte +0 -116
  633. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -12
  634. package/dist/plugins/keepInView.d.ts +0 -4
  635. package/dist/plugins/keepInView.js +0 -6
  636. package/dist/plugins/media/UrlPasteMenu.svelte +0 -83
  637. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -7
  638. package/dist/plugins/richtext/labels.d.ts +0 -5
  639. package/dist/plugins/richtext/labels.js +0 -3
  640. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -360
  641. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  642. package/dist/plugins/toolbar/LinkCard.svelte +0 -118
  643. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -7
  644. package/dist/plugins/toolbar/Toolbar.svelte +0 -400
  645. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  646. package/dist/plugins/triggers/TriggerMenu.svelte +0 -144
  647. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  648. package/dist/session/props.d.ts +0 -28
  649. package/dist/session/props.js +0 -162
  650. package/dist/text/deltas.d.ts +0 -22
  651. package/dist/text/deltas.js +0 -46
  652. package/dist/text/text.utils.d.ts +0 -45
  653. package/dist/text/text.utils.js +0 -199
@@ -21,15 +21,11 @@
21
21
  * Read rule: the leaves are read as a tree; a path with live items is an
22
22
  * array (sorted by rank, then id), one with keys an object (it beats a
23
23
  * primitive leaf at the same path: Ada sets `a = 1` while Bob sets
24
- * `a.b = 2`), else its leaf. The legacy whole `data` attr (documents
25
- * written before 0.1.0-next.6) is a base each leaf shadows at, above and
26
- * under its path; an array leaf with values (next.6's atomic arrays, and
27
- * every array of the attr) reads as items with ids and ranks derived from
28
- * the array (as any array assigned where no item is), so two replicas
29
- * exploding it write the same items. A patch
30
- * writes its leaves over the attr while it still reads right, else deletes
31
- * it and writes every leaf (residual: a peer's concurrent set of a key it
32
- * held, or its removal of an item, may then lose to the exploded value).
24
+ * `a.b = 2`), else its leaf. A leaf holding an object or an array (an
25
+ * atomic path's, `data.atomic`, or an array 0.1.0-next.6 wrote) reads as
26
+ * its keys or as items with ids and ranks derived from the array (as any
27
+ * array assigned where no item is), so two replicas writing into it write
28
+ * the same items; a patch opens it only along its path.
33
29
  */
34
30
  import type { EngineNode } from './engine-api.js';
35
31
  type JsonObj = Record<string, unknown>;
@@ -83,10 +79,9 @@ export declare const applyPatch: (data: JsonObj, patches: readonly DataPatch[])
83
79
  * The attr writes that give `node` the data `patches` make of its own (new
84
80
  * items get ids from `rand`, ranks from `client`), or `null` when a patch
85
81
  * fits no value there: only the leaves of the keys and items a patch
86
- * touches change, so a concurrent edit of another key or item is kept. A
87
- * legacy base (the attr, an atomic array leaf) stays under the leaves while
88
- * they still read as the patched value, else it is exploded: every leaf
89
- * written, the attr deleted. An unchanged value writes nothing.
82
+ * touches change, so a concurrent edit of another key or item is kept. An
83
+ * atomic path is written as one leaf and the leaves under it are deleted.
84
+ * An unchanged value writes nothing.
90
85
  */
91
86
  export declare const patchWrites: (node: EngineNode, patches: readonly DataPatch[], client?: number, rand?: () => number, atomic?: readonly string[]) => LeafWrite[] | null;
92
87
  /** Write `writes` on `node` (a detached one too: a block or atom being created). */
package/dist/crdt/data.js CHANGED
@@ -1,4 +1,4 @@
1
- import { DATA, DATA_LEAF_PREFIX } from './schema.js';
1
+ import { DATA_LEAF_PREFIX } from './schema.js';
2
2
  import { rankAfter } from './placement/rank.js';
3
3
  import { hash32 } from './rand.js';
4
4
  import { jsonEquals } from '../utils/json.js';
@@ -33,8 +33,21 @@ const itemsOf = (t) => {
33
33
  const isArr = (t) => Array.isArray(t.v) || itemsOf(t).length > 0;
34
34
  /** The item `seg` names among `items`: by its id (`~…`) or by its index. */
35
35
  const itemAt = (items, seg) => itemish(seg) ? items.find((i) => i.id === seg) : items[index(seg)];
36
- /** The JSON `t` reads as (`undefined` for nothing). */
36
+ /** Whether `t` holds a non-empty object or array as one leaf (no subtree under it). */
37
+ const closed = (t) => t.k.size === 0 && t.v !== null && typeof t.v === 'object' && Object.keys(t.v).length > 0;
38
+ /** `t` with a container leaf's value as its subtree: its keys, or derived items. */
39
+ const open = (t) => {
40
+ if (closed(t)) {
41
+ const value = t.v;
42
+ t.v = undefined;
43
+ derived.assign(t, value);
44
+ }
45
+ return t;
46
+ };
47
+ /** The JSON `t` reads as (`undefined` for nothing): a fresh value. */
37
48
  const valueOf = (t) => {
49
+ if (closed(t))
50
+ return valueOf(open(tree(t.v)));
38
51
  const items = itemsOf(t);
39
52
  if (items.length)
40
53
  return items.map(({ id }) => valueOf(t.k.get(id) ?? tree()) ?? null);
@@ -176,7 +189,7 @@ const edits = (rand, client = 0) => {
176
189
  };
177
190
  /** Make `t` read as `value`, writing only what differs: objects key by key, arrays item by item. */
178
191
  const assign = (t, value) => {
179
- if (Array.isArray(value) && itemsOf(t).length)
192
+ if (Array.isArray(value) && itemsOf(open(t)).length)
180
193
  return arrange(t, value);
181
194
  // Anything else replaces what `t` held, but an object's equal keys.
182
195
  const object = isObject(value) && Object.keys(value).length > 0;
@@ -228,7 +241,7 @@ const edits = (rand, client = 0) => {
228
241
  for (const k of path) {
229
242
  if (!t)
230
243
  return t;
231
- if (isArr(t)) {
244
+ if (isArr(open(t))) {
232
245
  const item = itemAt(itemsOf(t), k);
233
246
  t = item && kid(t, item.id);
234
247
  }
@@ -239,7 +252,7 @@ const edits = (rand, client = 0) => {
239
252
  t = kid(t, enc(segmentKey(k)));
240
253
  }
241
254
  }
242
- return t;
255
+ return t && open(t);
243
256
  };
244
257
  /** Apply `patch` to `root`; `false` when it fits no value there. */
245
258
  const apply = (root, { path, value, splice, order }) => {
@@ -314,41 +327,6 @@ const leavesOfValue = (value, prefix = DATA_LEAF_PREFIX) => {
314
327
  };
315
328
  /** A new node's data, as leaves. */
316
329
  export const dataLeaves = (data) => leavesOfValue(isObject(data) ? data : {});
317
- /**
318
- * `leaves` over the bases they shadow (each leaf at, above and under its
319
- * path): the legacy attr, and each array leaf with values (as items).
320
- */
321
- const effective = (base, leaves) => {
322
- /** `key` and the paths above it longer than `floor`. */
323
- const above = (key, floor = 0) => {
324
- const out = [];
325
- for (let i = key.length; i > floor; i = key.lastIndexOf('/', i - 1))
326
- out.push(key.slice(0, i));
327
- return out;
328
- };
329
- const near = new Set([...leaves.keys()].flatMap((key) => above(key)));
330
- const out = new Map();
331
- const under = (prefix, value) => {
332
- for (const [key, v] of leavesOfValue(value, prefix))
333
- if (!near.has(key) && !above(key, prefix.length - 1).some((p) => leaves.has(p)))
334
- out.set(key, v);
335
- };
336
- if (isObject(base))
337
- under(DATA_LEAF_PREFIX, base);
338
- for (const [key, v] of leaves) {
339
- out.set(key, v);
340
- if (Array.isArray(v) && v.length) {
341
- under(`${key}/`, v);
342
- out.set(key, []);
343
- }
344
- else if (isObject(v) && Object.keys(v).length) {
345
- // An object written as one leaf (an atomic path, `data.atomic`) reads as its keys.
346
- under(`${key}/`, v);
347
- out.set(key, {});
348
- }
349
- }
350
- return out;
351
- };
352
330
  /** A path of the data as a leaf key (`d/` and its pointer). */
353
331
  export const leafKey = (path) => DATA_LEAF_PREFIX + path.map((k) => enc(k)).join('/');
354
332
  /**
@@ -370,23 +348,22 @@ const collapse = (leaves, atomic) => {
370
348
  }
371
349
  return leavesFrom(root);
372
350
  };
373
- const read = (base, leaves) => valueOf(treeOf(effective(base, leaves)));
374
351
  /** `node`'s data (`undefined` when it has none). */
375
- export const readData = (node) => read(node.getAttr(DATA), leavesOf(node));
352
+ export const readData = (node) => valueOf(treeOf(leavesOf(node)));
376
353
  /**
377
354
  * The ids of the items of the array at `path` (keys, item indexes or ids)
378
355
  * in `node`'s data, in order; `[]` where no array is.
379
356
  */
380
357
  export const itemIds = (node, path) => {
381
- let t = treeOf(effective(node.getAttr(DATA), leavesOf(node)));
358
+ let t = treeOf(leavesOf(node));
382
359
  for (const k of path)
383
- if (t && isArr(t)) {
360
+ if (t && isArr(open(t))) {
384
361
  const item = itemAt(itemsOf(t), k);
385
362
  t = item && t.k.get(item.id);
386
363
  }
387
364
  else
388
365
  t = itemish(k) ? undefined : t?.k.get(enc(segmentKey(k)));
389
- return t ? itemsOf(t).map(({ id }) => id) : [];
366
+ return t ? itemsOf(open(t)).map(({ id }) => id) : [];
390
367
  };
391
368
  /** `data` with `patches` applied in order, as a fresh value (a root patch replaces it); `null` when one fits no value. */
392
369
  export const applyPatch = (data, patches) => {
@@ -399,40 +376,23 @@ export const applyPatch = (data, patches) => {
399
376
  * The attr writes that give `node` the data `patches` make of its own (new
400
377
  * items get ids from `rand`, ranks from `client`), or `null` when a patch
401
378
  * fits no value there: only the leaves of the keys and items a patch
402
- * touches change, so a concurrent edit of another key or item is kept. A
403
- * legacy base (the attr, an atomic array leaf) stays under the leaves while
404
- * they still read as the patched value, else it is exploded: every leaf
405
- * written, the attr deleted. An unchanged value writes nothing.
379
+ * touches change, so a concurrent edit of another key or item is kept. An
380
+ * atomic path is written as one leaf and the leaves under it are deleted.
381
+ * An unchanged value writes nothing.
406
382
  */
407
383
  export const patchWrites = (node, patches, client = 0, rand, atomic = []) => {
408
- const [base, now] = [node.getAttr(DATA), leavesOf(node)];
409
- const was = effective(base, now);
410
- const root = treeOf(was);
384
+ const now = leavesOf(node);
385
+ const root = treeOf(now);
411
386
  const before = valueOf(root);
412
387
  const { apply } = edits(rand, client);
413
388
  if (!patches.every((p) => apply(root, p)))
414
389
  return null;
415
- const value = valueOf(root);
416
- if (jsonEquals(before, value))
390
+ if (jsonEquals(before, valueOf(root)))
417
391
  return [];
418
- // An atomic path is written as one leaf, and every leaf stored under it goes.
419
392
  const want = collapse(leavesFrom(root), atomic);
420
- const under = (key) => atomic.some((a) => key.startsWith(`${a}/`));
421
- const diff = (from) => [...new Set([...from.keys(), ...want.keys()])]
422
- .filter((key) => !jsonEquals(from.get(key), want.get(key)))
393
+ return [...new Set([...now.keys(), ...want.keys()])]
394
+ .filter((key) => !jsonEquals(now.get(key), want.get(key)))
423
395
  .map((key) => [key, want.get(key)]);
424
- const own = [
425
- ...diff(collapse(was, atomic)),
426
- ...[...now.keys()]
427
- .filter((key) => under(key) && !want.has(key))
428
- .map((key) => [key, undefined])
429
- ];
430
- const after = new Map(now);
431
- for (const [key, value] of own)
432
- value === undefined ? after.delete(key) : after.set(key, value);
433
- if (jsonEquals(read(base, after), value))
434
- return own;
435
- return [...(base === undefined ? [] : [[DATA, undefined]]), ...diff(now)];
436
396
  };
437
397
  /** Write `writes` on `node` (a detached one too: a block or atom being created). */
438
398
  export const writeLeaves = (node, writes) => {
@@ -4,11 +4,11 @@
4
4
  * resolved to the block that displays it now (`resolveAnchor`).
5
5
  */
6
6
  import { isLiveIn } from '../placement/model.js';
7
- import { DEAD, displayOf, locate, ownedLength } from '../text/model.js';
7
+ import { anchorAt as textAnchorAt, DEAD, displayOf, locate, ownedLength, resolveAnchor as textResolveAnchor } from '../text/model.js';
8
8
  import { followRedone } from '../structs.js';
9
9
  /** The anchors of one facade. */
10
10
  export const docAnchors = (c) => {
11
- const { Y, doc, T, view } = c;
11
+ const { Y, doc, view } = c;
12
12
  // ── anchors ─────────────────────────────────────────────────
13
13
  // An anchor is the home text id plus a relative position; the stream
14
14
  // containing the position says which block displays it. Both reads use
@@ -31,7 +31,7 @@ export const docAnchors = (c) => {
31
31
  const hit = locate(segs, Math.max(0, Math.min(offset, ownedLength(segs))), affinity);
32
32
  if (hit === null)
33
33
  return { b: blockId, a: { i: null, a: assoc } };
34
- return { b: hit.seg.t, a: T.anchorAt(hit.seg.text, hit.idx, assoc) };
34
+ return { b: hit.seg.t, a: textAnchorAt(hit.seg.text, hit.idx, assoc) };
35
35
  };
36
36
  /**
37
37
  * `anchor` rebound to the copy this replica's last undo/redo
@@ -64,7 +64,7 @@ export const docAnchors = (c) => {
64
64
  ? { blockId: anchor.b, offset: 0 }
65
65
  : null;
66
66
  }
67
- const i = T.resolveAnchor(doc, text, anchor.a);
67
+ const i = textResolveAnchor(doc, text, anchor.a);
68
68
  if (i === null)
69
69
  return null;
70
70
  const s = own.streamAt(anchor.b, i);
@@ -1,12 +1,16 @@
1
1
  import type { BlockId, InlineSpec } from '../placement/model.js';
2
2
  import type { Prepared } from './types.js';
3
3
  import type { OpsContext } from './steps.js';
4
+ /** An inline atom to insert: its id is minted when it names none. */
5
+ export type NewInline = Omit<InlineSpec, 'id'> & {
6
+ id?: string;
7
+ };
4
8
  /** The content ops of one facade, prepared. */
5
9
  export declare const contentOps: (c: OpsContext) => {
6
10
  insertText: (id: BlockId, offset: number, text: string, marks?: Record<string, unknown>) => Prepared;
7
11
  deleteText: (id: BlockId, offset: number, length: number) => Prepared;
8
12
  formatRange: (id: BlockId, offset: number, length: number, marks: Record<string, unknown>) => Prepared;
9
13
  clearMarks: (id: BlockId, offset: number, length: number) => Prepared;
10
- insertInline: (id: BlockId, offset: number, atom: InlineSpec) => Prepared;
14
+ insertInline: (id: BlockId, offset: number, atom: NewInline) => Prepared;
11
15
  removeInline: (id: BlockId, inlineId: string) => Prepared;
12
16
  };
@@ -3,6 +3,7 @@
3
3
  * inside voids — the caption contract), and marks over a range.
4
4
  */
5
5
  import { sanitizeWireJson, jsonEquals } from '../../utils/json.js';
6
+ import { id as newId } from '../../utils.js';
6
7
  import { ref, sanitizeInline } from './plan.js';
7
8
  /** The content ops of one facade, prepared. */
8
9
  export const contentOps = (c) => {
@@ -50,9 +51,10 @@ export const contentOps = (c) => {
50
51
  }
51
52
  return formatRange(id, offset, length, clears);
52
53
  };
54
+ /** An atom without an id gets a fresh one. */
53
55
  const insertInline = (id, offset, atom) => {
54
56
  id = ref(id);
55
- const clean = sanitizeInline(atom);
57
+ const clean = sanitizeInline({ ...atom, id: atom.id ?? newId('i') });
56
58
  if (!contentTarget(id))
57
59
  return REFUSED;
58
60
  return plan([id], [{ op: 'insertInline', id, offset: clamp(id, offset, 0)[0], atom: clean }]);
@@ -12,3 +12,4 @@ export declare const deleteOps: (c: OpsContext) => {
12
12
  keepChildren?: boolean;
13
13
  }) => Prepared;
14
14
  };
15
+ export type DeleteOps = ReturnType<typeof deleteOps>;
@@ -1,13 +1,4 @@
1
- /**
2
- * The write funnel: every facade write goes through `write` (disposal and the
3
- * document's writable guard), and every prepared plan through `apply` — one
4
- * transaction, its result read from what the transaction wrote, and the
5
- * frame's one attribution and lineage pass.
6
- */
7
- import type { BlockId } from '../placement/model.js';
8
1
  import type { BlockAttributionApi } from '../attribution/block.js';
9
- import type { AttributionActor } from '../attribution/index.js';
10
- import type { JSONBlock } from '../../utils/json.js';
11
2
  import type { EdytorDocConfig, OpResult, Prepared } from './types.js';
12
3
  import type { DocBase, DocReads } from './reads.js';
13
4
  /**
@@ -20,12 +11,6 @@ import type { DocBase, DocReads } from './reads.js';
20
11
  export declare class EdytorDocDisposedError extends Error {
21
12
  constructor(service?: string);
22
13
  }
23
- /**
24
- * The lineage ring depth, validated — `NaN`/`Infinity`/fractional/negative
25
- * values would silently disable the ring's trim bound. The one check every
26
- * entry path (facade creation, document attach and reattach) runs.
27
- */
28
- export declare const lineageDepthOf: (depth: number | undefined) => number;
29
14
  /** What the write funnel writes with: the reads, the attribution writer and the facade's configuration. */
30
15
  export type FunnelContext = DocBase & DocReads & {
31
16
  BA: BlockAttributionApi;
@@ -35,14 +20,6 @@ export type FunnelContext = DocBase & DocReads & {
35
20
  export declare const writeFunnel: (c: FunnelContext) => {
36
21
  write: <R>(fn: () => R) => R;
37
22
  apply: (p: Prepared) => OpResult;
38
- actorOf: () => AttributionActor | undefined;
39
- lineageDepth: number;
40
- lineagePending: (id: BlockId, force?: boolean) => {
41
- a?: string;
42
- by: string;
43
- t: number;
44
- j: JSONBlock;
45
- } | undefined;
46
23
  /** Disposal is terminal for writes. */
47
24
  dispose: () => void;
48
25
  disposed: () => boolean;
@@ -1,7 +1,15 @@
1
+ /**
2
+ * The write funnel: every facade write goes through `write` (disposal and the
3
+ * document's writable guard), and every prepared plan through `apply` — one
4
+ * transaction, its result read from what the transaction wrote, and the
5
+ * frame's one attribution pass.
6
+ */
7
+ import { blockNodeOf, buildInline, materializeSpec, ownText, view as modelView, writePlacement, writeSplit } from '../placement/model.js';
1
8
  import { ENTRY_FACET } from '../text/runs.js';
2
9
  import { AT, DEL_PREFIX, ID, LAST_CHANGED_ATTR, TYPE } from '../schema.js';
3
10
  import { writeLeaves } from '../data.js';
4
11
  import { NOOP } from './plan.js';
12
+ import { claimInto, deleteRange, formatRangeIn, insertIntoText } from '../text/model.js';
5
13
  /**
6
14
  * Raised when a mutating facade op runs after `dispose()` — disposal is
7
15
  * terminal for writes (reads stay dead-safe: a stale handle may still be
@@ -15,21 +23,9 @@ export class EdytorDocDisposedError extends Error {
15
23
  this.name = 'EdytorDocDisposedError';
16
24
  }
17
25
  }
18
- /**
19
- * The lineage ring depth, validated — `NaN`/`Infinity`/fractional/negative
20
- * values would silently disable the ring's trim bound. The one check every
21
- * entry path (facade creation, document attach and reattach) runs.
22
- */
23
- export const lineageDepthOf = (depth) => {
24
- const d = depth ?? 0;
25
- if (!Number.isInteger(d) || d < 0) {
26
- throw new RangeError(`lineage.depth must be a non-negative integer, got ${JSON.stringify(d)}`);
27
- }
28
- return d;
29
- };
30
26
  /** The write funnel of one facade. */
31
27
  export const writeFunnel = (c) => {
32
- const { doc, M, T, runsView, dataNode, blockJSON, BA, config } = c;
28
+ const { doc, runsView, dataNode, BA, config } = c;
33
29
  /**
34
30
  * Terminal flag — set by `dispose()`. Mutating ops funnel through
35
31
  * `write`, so gating there covers every facade write + `transact` +
@@ -56,39 +52,14 @@ export const writeFunnel = (c) => {
56
52
  // is observed, never predicted.
57
53
  //
58
54
  // Each apply opens a frame that tracks the index's folds. When it
59
- // closes, ONE pass over the facets the fold saw stamps attribution and
60
- // commits lineage: a block whose registry entry was created gets
61
- // its `createdBy` record; a block whose content, claims, type or data
55
+ // closes, ONE pass over the facets the fold saw stamps attribution: a
56
+ // block whose registry entry was created gets its `createdBy` record; a block whose content, claims, type or data
62
57
  // changed gets a contributor stamp; moves and delete marks stamp
63
58
  // nothing. Two intents the effects cannot name are recorded by their
64
59
  // steps: a split-born block inherits its source's contributors, and a
65
- // merge survivor unions the absorbed block's. Lineage is captured
66
- // before the first write for each target a step names, and committed
67
- // only for targets the effects show changed, deleted or absorbed. With
68
- // no configured `actor` the funnel writes no attribution at all.
60
+ // merge survivor unions the absorbed block's. With no configured
61
+ // `actor` the funnel writes no attribution at all.
69
62
  const actorOf = () => config.actor?.();
70
- const lineageDepth = lineageDepthOf(config.lineageDepth);
71
- /**
72
- * Capture `id`'s displaced state when the current actor is NOT the `l`
73
- * winner (`force`: destructive paths, where the state is lost whoever
74
- * owns `l`). First capture in a frame wins — it is the pre-frame state.
75
- */
76
- const lineagePending = (id, force = false) => {
77
- const actor = actorOf();
78
- const node = M.blockNodeOf(doc, id);
79
- if (lineageDepth <= 0 || actor === undefined || node === null)
80
- return undefined;
81
- const l = node.getAttr(LAST_CHANGED_ATTR);
82
- if (!force && l === actor.id)
83
- return undefined;
84
- const j = blockJSON(id);
85
- return { ...(typeof l === 'string' ? { a: l } : {}), by: actor.id, t: Date.now(), j };
86
- };
87
- const capture = (f, id, force = false) => {
88
- const pending = f.lineage.has(id) ? undefined : lineagePending(id, force);
89
- if (pending !== undefined)
90
- f.lineage.set(id, pending);
91
- };
92
63
  /** The frame's one attribution pass over the facets the fold saw it write. */
93
64
  const close = (f, folded) => {
94
65
  const actor = actorOf();
@@ -96,79 +67,72 @@ export const writeFunnel = (c) => {
96
67
  return;
97
68
  const created = new Set();
98
69
  const changed = new Set();
99
- const gone = new Set(f.unions.map(([, from]) => from));
100
70
  for (const [id, facets] of folded.touched) {
101
- if (facets.has(ENTRY_FACET) && M.blockNodeOf(doc, id) !== null)
71
+ if (facets.has(ENTRY_FACET) && blockNodeOf(doc, id) !== null)
102
72
  created.add(id);
103
73
  else
104
- for (const facet of facets) {
105
- if (facet.startsWith(DEL_PREFIX))
106
- gone.add(id);
107
- else if (![ENTRY_FACET, AT, ID, LAST_CHANGED_ATTR].includes(facet))
74
+ for (const facet of facets)
75
+ if (!facet.startsWith(DEL_PREFIX) &&
76
+ ![ENTRY_FACET, AT, ID, LAST_CHANGED_ATTR].includes(facet))
108
77
  changed.add(id);
109
- }
110
78
  }
111
79
  for (const id of created) {
112
- const node = M.blockNodeOf(doc, id);
80
+ const node = blockNodeOf(doc, id);
113
81
  if (node !== null)
114
82
  BA.stampCreated(doc, node, id, actor.id, f.inherit.get(id));
115
83
  }
116
84
  for (const id of changed) {
117
- const node = created.has(id) ? null : M.blockNodeOf(doc, id);
85
+ const node = created.has(id) ? null : blockNodeOf(doc, id);
118
86
  if (node !== null)
119
87
  BA.stampChange(doc, node, id, actor.id);
120
88
  }
121
89
  for (const [into, from] of f.unions)
122
90
  BA.unionContributors(doc, into, from);
123
- for (const [id, pending] of f.lineage) {
124
- if (changed.has(id) || gone.has(id))
125
- BA.appendLineage(doc, id, pending, lineageDepth);
126
- }
127
91
  };
128
92
  /**
129
93
  * A streamless block gets its own text before the first write that
130
- * needs a stream (`M.ownText`: a writer derived from its dead
94
+ * needs a stream (`ownText`: a writer derived from its dead
131
95
  * incarnation); its attribution record follows the re-minted nonce.
132
96
  */
133
97
  const needStream = (id) => {
134
- if ((M.view(doc).own.display(id) ?? []).length > 0)
98
+ if ((modelView(doc).own.display(id) ?? []).length > 0)
135
99
  return;
136
- const { from, to } = M.ownText(doc, id);
100
+ const { from, to } = ownText(doc, id);
137
101
  BA.retarget(doc, id, from, to);
138
102
  };
139
103
  /** One planned step, written (the plan decided it; writers never refuse). */
140
104
  const writeStep = (w, f) => {
141
105
  // Structural steps need no view: delete marks and placements write one node.
142
106
  if (w.op === 'deleteBlock')
143
- return w.marks.forEach((id) => M.blockNodeOf(doc, id).setAttr(DEL_PREFIX + doc.clientID, true));
107
+ return w.marks.forEach((id) => blockNodeOf(doc, id).setAttr(DEL_PREFIX + doc.clientID, true));
144
108
  if (w.op === 'splitBlock' || w.op === 'insertText' || w.op === 'insertInline')
145
109
  needStream(w.id);
146
- const { blocks, own } = M.view(doc);
147
- const node = (id) => M.blockNodeOf(doc, id);
110
+ const { blocks, own } = modelView(doc);
111
+ const node = (id) => blockNodeOf(doc, id);
148
112
  switch (w.op) {
149
113
  case 'insertBlocks':
150
- return w.specs.forEach((sp, i) => M.materializeSpec(doc, sp, w.parent, w.ranks[i]));
114
+ return w.specs.forEach((sp, i) => materializeSpec(doc, sp, w.parent, w.ranks[i]));
151
115
  case 'moveBlocks':
152
- return w.ids.forEach((id, i) => M.writePlacement(doc, node(id), w.parent, w.ranks[i]));
116
+ return w.ids.forEach((id, i) => writePlacement(doc, node(id), w.parent, w.ranks[i]));
153
117
  case 'splitBlock':
154
118
  f.inherit.set(w.newId, w.id);
155
- return M.writeSplit(doc, w.id, w.offset, w.newId, w.tail, { p: w.parent, r: w.rank });
119
+ return writeSplit(doc, w.id, w.offset, w.newId, w.tail, { p: w.parent, r: w.rank });
156
120
  case 'mergeBlocks':
157
121
  f.unions.push([w.into, w.from]);
158
- return T.claimInto(blocks, own, w.from, w.into);
122
+ return claimInto(blocks, own, w.from, w.into);
159
123
  case 'setBlockType':
160
124
  return void node(w.id).setAttr(TYPE, w.type);
161
125
  case 'patchData':
162
126
  return writeLeaves(dataNode(w.id, w.inlineId), w.leaves);
163
127
  case 'insertText':
164
- return T.insertIntoText(doc, blocks, own, w.id, w.offset, w.text, w.marks);
128
+ return insertIntoText(doc, blocks, own, w.id, w.offset, w.text, w.marks);
165
129
  case 'insertInline':
166
- return T.insertIntoText(doc, blocks, own, w.id, w.offset, M.buildInline(w.atom));
130
+ return insertIntoText(doc, blocks, own, w.id, w.offset, buildInline(w.atom));
167
131
  case 'deleteText':
168
132
  case 'removeInline':
169
- return T.deleteRange(doc, blocks, own, w.id, w.offset, 'length' in w ? w.length : 1);
133
+ return deleteRange(doc, blocks, own, w.id, w.offset, 'length' in w ? w.length : 1);
170
134
  case 'formatRange':
171
- return T.formatRangeIn(doc, blocks, own, w.id, w.offset, w.length, w.marks);
135
+ return formatRangeIn(doc, blocks, own, w.id, w.offset, w.length, w.marks);
172
136
  }
173
137
  };
174
138
  /**
@@ -185,20 +149,8 @@ export const writeFunnel = (c) => {
185
149
  }
186
150
  return write(() => doc.transact(() => {
187
151
  const frame = runsView.track();
188
- const f = { lineage: new Map(), inherit: new Map(), unions: [] };
152
+ const f = { inherit: new Map(), unions: [] };
189
153
  try {
190
- // Lineage captures every target's pre-write state before the
191
- // first write; destructive steps capture whoever owns `l`.
192
- for (const w of p.writes) {
193
- if (w.op === 'deleteBlock')
194
- capture(f, w.id, true);
195
- else if (w.op === 'mergeBlocks') {
196
- capture(f, w.from, true);
197
- capture(f, w.into);
198
- }
199
- else if ('id' in w && w.id !== undefined)
200
- capture(f, w.id);
201
- }
202
154
  for (const w of p.writes)
203
155
  writeStep(w, f);
204
156
  }
@@ -215,9 +167,6 @@ export const writeFunnel = (c) => {
215
167
  return {
216
168
  write,
217
169
  apply,
218
- actorOf,
219
- lineageDepth,
220
- lineagePending,
221
170
  /** Disposal is terminal for writes. */
222
171
  dispose: () => {
223
172
  disposed = true;
@@ -25,7 +25,7 @@
25
25
  * ```
26
26
  */
27
27
  import type { EngineDoc } from '../engine-api.js';
28
- export declare const SCHEMA_VERSION: 5;
28
+ export declare const SCHEMA_VERSION: 6;
29
29
  export declare const SCHEMA_NAME: "edytor-doc";
30
30
  export declare const META_KEY: "meta";
31
31
  /**
@@ -87,20 +87,19 @@ export declare class SchemaMismatchError extends Error {
87
87
  */
88
88
  export declare const assertSchema: (doc: EngineDoc, docName?: string) => void;
89
89
  /**
90
- * Error raised by {@link assertUsableDoc} — the doc cannot host a v14 facade.
91
- * `kind` distinguishes a foreign engine object (a real v13 `yjs` Doc — a
92
- * different CRDT implementation entirely) from a v14 doc that decodes the
93
- * legacy v13 Edytor schema (applied v13 update rows awaiting migration).
90
+ * Error raised by {@link assertUsableDoc} — the doc cannot host a v14 facade:
91
+ * a foreign engine object (a v13 `yjs` Doc — a different CRDT implementation
92
+ * entirely).
94
93
  */
95
94
  export declare class UnsupportedDocError extends Error {
96
- readonly kind: 'foreign' | 'legacy';
97
- constructor(kind: 'foreign' | 'legacy');
95
+ readonly kind: 'foreign';
96
+ constructor(kind: 'foreign');
98
97
  }
99
98
  /**
100
99
  * Document-boundary guard run by {@link EdytorDocBinding.create} before the
101
100
  * runs view attaches. The facade only speaks the v14 unified-node surface —
102
101
  * without this gate a foreign doc dies obscurely inside `buildView`
103
- * (`registry.forEachAttr is not a function`), and a legacy-schema doc would be
104
- * silently misread. Both fail fast with an actionable error instead.
102
+ * (`registry.forEachAttr is not a function`); it fails fast with an
103
+ * actionable error instead.
105
104
  */
106
105
  export declare const assertUsableDoc: (doc: EngineDoc) => void;
@@ -1,5 +1,4 @@
1
1
  import { isNodeLike, SCHEMA } from '../schema.js';
2
- import { isLegacyDoc } from '../migration/legacy-schema.js';
3
2
  export const SCHEMA_VERSION = SCHEMA.version;
4
3
  export const SCHEMA_NAME = SCHEMA.name;
5
4
  export const META_KEY = SCHEMA.roots.meta;
@@ -75,21 +74,15 @@ export const assertSchema = (doc, docName = 'doc') => {
75
74
  throw new SchemaMismatchError(docName, problem);
76
75
  };
77
76
  /**
78
- * Error raised by {@link assertUsableDoc} — the doc cannot host a v14 facade.
79
- * `kind` distinguishes a foreign engine object (a real v13 `yjs` Doc — a
80
- * different CRDT implementation entirely) from a v14 doc that decodes the
81
- * legacy v13 Edytor schema (applied v13 update rows awaiting migration).
77
+ * Error raised by {@link assertUsableDoc} — the doc cannot host a v14 facade:
78
+ * a foreign engine object (a v13 `yjs` Doc — a different CRDT implementation
79
+ * entirely).
82
80
  */
83
81
  export class UnsupportedDocError extends Error {
84
82
  kind;
85
83
  constructor(kind) {
86
- super(kind === 'legacy'
87
- ? 'Document carries the legacy v13 Edytor schema (`content` root) — ' +
88
- 'migrate it via `crdt.migration` before attaching an editor.'
89
- : 'Document is not a v14 engine doc — the `blocks` registry is not a ' +
90
- 'unified Y.Node. Use `crdt.createDoc()` (or `new Y.Doc()` from ' +
91
- '`edytor/crdt`); a v13 `yjs` Doc must be migrated via ' +
92
- '`crdt.migration` (from its stored updates), not passed to the runtime.');
84
+ super('Document is not a v14 engine doc — the `blocks` registry is not a ' +
85
+ 'unified Y.Node. Use `crdt.createDoc()` (or `new Y.Doc()` from `edytor/crdt`).');
93
86
  this.kind = kind;
94
87
  this.name = 'UnsupportedDocError';
95
88
  }
@@ -98,8 +91,8 @@ export class UnsupportedDocError extends Error {
98
91
  * Document-boundary guard run by {@link EdytorDocBinding.create} before the
99
92
  * runs view attaches. The facade only speaks the v14 unified-node surface —
100
93
  * without this gate a foreign doc dies obscurely inside `buildView`
101
- * (`registry.forEachAttr is not a function`), and a legacy-schema doc would be
102
- * silently misread. Both fail fast with an actionable error instead.
94
+ * (`registry.forEachAttr is not a function`); it fails fast with an
95
+ * actionable error instead.
103
96
  */
104
97
  export const assertUsableDoc = (doc) => {
105
98
  let registry;
@@ -112,7 +105,4 @@ export const assertUsableDoc = (doc) => {
112
105
  if (!isNodeLike(registry) || typeof registry.forEachAttr !== 'function') {
113
106
  throw new UnsupportedDocError('foreign');
114
107
  }
115
- if (isLegacyDoc(doc)) {
116
- throw new UnsupportedDocError('legacy');
117
- }
118
108
  };