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
@@ -3,48 +3,33 @@
3
3
  */
4
4
 
5
5
  import { ObservableV2 } from 'lib0-v14/observable'
6
- import * as random from 'lib0-v14/random'
7
6
  import * as map from 'lib0-v14/map'
8
- import * as array from 'lib0-v14/array'
9
- import * as promise from 'lib0-v14/promise'
10
7
 
11
8
  import { StructStore } from './StructStore.js'
12
9
  import { transact, generateNewClientId } from './Transaction.js'
13
10
  import { YNode } from '../ynode.js'
14
- import { $doc } from './schemas.js'
15
11
 
16
12
  /**
17
13
  * @typedef {Object} DocOpts
18
14
  * @property {boolean} [DocOpts.gc=true] Disable garbage collection (default: gc=true)
19
15
  * @property {function(Item):boolean} [DocOpts.gcFilter] Will be called before an Item is garbage collected. Return false to keep the Item.
20
- * @property {string} [DocOpts.guid] Define a globally unique identifier for this document
21
- * @property {string | null} [DocOpts.collectionid] Associate this document with a collection. This only plays a role if your provider has a concept of collection.
22
- * @property {any} [DocOpts.meta] Any kind of meta information you want to associate with this document. If this is a subdocument, remote peers will store the meta information as well.
23
- * @property {boolean} [DocOpts.autoLoad] If a subdocument, automatically load document. If this is a subdocument, remote peers will load the document as well automatically.
24
- * @property {boolean} [DocOpts.shouldLoad] Whether the document should be synced by the provider now. This is toggled to true when you call ydoc.load()
25
- * @property {boolean} [DocOpts.isSuggestionDoc] Set to true if this document merely suggests
26
- * changes. If this flag is not set in a suggestion document, automatic formatting changes will be
27
- * displayed as suggestions, which might not be intended.
28
16
  */
29
17
 
30
18
  /**
31
19
  * @typedef {Object} DocEvents
32
20
  * @property {function(Doc):void} DocEvents.destroy
33
- * @property {function(Doc):void} DocEvents.load
34
- * @property {function(boolean, Doc):void} DocEvents.sync
35
21
  * @property {function(Uint8Array<ArrayBuffer>, any, Doc, Transaction):void} DocEvents.update
36
- * @property {function(Uint8Array<ArrayBuffer>, any, Doc, Transaction):void} DocEvents.updateV2
37
22
  * @property {function(Doc):void} DocEvents.beforeAllTransactions
38
23
  * @property {function(Transaction, Doc):void} DocEvents.beforeTransaction
39
- * @property {function(Transaction, Doc):void} DocEvents.beforeObserverCalls
24
+ * @property {function(Transaction, Doc):void} DocEvents.commit
40
25
  * @property {function(Transaction, Doc):void} DocEvents.afterTransaction
41
- * @property {function(Transaction, Doc):void} DocEvents.afterTransactionCleanup
42
26
  * @property {function(Doc, Array<Transaction>):void} DocEvents.afterAllTransactions
43
- * @property {function({ loaded: Set<Doc>, added: Set<Doc>, removed: Set<Doc> }, Doc, Transaction):void} DocEvents.subdocs
44
27
  */
45
28
 
46
29
  /**
47
- * A Yjs instance handles the state of shared data.
30
+ * A Yjs instance handles the state of shared data. YP19: no subdocuments,
31
+ * no load/sync state, no guid — a document is its store, its root nodes and
32
+ * its transaction events.
48
33
  * @extends ObservableV2<DocEvents>
49
34
  */
