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
@@ -43,7 +43,7 @@ export const INLINE_NODE = 'inline';
43
43
  /** Attr keys on a block node (`SCHEMA.blockAttrs`). */
44
44
  export const ID = 'id';
45
45
  export const TYPE = 'type';
46
- /** A block's or atom's whole data: the legacy layer, read under the leaves and exploded by the first patch. */
46
+ /** A block's or atom's whole data, as documents before 0.1.0-next.6 stored it: no longer read; the room's purge deletes it. */
47
47
  export const DATA = 'data';
48
48
  /** A data leaf: `d/` and its path, RFC 6901 escaped (`crdt/data.ts`). */
49
49
  export const DATA_LEAF_PREFIX = 'd/';
@@ -80,10 +80,9 @@ export const AT = 'at';
80
80
  export const REC_PREFIX = 'b/';
81
81
  /** The schema generation stamped on the `meta` root (`v`) and its manifest name (`schema`). */
82
82
  export const SCHEMA = {
83
- // 5 (0.1.0-next.25): paired marks, variable-length ranks, v2
84
- // SyncStep2; a generation-4 container converts through its JSON
85
- // (`migration/generation.ts`).
86
- version: 5,
83
+ // 6: one update encoding (the columnar one) on the wire and in storage;
84
+ // a container or frame of an earlier generation is refused.
85
+ version: 6,
87
86
  name: 'edytor-doc',
88
87
  roots: { registry: REGISTRY_KEY, meta: META_ROOT_KEY },
89
88
  metaAttrs: { version: 'v', schema: 'schema' }
@@ -53,16 +53,12 @@ export type NormalizedRole = {
53
53
  };
54
54
  /** `role` as {@link NormalizedRole}: the one form two declarations compare in. */
55
55
  export declare const normalizeRole: (role: BlockRole | undefined) => NormalizedRole;
56
- /** `richTextPlugin`'s structural rows (its other kinds are plain). */
56
+ /** `createRichTextPlugin()`'s structural rows (its other kinds are plain). */
57
57
  export declare const richTextKinds: {
58
58
  divider: {
59
59
  void: true;
60
60
  rendersContent: false;
61
61
  };
62
- horizontalRule: {
63
- void: true;
64
- rendersContent: false;
65
- };
66
62
  'ordered-list': {
67
63
  rendersContent: false;
68
64
  defaultChild: string;
@@ -73,7 +69,7 @@ export declare const richTextKinds: {
73
69
  };
74
70
  };
75
71
  /**
76
- * `richTextPlugin`'s mark edges: where a concurrent insert at each end
72
+ * `createRichTextPlugin()`'s mark edges: where a concurrent insert at each end
77
73
  * of a mark lands. A link grows at its start only (typing after it
78
74
  * stays out of it unless from inside the anchor); the others are inclusive.
79
75
  */
@@ -92,7 +88,7 @@ export declare const commentMarks: {
92
88
  edge: "exclusive";
93
89
  };
94
90
  };
95
- /** `codePlugin`'s structural rows: the code block is an island of `codeLine`s (`lines`). */
91
+ /** `createCodePlugin()`'s structural rows: the code block is an island of `codeLine`s (`lines`). */
96
92
  export declare const codeKinds: {
97
93
  code: {
98
94
  island: true;
@@ -101,15 +97,15 @@ export declare const codeKinds: {
101
97
  defaultChild: string;
102
98
  };
103
99
  };
104
- /** `imagePlugin`'s structural rows: void, its only text is the caption. */
100
+ /** `createImagePlugin()`'s structural rows: void, its only text is the caption. */
105
101
  export declare const imageKinds: {
106
102
  image: {
107
103
  void: true;
108
104
  };
109
105
  };
110
106
  /**
111
- * The media plugins' structural rows (`embedPlugin`, `bookmarkPlugin`,
112
- * `filePlugin`, `videoPlugin`, `audioPlugin`): void like the image, their
107
+ * The media plugins' structural rows (`createEmbedPlugin()`, `createBookmarkPlugin()`,
108
+ * `createFilePlugin()`, `createVideoPlugin()`, `createAudioPlugin()`): void like the image, their
113
109
  * only text is the caption.
114
110
  */
115
111
  export declare const mediaKinds: {
@@ -249,7 +245,7 @@ export declare const semanticsDigest: (config: DocumentSemanticsConfig) => Recor
249
245
  * names counts when it has facts. Anything but a digest compares nothing.
250
246
  */
251
247
  export declare const semanticsMismatch: (ours: Record<string, string>, theirs: unknown) => string[];
252
- /** `richTextPlugin`'s block roles and mark edges, for `createDocument({ semantics })` and the room. */
248
+ /** `createRichTextPlugin()`'s block roles and mark edges, for `createDocument({ semantics })` and the room. */
253
249
  export declare const richTextSemantics: {
254
250
  roles: Record<string, BlockRole>;
255
251
  rendersContent: Record<string, boolean>;
@@ -259,13 +255,13 @@ export declare const richTextSemantics: {
259
255
  edge: MarkEdge;
260
256
  }>;
261
257
  };
262
- /** `codePlugin`'s block roles. */
258
+ /** `createCodePlugin()`'s block roles. */
263
259
  export declare const codeSemantics: {
264
260
  roles: Record<string, BlockRole>;
265
261
  rendersContent: Record<string, boolean>;
266
262
  defaultChild: Record<string, string>;
267
263
  };
268
- /** `imagePlugin`'s block roles. */
264
+ /** `createImagePlugin()`'s block roles. */
269
265
  export declare const imageSemantics: {
270
266
  roles: Record<string, BlockRole>;
271
267
  rendersContent: Record<string, boolean>;
@@ -327,8 +323,7 @@ export declare const defaultSemantics: {
327
323
  };
328
324
  /**
329
325
  * The facade configuration (`EdytorDocConfig`) a document with no view
330
- * reads `semantics` with — the room's, and a generation cutover's
331
- * (`migration/generation.ts`): roles, default children, content-less kinds
326
+ * reads `semantics` with — the room's: roles, default children, content-less kinds
332
327
  * and mark edges, each answered only for a kind the tables name.
333
328
  */
334
329
  export declare const facadeConfigOf: (semantics: DocumentSemanticsConfig) => {
@@ -48,15 +48,14 @@ const frozen = (value) => {
48
48
  }
49
49
  return value;
50
50
  };
51
- /** `richTextPlugin`'s structural rows (its other kinds are plain). */
51
+ /** `createRichTextPlugin()`'s structural rows (its other kinds are plain). */
52
52
  export const richTextKinds = frozen({
53
53
  divider: { void: true, rendersContent: false },
54
- horizontalRule: { void: true, rendersContent: false },
55
54
  'ordered-list': { rendersContent: false, defaultChild: 'list-item' },
56
55
  'unordered-list': { rendersContent: false, defaultChild: 'list-item' }
57
56
  });
58
57
  /**
59
- * `richTextPlugin`'s mark edges: where a concurrent insert at each end
58
+ * `createRichTextPlugin()`'s mark edges: where a concurrent insert at each end
60
59
  * of a mark lands. A link grows at its start only (typing after it
61
60
  * stays out of it unless from inside the anchor); the others are inclusive.
62
61
  */
@@ -71,15 +70,15 @@ export const richTextMarks = frozen({
71
70
  export const commentMarks = frozen({
72
71
  comment: { edge: 'exclusive' }
73
72
  });
74
- /** `codePlugin`'s structural rows: the code block is an island of `codeLine`s (`lines`). */
73
+ /** `createCodePlugin()`'s structural rows: the code block is an island of `codeLine`s (`lines`). */
75
74
  export const codeKinds = frozen({
76
75
  code: { island: true, lines: true, rendersContent: false, defaultChild: 'codeLine' }
77
76
  });
78
- /** `imagePlugin`'s structural rows: void, its only text is the caption. */
77
+ /** `createImagePlugin()`'s structural rows: void, its only text is the caption. */
79
78
  export const imageKinds = frozen({ image: { void: true } });
80
79
  /**
81
- * The media plugins' structural rows (`embedPlugin`, `bookmarkPlugin`,
82
- * `filePlugin`, `videoPlugin`, `audioPlugin`): void like the image, their
80
+ * The media plugins' structural rows (`createEmbedPlugin()`, `createBookmarkPlugin()`,
81
+ * `createFilePlugin()`, `createVideoPlugin()`, `createAudioPlugin()`): void like the image, their
83
82
  * only text is the caption.
84
83
  */
85
84
  export const mediaKinds = frozen({
@@ -143,6 +142,7 @@ export const tableKinds = frozen({
143
142
  * `table`, `atomic`, `rendersContent`, `defaultChild`), and a bare snippet is a
144
143
  * plain kind. To add kinds to a bundled config, use {@link mergeSemantics}.
145
144
  */
145
+ /* @__NO_SIDE_EFFECTS__ */
146
146
  export const semanticsOf = (...tables) => {
147
147
  const semantics = {
148
148
  roles: {},
@@ -264,25 +264,27 @@ export const semanticsMismatch = (ours, theirs) => {
264
264
  .sort();
265
265
  };
266
266
  /** `config` with a mark-edge table, frozen. */
267
+ /* @__NO_SIDE_EFFECTS__ */
267
268
  const withMarks = (config, marks) => frozen(Object.assign({}, config, { marks }));
268
- /** `richTextPlugin`'s block roles and mark edges, for `createDocument({ semantics })` and the room. */
269
- export const richTextSemantics = withMarks(semanticsOf(richTextKinds), richTextMarks);
270
- /** `codePlugin`'s block roles. */
271
- export const codeSemantics = semanticsOf(codeKinds);
272
- /** `imagePlugin`'s block roles. */
273
- export const imageSemantics = semanticsOf(imageKinds);
269
+ /** `createRichTextPlugin()`'s block roles and mark edges, for `createDocument({ semantics })` and the room. */
270
+ export const richTextSemantics = /* @__PURE__ */ withMarks(
271
+ /* @__PURE__ */ semanticsOf(richTextKinds), richTextMarks);
272
+ /** `createCodePlugin()`'s block roles. */
273
+ export const codeSemantics = /* @__PURE__ */ semanticsOf(codeKinds);
274
+ /** `createImagePlugin()`'s block roles. */
275
+ export const imageSemantics = /* @__PURE__ */ semanticsOf(imageKinds);
274
276
  /** The media plugins' block roles (embed, bookmark, file, video, audio). */
275
- export const mediaSemantics = semanticsOf(mediaKinds);
277
+ export const mediaSemantics = /* @__PURE__ */ semanticsOf(mediaKinds);
276
278
  /** The columns plugin's block roles (a layout of columns). */
277
- export const layoutSemantics = semanticsOf(layoutKinds);
279
+ export const layoutSemantics = /* @__PURE__ */ semanticsOf(layoutKinds);
278
280
  /** The page plugin's block role (a link to another document). */
279
- export const pageSemantics = semanticsOf(pageKinds);
281
+ export const pageSemantics = /* @__PURE__ */ semanticsOf(pageKinds);
280
282
  /** The table of contents plugin's block role. */
281
- export const tocSemantics = semanticsOf(tocKinds);
283
+ export const tocSemantics = /* @__PURE__ */ semanticsOf(tocKinds);
282
284
  /** The table plugin's block roles (a table of rows of cells). */
283
- export const tableSemantics = semanticsOf(tableKinds);
285
+ export const tableSemantics = /* @__PURE__ */ semanticsOf(tableKinds);
284
286
  /** The equation plugin's block role. */
285
- export const equationSemantics = semanticsOf(equationKinds);
287
+ export const equationSemantics = /* @__PURE__ */ semanticsOf(equationKinds);
286
288
  /**
287
289
  * The rich-text, code, image, media, columns, page, table of contents,
288
290
  * table and equation plugins' block roles together (and the rich-text and
@@ -295,8 +297,7 @@ export const equationSemantics = semanticsOf(equationKinds);
295
297
  export const defaultSemantics = withMarks(semanticsOf(richTextKinds, codeKinds, imageKinds, mediaKinds, layoutKinds, pageKinds, tocKinds, tableKinds, equationKinds), { ...richTextMarks, ...commentMarks });
296
298
  /**
297
299
  * The facade configuration (`EdytorDocConfig`) a document with no view
298
- * reads `semantics` with — the room's, and a generation cutover's
299
- * (`migration/generation.ts`): roles, default children, content-less kinds
300
+ * reads `semantics` with — the room's: roles, default children, content-less kinds
300
301
  * and mark edges, each answered only for a kind the tables name.
301
302
  */
302
303
  export const facadeConfigOf = (semantics) => {
@@ -1,21 +1,15 @@
1
1
  /**
2
2
  * The storage codec — what the room's rows and the IndexedDB store
3
- * hold, apart from the wire (which stays v1 until the schema generation
4
- * that changes it). Snapshots are written in the v2 (columnar) encoding
5
- * and gzip-compressed where the platform has `CompressionStream`; update
6
- * rows stay v1 (smaller for one keystroke). A compressed record starts
7
- * with gzip's magic `1f 8b`, which no v2 update does (its first byte is
8
- * the encoder's feature flag, `00`), so a v2 container's snapshot says
9
- * itself whether it is compressed. Worker-safe: no timers, every
10
- * platform API feature-detected.
3
+ * hold: updates in the engine's one encoding, snapshots gzip-compressed
4
+ * when that makes them smaller (`CompressionStream`, in every supported
5
+ * browser, Node and Workers). A compressed record starts with gzip's magic
6
+ * `1f 8b`, which no update does (its first byte is the encoder's feature
7
+ * flag, `00`), so a record says itself whether it is compressed.
8
+ * Worker-safe: no timers.
11
9
  */
12
10
  /** Whether `bytes` are gzip (its magic `1f 8b`). */
13
11
  export declare const isGzip: (bytes: Uint8Array) => boolean;
14
- /** Whether this platform compresses (`CompressionStream`). */
15
- export declare const canCompress: () => boolean;
16
- /** `bytes` gzip-compressed, or `null` where the platform has no `CompressionStream`. */
17
- export declare const gzip: (bytes: Uint8Array) => Promise<Uint8Array | null>;
18
12
  /** `bytes` as stored: inflated when gzip, else as they are. */
19
13
  export declare const gunzip: (bytes: Uint8Array) => Promise<Uint8Array>;
20
- /** `bytes` compressed when that makes them smaller (and the platform can), else as they are. */
14
+ /** `bytes` compressed when that makes them smaller, else as they are. */
21
15
  export declare const packed: (bytes: Uint8Array) => Promise<Uint8Array>;
@@ -1,37 +1,23 @@
1
1
  /**
2
2
  * The storage codec — what the room's rows and the IndexedDB store
3
- * hold, apart from the wire (which stays v1 until the schema generation
4
- * that changes it). Snapshots are written in the v2 (columnar) encoding
5
- * and gzip-compressed where the platform has `CompressionStream`; update
6
- * rows stay v1 (smaller for one keystroke). A compressed record starts
7
- * with gzip's magic `1f 8b`, which no v2 update does (its first byte is
8
- * the encoder's feature flag, `00`), so a v2 container's snapshot says
9
- * itself whether it is compressed. Worker-safe: no timers, every
10
- * platform API feature-detected.
3
+ * hold: updates in the engine's one encoding, snapshots gzip-compressed
4
+ * when that makes them smaller (`CompressionStream`, in every supported
5
+ * browser, Node and Workers). A compressed record starts with gzip's magic
6
+ * `1f 8b`, which no update does (its first byte is the encoder's feature
7
+ * flag, `00`), so a record says itself whether it is compressed.
8
+ * Worker-safe: no timers.
11
9
  */
12
10
  /** Whether `bytes` are gzip (its magic `1f 8b`). */
13
11
  export const isGzip = (bytes) => bytes.length >= 2 && bytes[0] === 0x1f && bytes[1] === 0x8b;
14
- const platform = globalThis;
15
12
  /** Run `bytes` through a (de)compression stream. */
16
13
  const through = async (bytes, transform) => {
17
14
  const stream = new Response(bytes).body.pipeThrough(transform);
18
15
  return new Uint8Array(await new Response(stream).arrayBuffer());
19
16
  };
20
- /** Whether this platform compresses (`CompressionStream`). */
21
- export const canCompress = () => typeof platform.CompressionStream === 'function';
22
- /** `bytes` gzip-compressed, or `null` where the platform has no `CompressionStream`. */
23
- export const gzip = async (bytes) => platform.CompressionStream ? through(bytes, new platform.CompressionStream('gzip')) : null;
24
17
  /** `bytes` as stored: inflated when gzip, else as they are. */
25
- export const gunzip = async (bytes) => {
26
- if (!isGzip(bytes))
27
- return bytes;
28
- if (!platform.DecompressionStream) {
29
- throw new Error('a compressed record needs DecompressionStream, which this platform lacks');
30
- }
31
- return through(bytes, new platform.DecompressionStream('gzip'));
32
- };
33
- /** `bytes` compressed when that makes them smaller (and the platform can), else as they are. */
18
+ export const gunzip = async (bytes) => isGzip(bytes) ? through(bytes, new DecompressionStream('gzip')) : bytes;
19
+ /** `bytes` compressed when that makes them smaller, else as they are. */
34
20
  export const packed = async (bytes) => {
35
- const out = await gzip(bytes);
36
- return out !== null && out.length < bytes.length ? out : bytes;
21
+ const out = await through(bytes, new CompressionStream('gzip'));
22
+ return out.length < bytes.length ? out : bytes;
37
23
  };
@@ -1,24 +1,3 @@
1
- /**
2
- * Vendor internals — the ONE place Edytor code reaches into the engine's
3
- * private state (the struct store, a node's attr items and first item,
4
- * the doc's collection settings and transaction events) and calls the
5
- * engine's internal functions with Edytor's structural views of its
6
- * objects. Centralizing these keeps the blast radius of a vendored engine
7
- * upgrade in one module: when an internal is renamed or reshaped, the
8
- * accessors below are the lines to change, and the fail-fast checks break
9
- * loudly at upgrade time instead of silently disabling run invalidation or
10
- * history lineage (the old optional-chained reads turned a rename into a
11
- * silent no-op).
12
- *
13
- * The model works against structural types (`EngineDoc`, `EngineNode`,
14
- * `StoreStruct`, `IdSetLike`: the subset it reads) while the engine's
15
- * generated declarations (`vendor/yjs/dts`) type its classes; a real engine
16
- * object satisfies the structural view at runtime. Each accessor states
17
- * that correspondence once, so a call site needs no cast.
18
- *
19
- * The engine surface is injected (`Y: EngineApi`) like every other bound
20
- * module — this file never imports vendor `.js`.
21
- */
22
1
  import type { EngineApi, EngineDoc, EngineNode, YDoc, YNode, YUndoManager } from './engine-api.js';
23
2
  /**
24
3
  * Structural shape of one store struct (Item | GC | Skip) — the subset
@@ -62,9 +41,9 @@ export type IdSetLike = {
62
41
  };
63
42
  /**
64
43
  * The doc's struct store — vendor-internal (`doc.store.clients`).
65
- * FAIL-FAST: a missing store means the doc is not a vendored-engine doc
66
- * (or the vendored layout changed) — either way the only honest response
67
- * is a descriptive throw, never a silent fallback.
44
+ * FAIL-FAST in development: a missing store means the doc is not a
45
+ * vendored-engine doc (or the vendored layout changed) — either way the only
46
+ * honest response is a descriptive throw, never a silent fallback.
68
47
  */
69
48
  export declare const clientsOf: (doc: EngineDoc) => Map<number, StoreStruct[]>;
70
49
  /**
@@ -75,25 +54,17 @@ export declare const clientsOf: (doc: EngineDoc) => Map<number, StoreStruct[]>;
75
54
  */
76
55
  export declare const structAt: (Y: EngineApi, structs: readonly StoreStruct[], clock: number) => StoreStruct | null;
77
56
  /**
78
- * Walk every struct an IdSet covers, invoking `fn` per struct in
79
- * (client, clock) order. IdSet ranges are item-aligned (they record whole
80
- * structs), so an overlapping struct is a covered struct — the walk never
81
- * splits.
82
- *
83
- * `fn` returning `false` halts the walk early (caller-side short-circuit).
57
+ * Walk every struct an IdSet covers, in (client, clock) order: `fn(struct,
58
+ * from, to)` gets the struct and the clock range `[from, to)` of it the set
59
+ * covers (a struct can reach past a range a diff of two id sets cut). The
60
+ * walk never splits a struct; `fn` returning `false` halts it.
84
61
  *
85
62
  * Returns `false` when coverage was INCOMPLETE — a client's struct list
86
63
  * was missing or a range start could not be located — so the caller can
87
64
  * fall back to an all-consumers/opaque answer instead of trusting a
88
65
  * partial walk. `clientsOf` throws first when the store itself is absent.
89
66
  */
90
- export declare const walkIdSetStructs: (Y: EngineApi, doc: EngineDoc, idSet: IdSetLike, fn: (struct: StoreStruct) => boolean | void) => boolean;
91
- /**
92
- * {@link walkIdSetStructs}, clipped: `fn(struct, from, to)` gets the clock
93
- * range `[from, to)` of the struct the id set covers (a struct can reach past
94
- * a range a diff of two id sets cut).
95
- */
96
- export declare const walkIdSetRanges: (Y: EngineApi, doc: EngineDoc, idSet: IdSetLike, fn: (struct: StoreStruct, from: number, to: number) => void) => boolean;
67
+ export declare const walkIdSet: (Y: EngineApi, doc: EngineDoc, idSet: IdSetLike, fn: (struct: StoreStruct, from: number, to: number) => boolean | void) => boolean;
97
68
  /**
98
69
  * The id the local `redone` chain leads `id` to: the copy an undo or redo
99
70
  * on THIS replica re-created of a deleted item (redo copies chain), or `id`
@@ -143,8 +114,8 @@ export declare const asYNode: (node: EngineNode) => YNode;
143
114
  /** A new detached node of the engine, through the structural view. */
144
115
  export declare const newNode: (Y: EngineApi, name: string) => EngineNode;
145
116
  /**
146
- * A renderer-free bounded read cursor on `node` (the fork's `RangeCursor`),
147
- * in the caller's view of a cursor.
117
+ * A bounded read cursor on `node` (the fork's `RangeCursor`), in the
118
+ * caller's view of a cursor.
148
119
  */
149
120
  export declare const rangeCursorOf: <C>(Y: EngineApi, node: EngineNode) => C;
150
121
  /**
@@ -159,11 +130,6 @@ export declare const firstItem: <I = StoreStruct>(node: EngineNode | YNode) => I
159
130
  export declare const sequenceLength: (node: EngineNode | YNode) => number;
160
131
  /** The item a node is the value of (`_item`), in the caller's view. */
161
132
  export declare const itemOf: <I = StoreStruct>(node: EngineNode) => I | null;
162
- /**
163
- * Run `f` with `node`'s renderer (vendor `_renderer`) set aside: a write
164
- * addresses live-content space, whatever renderer a reader installed.
165
- */
166
- export declare const withoutRenderer: <T>(node: EngineNode, f: () => T) => T;
167
133
  /** The struct store's reads edytor makes (vendor `doc.store`). */
168
134
  export type StoreLike = {
169
135
  clients: Map<number, StoreStruct[]>;
@@ -195,6 +161,14 @@ export declare const collectNow: (item: object, tr: unknown) => void;
195
161
  * `afterTransaction`), with the caller's view of a transaction.
196
162
  */
197
163
  export declare const onTransaction: <T>(doc: EngineDoc | YDoc, event: "beforeTransaction" | "afterTransaction", f: (tr: T) => void) => void;
164
+ /**
165
+ * Whether a transaction changed one of `nodes` or a node under one: its
166
+ * `changed` types and their ancestors (what a deep observer of `nodes`
167
+ * would have heard; the engine has none, fork patch YP19).
168
+ */
169
+ export declare const changedUnder: (tr: {
170
+ changed: Map<unknown, unknown>;
171
+ }, nodes: readonly unknown[]) => boolean;
198
172
  /** The steps of a history's undo stack (or its redo stack), in the caller's view. */
199
173
  export declare const stepsOf: <S>(stack: YUndoManager["undoStack"]) => S[];
200
174
  /** An engine id set as the model reads and writes it. */
@@ -218,10 +192,31 @@ export declare const engineOps: (Y: EngineApi) => {
218
192
  /** The item starting at `client:clock`, split there, inside `tr`. */
219
193
  cleanStart: <I = StoreStruct>(tr: unknown, client: number, clock: number) => I;
220
194
  /**
221
- * Re-create deleted `item` as the engine's undo does (`redoItem`): its
222
- * copy, or `null` when it cannot come back.
195
+ * Re-create deleted `item` (`redoItem`, fork patch YP18): its copy, or
196
+ * `null` when it cannot come back. `items` are re-created with it (a
197
+ * parent among them first); an attr does not come back over a later
198
+ * write unless `skipped` (the step's inserts) or `deletedByHistory`
199
+ * holds that write.
223
200
  */
224
- redo: <I = StoreStruct>(tr: unknown, item: I, items: Set<I>, um: YUndoManager) => I | null;
201
+ redo: <I = StoreStruct>(tr: unknown, item: I, items: Set<I>, skipped?: IdSetLike, deletedByHistory?: (id: {
202
+ client: number;
203
+ clock: number;
204
+ }) => boolean) => I | null;
205
+ /** Merge id sets into a new one. */
206
+ merge: (sets: IdSetLike[]) => IdSetOf;
207
+ /** Whether a store struct is an item (not a GC or a Skip). */
208
+ isItem: (struct: unknown) => struct is StoreStruct;
209
+ /** Whether `item` sits in `node`'s subtree. */
210
+ inside: (node: EngineNode, item: StoreStruct) => boolean;
211
+ /** Keep `item` (and its parents) from collection (`keepItem`). */
212
+ keep: (item: StoreStruct) => void;
213
+ /** The newest copy a local undo or redo made of `item` (its `redone` chain), split there, inside `tr`. */
214
+ latest: (tr: unknown, item: StoreStruct) => StoreStruct;
215
+ /** Delete `item` inside `tr`. */
216
+ remove: (tr: unknown, item: StoreStruct) => void;
217
+ /** Listen to a doc event (vendor `on`/`off`), with the caller's view of its arguments. */
218
+ on: (doc: EngineDoc, event: string, f: (...args: never[]) => void) => void;
219
+ off: (doc: EngineDoc, event: string, f: (...args: never[]) => void) => void;
225
220
  /**
226
221
  * Integrate a new item holding `content` right after `left` (its
227
222
  * origin: `left`'s last id) in `parent`, written by `client` at
@@ -1,12 +1,34 @@
1
+ /**
2
+ * Vendor internals — the ONE place Edytor code reaches into the engine's
3
+ * private state (the struct store, a node's attr items and first item,
4
+ * the doc's collection settings and transaction events) and calls the
5
+ * engine's internal functions with Edytor's structural views of its
6
+ * objects. Centralizing these keeps the blast radius of a vendored engine
7
+ * upgrade in one module: when an internal is renamed or reshaped, the
8
+ * accessors below are the lines to change, and the fail-fast checks break
9
+ * loudly at upgrade time instead of silently disabling run invalidation or
10
+ * history lineage (the old optional-chained reads turned a rename into a
11
+ * silent no-op).
12
+ *
13
+ * The model works against structural types (`EngineDoc`, `EngineNode`,
14
+ * `StoreStruct`, `IdSetLike`: the subset it reads) while the engine's
15
+ * generated declarations (`vendor/yjs/dts`) type its classes; a real engine
16
+ * object satisfies the structural view at runtime. Each accessor states
17
+ * that correspondence once, so a call site needs no cast.
18
+ *
19
+ * The engine surface is injected (`Y: EngineApi`) like every other bound
20
+ * module — this file never imports vendor `.js`.
21
+ */
22
+ import { DEV } from 'esm-env';
1
23
  /**
2
24
  * The doc's struct store — vendor-internal (`doc.store.clients`).
3
- * FAIL-FAST: a missing store means the doc is not a vendored-engine doc
4
- * (or the vendored layout changed) — either way the only honest response
5
- * is a descriptive throw, never a silent fallback.
25
+ * FAIL-FAST in development: a missing store means the doc is not a
26
+ * vendored-engine doc (or the vendored layout changed) — either way the only
27
+ * honest response is a descriptive throw, never a silent fallback.
6
28
  */
7
29
  export const clientsOf = (doc) => {
8
30
  const clients = doc.store?.clients;
9
- if (clients === undefined) {
31
+ if (DEV && clients === undefined) {
10
32
  throw new Error('structs: doc.store.clients missing — the vendored engine layout changed (or this doc is not a vendored-engine doc)');
11
33
  }
12
34
  return clients;
@@ -28,19 +50,17 @@ export const structAt = (Y, structs, clock) => {
28
50
  }
29
51
  };
30
52
  /**
31
- * Walk every struct an IdSet covers, invoking `fn` per struct in
32
- * (client, clock) order. IdSet ranges are item-aligned (they record whole
33
- * structs), so an overlapping struct is a covered struct — the walk never
34
- * splits.
35
- *
36
- * `fn` returning `false` halts the walk early (caller-side short-circuit).
53
+ * Walk every struct an IdSet covers, in (client, clock) order: `fn(struct,
54
+ * from, to)` gets the struct and the clock range `[from, to)` of it the set
55
+ * covers (a struct can reach past a range a diff of two id sets cut). The
56
+ * walk never splits a struct; `fn` returning `false` halts it.
37
57
  *
38
58
  * Returns `false` when coverage was INCOMPLETE — a client's struct list
39
59
  * was missing or a range start could not be located — so the caller can
40
60
  * fall back to an all-consumers/opaque answer instead of trusting a
41
61
  * partial walk. `clientsOf` throws first when the store itself is absent.
42
62
  */
43
- export const walkIdSetStructs = (Y, doc, idSet, fn) => {
63
+ export const walkIdSet = (Y, doc, idSet, fn) => {
44
64
  const clients = clientsOf(doc);
45
65
  let complete = true;
46
66
  let stopped = false;
@@ -66,7 +86,7 @@ export const walkIdSetStructs = (Y, doc, idSet, fn) => {
66
86
  const s = structs[i];
67
87
  if (s.id.clock >= end)
68
88
  break;
69
- if (fn(s) === false) {
89
+ if (fn(s, Math.max(r.clock, s.id.clock), Math.min(end, s.id.clock + s.length)) === false) {
70
90
  stopped = true;
71
91
  return;
72
92
  }
@@ -75,40 +95,6 @@ export const walkIdSetStructs = (Y, doc, idSet, fn) => {
75
95
  });
76
96
  return complete;
77
97
  };
78
- /**
79
- * {@link walkIdSetStructs}, clipped: `fn(struct, from, to)` gets the clock
80
- * range `[from, to)` of the struct the id set covers (a struct can reach past
81
- * a range a diff of two id sets cut).
82
- */
83
- export const walkIdSetRanges = (Y, doc, idSet, fn) => {
84
- const clients = clientsOf(doc);
85
- let complete = true;
86
- idSet.clients.forEach((ranges, client) => {
87
- const structs = clients.get(client);
88
- if (structs === undefined) {
89
- complete = false;
90
- return;
91
- }
92
- for (const r of ranges.getIds()) {
93
- const end = r.clock + r.len;
94
- let i;
95
- try {
96
- i = Y.findIndexSS(structs, r.clock);
97
- }
98
- catch {
99
- complete = false;
100
- continue;
101
- }
102
- for (; i < structs.length; i++) {
103
- const s = structs[i];
104
- if (s.id.clock >= end)
105
- break;
106
- fn(s, Math.max(r.clock, s.id.clock), Math.min(end, s.id.clock + s.length));
107
- }
108
- }
109
- });
110
- return complete;
111
- };
112
98
  /**
113
99
  * The id the local `redone` chain leads `id` to: the copy an undo or redo
114
100
  * on THIS replica re-created of a deleted item (redo copies chain), or `id`
@@ -172,10 +158,10 @@ export const asYNode = (node) => node;
172
158
  /** A new detached node of the engine, through the structural view. */
173
159
  export const newNode = (Y, name) => new Y.Node(name);
174
160
  /**
175
- * A renderer-free bounded read cursor on `node` (the fork's `RangeCursor`),
176
- * in the caller's view of a cursor.
161
+ * A bounded read cursor on `node` (the fork's `RangeCursor`), in the
162
+ * caller's view of a cursor.
177
163
  */
178
- export const rangeCursorOf = (Y, node) => new Y.RangeCursor(asYNode(node), null);
164
+ export const rangeCursorOf = (Y, node) => new Y.RangeCursor(asYNode(node));
179
165
  // ── node and document internals ──────────────────────────────────────────
180
166
  /**
181
167
  * A node's attr entries (vendor `_map`): per key, the item of its current
@@ -189,21 +175,6 @@ export const firstItem = (node) => node._start ?? null;
189
175
  export const sequenceLength = (node) => node._length;
190
176
  /** The item a node is the value of (`_item`), in the caller's view. */
191
177
  export const itemOf = (node) => node._item;
192
- /**
193
- * Run `f` with `node`'s renderer (vendor `_renderer`) set aside: a write
194
- * addresses live-content space, whatever renderer a reader installed.
195
- */
196
- export const withoutRenderer = (node, f) => {
197
- const n = node;
198
- const renderer = n._renderer;
199
- n._renderer = null;
200
- try {
201
- return f();
202
- }
203
- finally {
204
- n._renderer = renderer;
205
- }
206
- };
207
178
  /** The doc's struct store (vendor `store`). */
208
179
  export const storeOf = (doc) => doc.store;
209
180
  /** Whether `doc` collects deleted content at all (vendor `gc`). */
@@ -230,6 +201,18 @@ export const collectNow = (item, tr) => item.gc(tr, false);
230
201
  * `afterTransaction`), with the caller's view of a transaction.
231
202
  */
232
203
  export const onTransaction = (doc, event, f) => doc.on(event, f);
204
+ /**
205
+ * Whether a transaction changed one of `nodes` or a node under one: its
206
+ * `changed` types and their ancestors (what a deep observer of `nodes`
207
+ * would have heard; the engine has none, fork patch YP19).
208
+ */
209
+ export const changedUnder = (tr, nodes) => {
210
+ for (const type of tr.changed.keys())
211
+ for (let t = type; t; t = t._item?.parent)
212
+ if (nodes.includes(t))
213
+ return true;
214
+ return false;
215
+ };
233
216
  /** The steps of a history's undo stack (or its redo stack), in the caller's view. */
234
217
  export const stepsOf = (stack) => stack;
235
218
  /**
@@ -249,10 +232,36 @@ export const engineOps = (Y) => {
249
232
  /** The item starting at `client:clock`, split there, inside `tr`. */
250
233
  cleanStart: (tr, client, clock) => Y.getItemCleanStart(tr, Y.createID(client, clock)),
251
234
  /**
252
- * Re-create deleted `item` as the engine's undo does (`redoItem`): its
253
- * copy, or `null` when it cannot come back.
235
+ * Re-create deleted `item` (`redoItem`, fork patch YP18): its copy, or
236
+ * `null` when it cannot come back. `items` are re-created with it (a
237
+ * parent among them first); an attr does not come back over a later
238
+ * write unless `skipped` (the step's inserts) or `deletedByHistory`
239
+ * holds that write.
254
240
  */
255
- redo: (tr, item, items, um) => Y.redoItem(tr, item, items, Y.createIdSet(), false, um),
241
+ redo: (tr, item, items, skipped = Y.createIdSet(), deletedByHistory) => Y.redoItem(tr, item, items, skipped, deletedByHistory),
242
+ /** Merge id sets into a new one. */
243
+ merge: (sets) => Y.mergeIdSets(sets),
244
+ /** Whether a store struct is an item (not a GC or a Skip). */
245
+ isItem: (struct) => struct instanceof Y.Item,
246
+ /** Whether `item` sits in `node`'s subtree. */
247
+ inside: (node, item) => Y.isParentOf(asYNode(node), item),
248
+ /** Keep `item` (and its parents) from collection (`keepItem`). */
249
+ keep: (item) => Y.keepItem(item, true),
250
+ /** The newest copy a local undo or redo made of `item` (its `redone` chain), split there, inside `tr`. */
251
+ latest: (tr, item) => {
252
+ if (!item.redone)
253
+ return item;
254
+ const store = tr.doc.store;
255
+ const { item: copy, diff } = Y.followRedone(store, item.id);
256
+ return (diff > 0
257
+ ? Y.getItemCleanStart(tr, Y.createID(copy.id.client, copy.id.clock + diff))
258
+ : copy);
259
+ },
260
+ /** Delete `item` inside `tr`. */
261
+ remove: (tr, item) => item.delete(tr),
262
+ /** Listen to a doc event (vendor `on`/`off`), with the caller's view of its arguments. */
263
+ on: (doc, event, f) => doc.on(event, f),
264
+ off: (doc, event, f) => doc.off(event, f),
256
265
  /**
257
266
  * Integrate a new item holding `content` right after `left` (its
258
267
  * origin: `left`'s last id) in `parent`, written by `client` at