50
35
  export class Doc extends ObservableV2 {
@@ -58,7 +43,7 @@ export class Doc extends ObservableV2 {
58
43
  /**
59
44
  * @param {DocOpts} opts configuration
60
45
  */
61
- constructor ({ guid = random.uuidv4(), collectionid = null, gc = true, gcFilter = () => true, meta = null, autoLoad = false, shouldLoad = true, isSuggestionDoc = false } = {}) {
46
+ constructor ({ gc = true, gcFilter = () => true } = {}) {
62
47
  super()
63
48
  this.gc = gc
64
49
  this.gcFilter = gcFilter
@@ -70,10 +55,6 @@ export class Doc extends ObservableV2 {
70
55
  */
71
56
  this.keepReplaced = null
72
57
  this.clientID = generateNewClientId()
73
- this.guid = guid
74
- this.collectionid = collectionid
75
- this.isSuggestionDoc = isSuggestionDoc
76
- this.cleanupFormatting = !isSuggestionDoc
77
58
  /**
78
59
  * YP13: the greatest Lamport timestamp of a paired mark this document
79
60
  * integrated (see `utils/marks.js`).
@@ -93,95 +74,7 @@ export class Doc extends ObservableV2 {
93
74
  * @type {Array<Transaction>}
94
75
  */
95
76
  this._transactionCleanups = []
96
- /**
97
- * @type {Set<Doc>}
98
- */
99
- this.subdocs = new Set()
100
- /**
101
- * If this document is a subdocument - a document integrated into another document - then _item is defined.
102
- * @type {Item?}
103
- */
104
- this._item = null
105
- this.shouldLoad = shouldLoad
106
- this.autoLoad = autoLoad
107
- this.meta = meta
108
- /**
109
- * This is set to true when the persistence provider loaded the document from the database or when the `sync` event fires.
110
- * Note that not all providers implement this feature. Provider authors are encouraged to fire the `load` event when the doc content is loaded from the database.
111
- *
112
- * @type {boolean}
113
- */
114
- this.isLoaded = false
115
- /**
116
- * This is set to true when the connection provider has successfully synced with a backend.
117
- * Note that when using peer-to-peer providers this event may not provide very useful.
118
- * Also note that not all providers implement this feature. Provider authors are encouraged to fire
119
- * the `sync` event when the doc has been synced (with `true` as a parameter) or if connection is
120
- * lost (with false as a parameter).
121
- */
122
- this.isSynced = false
123
77
  this.isDestroyed = false
124
- /**
125
- * Promise that resolves once the document has been loaded from a persistence provider.
126
- */
127
- this.whenLoaded = promise.create(resolve => {
128
- this.on('load', () => {
129
- this.isLoaded = true
130
- resolve(this)
131
- })
132
- })
133
- const provideSyncedPromise = () => promise.create(resolve => {
134
- /**
135
- * @param {boolean} isSynced
136
- */
137
- const eventHandler = (isSynced) => {
138
- if (isSynced === undefined || isSynced === true) {
139
- this.off('sync', eventHandler)
140
- resolve()
141
- }
142
- }
143
- this.on('sync', eventHandler)
144
- })
145
- this.on('sync', isSynced => {
146
- if (isSynced === false && this.isSynced) {
147
- this.whenSynced = provideSyncedPromise()
148
- }
149
- this.isSynced = isSynced === undefined || isSynced === true
150
- if (this.isSynced && !this.isLoaded) {
151
- this.emit('load', [this])
152
- }
153
- })
154
- /**
155
- * Promise that resolves once the document has been synced with a backend.
156
- * This promise is recreated when the connection is lost.
157
- * Note the documentation about the `isSynced` property.
158
- */
159
- this.whenSynced = provideSyncedPromise()
160
- }
161
-
162
- /**
163
- * Notify the parent document that you request to load data into this subdocument (if it is a subdocument).
164
- *
165
- * `load()` might be used in the future to request any provider to load the most current data.
166
- *
167
- * It is safe to call `load()` multiple times.
168
- */
169
- load () {
170
- const item = this._item
171
- if (item !== null && !this.shouldLoad) {
172
- transact(/** @type {any} */ (item.parent).doc, transaction => {
173
- transaction.subdocsLoaded.add(this)
174
- }, null, true)
175
- }
176
- this.shouldLoad = true
177
- }
178
-
179
- getSubdocs () {
180
- return this.subdocs
181
- }
182
-
183
- getSubdocGuids () {
184
- return new Set(array.from(this.subdocs).map(doc => doc.guid))
185
78
  }
186
79
 
187
80
  /**
@@ -193,83 +86,34 @@ export class Doc extends ObservableV2 {
193
86
  * @template T
194
87
  * @param {function(Transaction):T} f The function that should be executed as a transaction
195
88
  * @param {any} [origin] Origin of who started the transaction. Will be stored on transaction.origin
196
- * @param {boolean} [local]
197
89
  * @return T
90
+ *
91
+ * @public
198
92
  */
199
- transact (f, origin = null, local = true) {
200
- return transact(this, f, origin, local)
93
+ transact (f, origin = null) {
94
+ return transact(this, f, origin)
201
95
  }
202
96
 
203
97
  /**
204
- * Define a shared data type.
205
- *
206
- * Multiple calls of `ydoc.get(name)` yield the same result
207
- * and do not overwrite each other. I.e.
208
- * `ydoc.get(name) === ydoc.get(name)`
209
- *
210
- * After this method is called, the type is also available on `ydoc.share.get(name)`.
211
- *
212
- * @param {string} key
213
- * @param {string?} name Type-name
98
+ * The root node named `key`, created on first access.
214
99
  *
100
+ * @param {string} [key]
215
101
  * @return {YNode}
216
102
  */
217
- get (key = '', name = null) {
103
+ get (key = '') {
218
104
  return map.setIfUndefined(this.share, key, () => {
219
- const t = new YNode(name)
105
+ const t = new YNode(null)
220
106
  t._integrate(this, null)
221
107
  return t
222
108
  })
223
109
  }
224
110
 
225
111
  /**
226
- * Converts the entire document into a js object, recursively traversing each yjs type
227
- * Doesn't log types that have not been defined (using ydoc.getType(..)).
228
- *
229
- * @deprecated Do not use this method and rather call toJSON directly on the shared types.
230
- *
231
- * @return {Object<string, any>}
232
- */
233
- toJSON () {
234
- /**
235
- * @type {Object<string, any>}
236
- */
237
- const doc = {}
238
- this.share.forEach((value, key) => {
239
- doc[key] = value.toJSON()
240
- })
241
- return doc
242
- }
243
-
244
- /**
245
- * Emit `destroy` event and unregister all event handlers.
112
+ * Emit `destroy` to the document's listeners and drop them.
246
113
  */
247
114
  destroy () {
248
115
  this.isDestroyed = true
249
- // Tear down the top-level shared types as RDTs (emits their `'destroy'` event so any bindings
250
- // unsubscribe). Only top-level types are destroyed here; nested child types are not recursed.
251
- this.share.forEach(type => type.destroy())
252
- array.from(this.subdocs).forEach(subdoc => subdoc.destroy())
253
- const item = this._item
254
- if (item !== null) {
255
- this._item = null
256
- const content = /** @type {ContentDoc} */ (item.content)
257
- /**
258
- * new content doc which replaces the new one
259
- */
260
- const contentDoc = new Doc({ guid: this.guid, ...content.opts, shouldLoad: false })
261
- content.doc = contentDoc
262
- contentDoc._item = item
263
- transact(/** @type {any} */ (item).parent.doc, transaction => {
264
- if (!item.deleted) {
265
- transaction.subdocsAdded.add(contentDoc)
266
- }
267
- transaction.subdocsRemoved.add(this)
268
- }, null, true)
269
- }
270
116
  this.emit('destroy', [this])
271
117
  super.destroy()
272
118
  }
273
119
  }
274
-
275
- Doc.prototype.$type = $doc
@@ -42,7 +42,7 @@ export const createID = (client, clock) => new ID(client, clock)
42
42
  * `type` does not store any information about the `keyname`.
43
43
  * This function finds the correct `keyname` for `type` and throws otherwise.
44
44
  *
45
- * @param {YNode<any>} type
45
+ * @param {YNode} type
46
46
  * @return {string}
47
47
  *
48
48
  * @private
@@ -7,9 +7,9 @@
7
7
  * search-marker checkpoints (the `formats` snapshots YP4 added for
8
8
  * `applyDelta`'s mutation-cursor seeding are exactly the checkpoints a
9
9
  * format-aware range read needs) and emits one {@link RangePiece} per
10
- * visible piece overlapping the range — the SAME physical-sequence
11
- * interpretation `YNode#toDelta` renders with (`readItemPieces`), folded
12
- * by `updateCurrentFormats`, measured by `rendererContentLength`.
10
+ * visible piece overlapping the range — the live content, folded by
11
+ * `updateCurrentFormats`, measured by `liveLength` (the same interpretation
12
+ * the write cursor, `ItemTextListPosition`, walks with).
13
13
  *
14
14
  * Cold reads leave sparse format-aware checkpoints behind their walk at
15
15
  * `READ_PLANT_GAP`-item cadence (`plantSearchMarker`) — `findMarker`'s
@@ -19,7 +19,7 @@
19
19
  *
20
20
  * Reads are pure with respect to replicated state: they never open a
21
21
  * transaction — no updates are produced, no items are split, no undo
22
- * state changes, no renderer is installed or mutated. The only writes
22
+ * state changes. The only writes
23
23
  * are to the node's local `_searchMarker` pool — the same adaptive
24
24
  * checkpoint maintenance upstream's own read-path lookups perform via
25
25
  * `findMarker` (`typeListGet`, position resolution) — non-replicated,
@@ -32,8 +32,7 @@ import { ContentFormat } from '../structs/Item.js'
32
32
  import { plantSearchMarker } from '../ynode.js'
33
33
 
34
34
  import { createID } from './ID.js'
35
- import { rendererContentLength, readItemPieces } from './renderer-helpers.js'
36
- import { updateCurrentFormats } from './transaction-helpers.js'
35
+ import { updateCurrentFormats, liveLength } from './transaction-helpers.js'
37
36
  import { formatValue } from './marks.js' // YP13
38
37
 
39
38
  /**
@@ -46,29 +45,25 @@ const READ_PLANT_GAP = 64
46
45
 
47
46
  /**
48
47
  * One element of the bounded read stream produced by {@link RangeCursor#read}
49
- * — the read-side analogue of a delta op's content payload, carrying the same
50
- * attribution inputs `YNode#toDelta` consumes (mode `1` semantics).
48
+ * — one live piece of content overlapping the range, with the formats folded
49
+ * at it.
51
50
  *
52
51
  * @typedef {Object} RangePiece
53
52
  * @property {AbstractContent} content - the piece's content object. BORROWED
54
- * from the item (never mutated, never copied) or produced by the renderer.
53
+ * from the item (never mutated, never copied).
55
54
  * Emit `[offset, offset + len)` of it: slice `content.str` for
56
- * `ContentString` (UTF-16 units — identical to clipping a `toDelta` insert
57
- * op's string) and index `content.getContent()` for element content.
55
+ * `ContentString` (UTF-16 units) and index `content.getContent()` for
56
+ * element content.
58
57
  * @property {ID} id - replicated id of the first emitted element.
59
58
  * @property {number} index - rendered position the emitted range starts at.
60
59
  * @property {number} offset - start of the emitted range inside `content`.
61
- * @property {number} len - rendered length of the emitted range. `0` for
62
- * `ContentFormat` markers and for pieces occupying no rendered position
63
- * (renderer-hidden or unattributed tombstones).
64
- * @property {boolean} deleted - effective tombstone flag (renderer-aware: a
65
- * restored piece clears it, an attributed tombstone keeps it).
66
- * @property {Array<ContentAttribute<any>>?} attrs - native attribution
67
- * inputs (`createAttributionFromAttributionItems` computes the delta-level
68
- * `Attribution` from them); `null` when unattributed.
60
+ * @property {number} len - rendered length of the emitted range (`0` for a
61
+ * live piece occupying no position).
62
+ * @property {boolean} deleted - always `false`: a read emits live content only.
63
+ * @property {null} attrs - always `null` (no attribution layer).
69
64
  * @property {Object<string,any>|undefined} formats - folded format state at
70
- * the piece (the `toDelta` `format` object equivalent). SHARED between
71
- * adjacent pieces of one fold state — treat as read-only.
65
+ * the piece. SHARED between adjacent pieces of one fold state — treat as
66
+ * read-only.
72
67
  */
73
68
 
74
69
  /**
@@ -79,20 +74,13 @@ const READ_PLANT_GAP = 64
79
74
  */
80
75
  export class RangeCursor {
81
76
  /**
82
- * @param {YNode<any>} parent - the list node to read.
83
- * @param {AbstractRenderer?} [renderer] - defaults to the node's active
84
- * renderer (`this._renderer`), the `toDelta`/`applyDelta` convention.
85
- * Pass `null` to force the generic interpretation.
77
+ * @param {YNode} parent - the list node to read.
86
78
  */
87
- constructor (parent, renderer = parent._renderer) {
79
+ constructor (parent) {
88
80
  /**
89
- * @type {YNode<any>}
81
+ * @type {YNode}
90
82
  */
91
83
  this.parent = parent
92
- /**
93
- * @type {AbstractRenderer?}
94
- */
95
- this.renderer = renderer
96
84
  /**
97
85
  * The next unprocessed sequence item — a parked cursor keeps `index` at
98
86
  * its left edge.
@@ -102,7 +90,7 @@ export class RangeCursor {
102
90
  /**
103
91
  * Rendered units strictly before `p` — the
104
92
  * `ItemTextListPosition#index`/`ArraySearchMarker#index` space
105
- * (countable, non-deleted units while `renderer === null`).
93
+ * (countable, non-deleted units).
106
94
  * @type {number}
107
95
  */
108
96
  this.index = 0
@@ -136,23 +124,19 @@ export class RangeCursor {
136
124
  * from the best engine-owned checkpoint — an `ArraySearchMarker`
137
125
  * carrying a `formats` snapshot.
138
126
  *
139
- * Read-seed eligibility is deliberately WEAKER than `applyDelta`'s
140
- * mutation seed (UPSTREAM.md YP5): a read may resume on ANY item at-or-left
127
+ * Read-seed eligibility is deliberately WEAKER than the write cursor's
128
+ * seed (UPSTREAM.md YP5): a read may resume on ANY item at-or-left
141
129
  * of the target — the forward fold reproduces format state from the
142
130
  * snapshot — while the mutation cursor must anchor on the FIRST item at
143
131
  * the index (its `p.left` must be countable-or-null). Both consume the
144
132
  * same marker records and snapshots.
145
133
  *
146
- * Restricted to `renderer === null` for the same reason the mutation seed
147
- * is: `marker.index` records the raw countable space, which a renderer's
148
- * `contentLength` can reinterpret.
149
- *
150
134
  * @param {number} index
151
135
  */
152
136
  seek (index) {
153
137
  const parent = this.parent
154
138
  const ms = parent._searchMarker
155
- if (ms === null || this.renderer !== null) return
139
+ if (ms === null) return
156
140
  /**
157
141
  * @type {import('../structs/Item.js').Item?}
158
142
  */
@@ -202,18 +186,16 @@ export class RangeCursor {
202
186
  }
203
187
 
204
188
  /**
205
- * Fold one `ContentFormat` piece into the cursor's format state — the
206
- * `!deleted` gate mirrors `ItemTextListPosition#forward`/`toDelta`: a
207
- * tombstoned marker (or a piece the renderer renders as deleted) applies
208
- * nothing.
189
+ * Fold one `ContentFormat` item into the cursor's format state — the
190
+ * `!deleted` gate mirrors `ItemTextListPosition#forward`: a tombstoned
191
+ * marker applies nothing.
209
192
  *
210
- * @param {AttributedContent<any>} c
193
+ * @param {import('../structs/Item.js').Item} item
211
194
  * @param {{ markers: number }?} stats
212
195
  */
213
- _foldPiece (c, stats) {
214
- if (c.content.constructor !== ContentFormat) return
215
- if (!c.deleted) {
216
- updateCurrentFormats(this.currentFormats, /** @type {ContentFormat} */ (c.content))
196
+ _foldItem (item, stats) {
197
+ if (!item.deleted) {
198
+ updateCurrentFormats(this.currentFormats, /** @type {ContentFormat} */ (item.content))
217
199
  this._formatsObj = null
218
200
  }
219
201
  if (stats !== null) stats.markers++
@@ -242,9 +224,8 @@ export class RangeCursor {
242
224
 
243
225
  /**
244
226
  * Emit the {@link RangePiece}s of `[i0, i1)` — a bounded, read-only walk
245
- * of the item list producing the same pieces `toDelta`'s current-state
246
- * render consumes (`readItemPieces`), clipped to the range and carrying
247
- * folded format state + native attribution inputs.
227
+ * of the item list producing its live content, clipped to the range and
228
+ * carrying the folded format state.
248
229
  *
249
230
  * The cursor is left positioned to serve the NEXT forward read cheaply:
250
231
  * items fully consumed advance `p`/`index`; a range ending inside an
@@ -272,30 +253,19 @@ export class RangeCursor {
272
253
  if (i0 > this.index) {
273
254
  this.seek(i0)
274
255
  }
275
- /**
276
- * Per-item attributed pieces buffer (reused across items), plus the
277
- * trivial-piece scratch `readItemPieces` reuses — `cs` is drained
278
- * before the next item, so one allocation serves the whole read.
279
- * @type {Array<AttributedContent<any>>}
280
- */
281
- const cs = []
282
- /**
283
- * @type {AttributedContent<any>?}
284
- */
285
- let csScratch = null
286
256
  // Items stepped since the cursor passed the last checkpoint — a sparse
287
257
  // marker is recorded at every `READ_PLANT_GAP` boundary during a cold
288
258
  // walk (the checkpoint pool only fills where work actually happens —
289
259
  // `findMarker`'s merge-left rule cannot anchor mid-run in
290
260
  // same-client-contiguous lists, so read-driven planting is what makes
291
- // read-only workloads bounded). Index space is the raw countable one,
292
- // hence the `renderer === null` gate — same space markers record.
261
+ // read-only workloads bounded). Index space is the raw countable one —
262
+ // the same space markers record.
293
263
  let stepsSincePlant = 0
294
- const planting = this.renderer === null && parent._searchMarker !== null
264
+ const planting = parent._searchMarker !== null
295
265
  while (this.p !== null) {
296
266
  const item = this.p
297
267
  const start = this.index
298
- const end = start + rendererContentLength(this.renderer, item)
268
+ const end = start + liveLength(item)
299
269
  if (stats !== null) stats.items++
300
270
  if (end <= i0) {
301
271
  // Boundary checkpoint — BEFORE folding the item (the snapshot is
@@ -304,16 +274,9 @@ export class RangeCursor {
304
274
  plantSearchMarker(parent, item, start, this.currentFormats)
305
275
  stepsSincePlant = 0
306
276
  }
307
- // Prefix item — only format state can matter. `readItemPieces`
308
- // gives marker pieces their effective `deleted` flag (renderer-
309
- // aware), identical to `toDelta`'s fold.
277
+ // Prefix item — only format state can matter.
310
278
  if (item.content.constructor === ContentFormat) {
311
- cs.length = 0
312
- readItemPieces(cs, this.renderer, item, csScratch)
313
- if (csScratch === null) csScratch = cs[0] ?? null
314
- for (let k = 0; k < cs.length; k++) {
315
- this._foldPiece(cs[k], stats)
316
- }
279
+ this._foldItem(item, stats)
317
280
  }
318
281
  this.index = end
319
282
  this.p = item.right
@@ -325,72 +288,42 @@ export class RangeCursor {
325
288
  plantSearchMarker(parent, item, start, this.currentFormats)
326
289
  stepsSincePlant = 0
327
290
  }
328
- // Overlapping item — produce its attributed pieces (the shared
329
- // physical-sequence interpretation).
330
- cs.length = 0
331
- readItemPieces(cs, this.renderer, item, csScratch)
332
- if (csScratch === null) csScratch = cs[0] ?? null
333
- /**
334
- * Rendered position of the piece currently being processed.
335
- * @type {number}
336
- */
337
- let pix = start
338
- for (let k = 0; k < cs.length; k++) {
339
- const c = cs[k]
340
- const content = c.content
341
- if (content.constructor === ContentFormat) {
342
- this._foldPiece(c, stats)
343
- // Marker pieces reach the stream only when attributed — they
344
- // occupy no rendered position.
345
- if (c.attrs != null) {
291
+ // Overlapping item: a format marker folds (it occupies no position),
292
+ // a tombstone shows nothing, live content emits its part of the range.
293
+ const content = item.content
294
+ if (content.constructor === ContentFormat) {
295
+ this._foldItem(item, stats)
296
+ } else if (!item.deleted) {
297
+ const plen = content.isCountable() ? content.getLength() : 0
298
+ if (plen === 0) {
299
+ if (start >= i0 && start < i1) {
346
300
  out.push({
347
301
  content,
348
- id: createID(item.id.client, c.clock),
349
- index: pix,
302
+ id: item.id,
303
+ index: start,
350
304
  offset: 0,
351
305
  len: 0,
352
- deleted: c.deleted,
353
- attrs: c.attrs,
306
+ deleted: false,
307
+ attrs: null,
354
308
  formats: this._emitFormats()
355
309
  })
356
310
  }
357
- continue
358
- }
359
- // Rendered length of this piece: `render` is the mode-1 flag
360
- // (`!deleted || attrs != null`) — deleted unattributed pieces
361
- // occupy no rendered position, attributed tombstones do (they
362
- // render as deletes).
363
- const plen = c.render && content.isCountable() ? content.getLength() : 0
364
- if (plen === 0) {
365
- if (pix >= i0 && pix < i1) {
311
+ } else {
312
+ const lo = math.max(i0, start)
313
+ const hi = math.min(i1, start + plen)
314
+ if (lo < hi) {
366
315
  out.push({
367
316
  content,
368
- id: createID(item.id.client, c.clock),
369
- index: pix,
370
- offset: 0,
371
- len: 0,
372
- deleted: c.deleted,
373
- attrs: c.attrs,
317
+ id: createID(item.id.client, item.id.clock + (lo - start)),
318
+ index: lo,
319
+ offset: lo - start,
320
+ len: hi - lo,
321
+ deleted: false,
322
+ attrs: null,
374
323
  formats: this._emitFormats()
375
324
  })
376
325
  }
377
- continue
378
- }
379
- const lo = math.max(i0, pix)
380
- const hi = math.min(i1, pix + plen)
381
- if (lo < hi) {
382
- out.push({
383
- content,
384
- id: createID(item.id.client, c.clock + (lo - pix)),
385
- index: lo,
386
- offset: lo - pix,
387
- len: hi - lo,
388
- deleted: c.deleted,
389
- attrs: c.attrs,
390
- formats: this._emitFormats()
391
- })
392
326
  }
393
- pix += plen
394
327
  }
395
328
  if (end > i1) return out // range ends inside this item — stay parked at its left edge
396
329
  // Item fully consumed — the boundary at `end` is the next item's left
@@ -56,16 +56,6 @@ export class StructStore {
56
56
  structs.push(struct)
57
57
  }
58
58
 
59
- /**
60
- * Expects that id is actually in store. This function throws or is an infinite loop otherwise.
61
- *
62
- * @param {ID} id
63
- * @return {GC|Item}
64
- */
65
- get (id) {
66
- const structs = /** @type {Array<GC|Item>} */ (this.clients.get(id.client))
67
- return structs[findIndexSS(structs, id.clock)]
68
- }
69
59
 
70
60
  /**
71
61
  * Expects that id is actually in store. This function throws or is an infinite loop otherwise.
@@ -96,18 +86,6 @@ export class StructStore {
96
86
  return lastStruct.id.clock + lastStruct.length
97
87
  }
98
88
 
99
- /**
100
- * Perform a binary search on a sorted array
101
- * @param {ID} id
102
- * @return {{ structs: Array<GC|Item|Skip>, index: number }}
103
- *
104
- * @function
105
- */
106
- getIndex (id) {
107
- const structs = this.clients.get(id.client) || []
108
- const index = findIndexSS(structs, id.clock)
109
- return { structs, index }
110
- }
111
89
  }
112
90
 
113
91
  /**