edytor 1.0.0-rc.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. package/README.md +65 -25
  2. package/dist/block/block.svelte.d.ts +10 -85
  3. package/dist/block/block.svelte.js +47 -141
  4. package/dist/block/colors.d.ts +0 -9
  5. package/dist/block/colors.js +1 -18
  6. package/dist/block/contentRange.d.ts +5 -1
  7. package/dist/block/contentRange.js +15 -16
  8. package/dist/block/inlineBlock.svelte.d.ts +8 -10
  9. package/dist/block/inlineBlock.svelte.js +14 -22
  10. package/dist/clipboard/createClipboardFragment.js +22 -64
  11. package/dist/clipboard/fragmentData.js +17 -42
  12. package/dist/clipboard/htmlFlow.d.ts +6 -1
  13. package/dist/clipboard/htmlFlow.js +26 -13
  14. package/dist/clipboard/insertClipboardFragment.js +5 -4
  15. package/dist/clipboard/moveText.js +16 -8
  16. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  17. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  18. package/dist/cloudflare/DocumentRoom.d.ts +22 -17
  19. package/dist/cloudflare/DocumentRoom.js +10 -5
  20. package/dist/cloudflare/index.d.ts +1 -1
  21. package/dist/cloudflare/index.js +1 -1
  22. package/dist/cloudflare/move.d.ts +1 -18
  23. package/dist/cloudflare/move.js +2 -48
  24. package/dist/cloudflare/room/admission.d.ts +1 -60
  25. package/dist/cloudflare/room/admission.js +25 -29
  26. package/dist/cloudflare/room/comments.d.ts +1 -3
  27. package/dist/cloudflare/room/comments.js +6 -6
  28. package/dist/cloudflare/room/context.d.ts +20 -82
  29. package/dist/cloudflare/room/context.js +8 -8
  30. package/dist/cloudflare/room/forged.d.ts +1 -1
  31. package/dist/cloudflare/room/forged.js +2 -12
  32. package/dist/cloudflare/room/frames.d.ts +1 -1
  33. package/dist/cloudflare/room/frames.js +1 -1
  34. package/dist/cloudflare/room/history.d.ts +1 -25
  35. package/dist/cloudflare/room/history.js +39 -54
  36. package/dist/cloudflare/room/moves.d.ts +1 -13
  37. package/dist/cloudflare/room/moves.js +33 -57
  38. package/dist/cloudflare/room/presence.d.ts +1 -11
  39. package/dist/cloudflare/room/presence.js +4 -4
  40. package/dist/cloudflare/room/purge.d.ts +1 -2
  41. package/dist/cloudflare/room/purge.js +2 -2
  42. package/dist/cloudflare/room/replicas.d.ts +1 -7
  43. package/dist/cloudflare/room/replicas.js +2 -2
  44. package/dist/cloudflare/room/storage.d.ts +9 -30
  45. package/dist/cloudflare/room/storage.js +52 -104
  46. package/dist/cloudflare/room/updates.d.ts +4 -4
  47. package/dist/cloudflare/room/updates.js +17 -24
  48. package/dist/cloudflare/room/validation.d.ts +1 -5
  49. package/dist/cloudflare/room/validation.js +16 -37
  50. package/dist/collaboration/RemoteSelections.svelte +13 -17
  51. package/dist/collaboration/comments/client.d.ts +2 -2
  52. package/dist/collaboration/comments/client.js +1 -1
  53. package/dist/collaboration/history/index.d.ts +5 -5
  54. package/dist/collaboration/history/index.js +5 -5
  55. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  56. package/dist/collaboration/history/panel.svelte.js +223 -0
  57. package/dist/collaboration/providers.d.ts +12 -3
  58. package/dist/collaboration/providers.js +5 -4
  59. package/dist/components/Block.svelte +160 -119
  60. package/dist/components/Block.svelte.d.ts +8 -3
  61. package/dist/components/Content.svelte +91 -44
  62. package/dist/components/CustomMark.svelte +46 -0
  63. package/dist/components/CustomMark.svelte.d.ts +11 -0
  64. package/dist/components/Edytor.svelte +80 -95
  65. package/dist/components/Edytor.svelte.d.ts +8 -12
  66. package/dist/components/InlineBlock.svelte +4 -9
  67. package/dist/components/Mark.svelte +46 -35
  68. package/dist/components/Mark.svelte.d.ts +7 -0
  69. package/dist/components/Ranges.svelte +96 -0
  70. package/dist/components/Ranges.svelte.d.ts +19 -0
  71. package/dist/components/Suggestion.svelte +3 -2
  72. package/dist/components/Text.svelte +48 -14
  73. package/dist/components/Text.svelte.d.ts +1 -1
  74. package/dist/crdt/admission.d.ts +2 -9
  75. package/dist/crdt/admission.js +3 -9
  76. package/dist/crdt/attribution/attribution.d.ts +11 -72
  77. package/dist/crdt/attribution/attribution.js +5 -52
  78. package/dist/crdt/attribution/block.d.ts +0 -78
  79. package/dist/crdt/attribution/block.js +1 -144
  80. package/dist/crdt/data.d.ts +8 -13
  81. package/dist/crdt/data.js +30 -70
  82. package/dist/crdt/doc/anchors.js +4 -4
  83. package/dist/crdt/doc/content.d.ts +5 -1
  84. package/dist/crdt/doc/content.js +3 -1
  85. package/dist/crdt/doc/delete.d.ts +1 -0
  86. package/dist/crdt/doc/funnel.d.ts +0 -23
  87. package/dist/crdt/doc/funnel.js +34 -85
  88. package/dist/crdt/doc/gate.d.ts +8 -9
  89. package/dist/crdt/doc/gate.js +7 -17
  90. package/dist/crdt/doc/history.d.ts +87 -14
  91. package/dist/crdt/doc/history.js +334 -149
  92. package/dist/crdt/doc/layout.d.ts +0 -1
  93. package/dist/crdt/doc/layout.js +2 -3
  94. package/dist/crdt/doc/meta.d.ts +4 -4
  95. package/dist/crdt/doc/meta.js +10 -21
  96. package/dist/crdt/doc/moves.d.ts +4 -4
  97. package/dist/crdt/doc/moves.js +5 -5
  98. package/dist/crdt/doc/plan.d.ts +2 -0
  99. package/dist/crdt/doc/plan.js +2 -0
  100. package/dist/crdt/doc/reads.d.ts +1 -5
  101. package/dist/crdt/doc/reads.js +38 -49
  102. package/dist/crdt/doc/seed.d.ts +15 -6
  103. package/dist/crdt/doc/seed.js +27 -26
  104. package/dist/crdt/doc/split-merge.d.ts +1 -3
  105. package/dist/crdt/doc/split-merge.js +4 -5
  106. package/dist/crdt/doc/steps.d.ts +3 -7
  107. package/dist/crdt/doc/steps.js +20 -9
  108. package/dist/crdt/doc/types.d.ts +0 -10
  109. package/dist/crdt/document.d.ts +24 -115
  110. package/dist/crdt/document.js +207 -305
  111. package/dist/crdt/edytor-doc.d.ts +671 -90
  112. package/dist/crdt/edytor-doc.js +73 -149
  113. package/dist/crdt/engine-api.d.ts +15 -47
  114. package/dist/crdt/engine.d.ts +7 -17
  115. package/dist/crdt/engine.js +9 -19
  116. package/dist/crdt/flow.d.ts +9 -37
  117. package/dist/crdt/flow.js +260 -238
  118. package/dist/crdt/index.d.ts +26 -85
  119. package/dist/crdt/index.js +21 -47
  120. package/dist/crdt/operations.d.ts +24 -33
  121. package/dist/crdt/operations.js +7 -17
  122. package/dist/crdt/placement/display.d.ts +0 -2
  123. package/dist/crdt/placement/display.js +0 -15
  124. package/dist/crdt/placement/model.d.ts +160 -12
  125. package/dist/crdt/placement/model.js +413 -414
  126. package/dist/crdt/placement/rank.d.ts +1 -5
  127. package/dist/crdt/placement/rank.js +28 -38
  128. package/dist/crdt/protocol.d.ts +4 -5
  129. package/dist/crdt/protocol.js +3 -4
  130. package/dist/crdt/protocols/awareness.d.ts +3 -7
  131. package/dist/crdt/protocols/awareness.js +17 -33
  132. package/dist/crdt/protocols/envelope.d.ts +9 -29
  133. package/dist/crdt/protocols/envelope.js +8 -25
  134. package/dist/crdt/protocols/sync.d.ts +15 -30
  135. package/dist/crdt/protocols/sync.js +27 -89
  136. package/dist/crdt/providers/bound.d.ts +3 -1
  137. package/dist/crdt/providers/bound.js +3 -1
  138. package/dist/crdt/providers/container.d.ts +11 -17
  139. package/dist/crdt/providers/container.js +39 -27
  140. package/dist/crdt/providers/index.d.ts +34 -6
  141. package/dist/crdt/providers/index.js +106 -111
  142. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  143. package/dist/crdt/providers/indexeddb.js +29 -90
  144. package/dist/crdt/providers/room.d.ts +58 -2
  145. package/dist/crdt/providers/room.js +38 -21
  146. package/dist/crdt/providers/websocket.d.ts +1 -1
  147. package/dist/crdt/providers/websocket.js +3 -4
  148. package/dist/crdt/purge.d.ts +2 -2
  149. package/dist/crdt/purge.js +69 -6
  150. package/dist/crdt/rangeDelete.d.ts +4 -42
  151. package/dist/crdt/rangeDelete.js +7 -6
  152. package/dist/crdt/restore.d.ts +21 -1
  153. package/dist/crdt/restore.js +54 -59
  154. package/dist/crdt/schema.d.ts +2 -2
  155. package/dist/crdt/schema.js +4 -5
  156. package/dist/crdt/semantics.d.ts +10 -15
  157. package/dist/crdt/semantics.js +22 -21
  158. package/dist/crdt/storage.d.ts +7 -13
  159. package/dist/crdt/storage.js +10 -24
  160. package/dist/crdt/structs.d.ts +42 -47
  161. package/dist/crdt/structs.js +76 -67
  162. package/dist/crdt/tables.d.ts +9 -0
  163. package/dist/crdt/tables.js +20 -0
  164. package/dist/crdt/text/delete-index.d.ts +0 -13
  165. package/dist/crdt/text/delete-index.js +7 -14
  166. package/dist/crdt/text/deletes.d.ts +9 -22
  167. package/dist/crdt/text/deletes.js +11 -74
  168. package/dist/crdt/text/index/cache.js +3 -3
  169. package/dist/crdt/text/index/fold.d.ts +1 -2
  170. package/dist/crdt/text/index/fold.js +15 -10
  171. package/dist/crdt/text/index/layout.d.ts +0 -10
  172. package/dist/crdt/text/index/layout.js +6 -20
  173. package/dist/crdt/text/index/records.js +2 -1
  174. package/dist/crdt/text/index/report.js +5 -6
  175. package/dist/crdt/text/index/shared.d.ts +11 -4
  176. package/dist/crdt/text/index/shared.js +8 -7
  177. package/dist/crdt/text/index/state.d.ts +3 -33
  178. package/dist/crdt/text/index/state.js +2 -4
  179. package/dist/crdt/text/model.d.ts +82 -2
  180. package/dist/crdt/text/model.js +344 -354
  181. package/dist/crdt/text/rows.d.ts +0 -2
  182. package/dist/crdt/text/rows.js +0 -11
  183. package/dist/crdt/text/runs.d.ts +6 -3
  184. package/dist/crdt/text/runs.js +132 -137
  185. package/dist/crdt/text/streams.d.ts +1 -1
  186. package/dist/crdt/text/streams.js +1 -1
  187. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  188. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  189. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  190. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  191. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  192. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  193. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  194. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  195. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  196. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  197. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  198. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  199. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  200. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  201. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  202. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  203. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  204. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  205. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  206. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  207. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  208. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  209. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  210. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  211. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  212. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  213. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  214. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  215. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  216. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  217. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  218. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  219. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  220. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  221. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  222. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  223. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  224. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  225. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  226. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  227. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  228. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  229. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  230. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  231. package/dist/{plugins/blockHandles → dnd}/autoScroll.d.ts +2 -1
  232. package/dist/{plugins/blockHandles → dnd}/autoScroll.js +3 -3
  233. package/dist/dnd/pragmatic.d.ts +4 -22
  234. package/dist/dnd/pragmatic.js +7 -26
  235. package/dist/dnd/track.d.ts +14 -0
  236. package/dist/dnd/track.js +55 -0
  237. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  238. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  239. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  240. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  241. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  242. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  243. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  254. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +36 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  265. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  293. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  294. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  295. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  296. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  297. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  298. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  299. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  300. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  301. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  302. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  303. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  304. package/dist/edytor.svelte.d.ts +34 -64
  305. package/dist/edytor.svelte.js +118 -180
  306. package/dist/events/beforeInputCommands.d.ts +6 -11
  307. package/dist/events/beforeInputCommands.js +189 -184
  308. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  309. package/dist/events/beforeInputDeleteCommands.js +153 -204
  310. package/dist/events/domTextOffset.d.ts +9 -9
  311. package/dist/events/domTextOffset.js +20 -48
  312. package/dist/events/events.utils.d.ts +0 -2
  313. package/dist/events/events.utils.js +0 -4
  314. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  315. package/dist/events/nativeInteractiveControl.js +28 -56
  316. package/dist/events/onBeforeInput.d.ts +6 -1
  317. package/dist/events/onBeforeInput.js +207 -331
  318. package/dist/events/onCopy.js +1 -5
  319. package/dist/events/onDrop.d.ts +7 -1
  320. package/dist/events/onDrop.js +33 -72
  321. package/dist/events/onFocus.d.ts +9 -4
  322. package/dist/events/onFocus.js +92 -72
  323. package/dist/events/onInput.d.ts +8 -4
  324. package/dist/events/onInput.js +34 -147
  325. package/dist/events/onKeyDown.js +55 -122
  326. package/dist/events/onPaste.d.ts +13 -1
  327. package/dist/events/onPaste.js +46 -76
  328. package/dist/index.d.ts +10 -13
  329. package/dist/index.js +3 -3
  330. package/dist/kinds.d.ts +4 -6
  331. package/dist/kinds.js +28 -27
  332. package/dist/labels.d.ts +91 -314
  333. package/dist/labels.js +180 -396
  334. package/dist/plugins/Chrome.svelte +29 -0
  335. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  336. package/dist/plugins/Control.svelte +23 -0
  337. package/dist/plugins/Control.svelte.d.ts +30 -0
  338. package/dist/plugins/anchored.svelte.d.ts +47 -0
  339. package/dist/plugins/anchored.svelte.js +73 -0
  340. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  341. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  342. package/dist/plugins/bands.svelte.d.ts +57 -0
  343. package/dist/plugins/bands.svelte.js +95 -0
  344. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -151
  345. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  346. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +63 -97
  347. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +247 -268
  348. package/dist/plugins/blockHandles/BlockHandles.svelte +46 -29
  349. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  350. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +29 -23
  351. package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -162
  352. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  353. package/dist/plugins/blockHandles/dragPreview.js +20 -17
  354. package/dist/plugins/blockHandles/dropIndicator.js +52 -60
  355. package/dist/plugins/blockHandles/geometry.d.ts +46 -1
  356. package/dist/plugins/blockHandles/geometry.js +51 -4
  357. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +59 -28
  358. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +180 -105
  359. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  360. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  361. package/dist/plugins/brand.d.ts +8 -0
  362. package/dist/plugins/brand.js +8 -0
  363. package/dist/plugins/chrome.d.ts +79 -0
  364. package/dist/plugins/chrome.js +87 -0
  365. package/dist/plugins/code/CodeHeader.svelte +12 -58
  366. package/dist/plugins/code/CodeHeader.svelte.d.ts +1 -0
  367. package/dist/plugins/code/CodePlugin.svelte +75 -56
  368. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  369. package/dist/plugins/code/LanguageMenu.svelte +25 -0
  370. package/dist/plugins/code/LanguageMenu.svelte.d.ts +9 -0
  371. package/dist/plugins/code/code.css +5 -100
  372. package/dist/plugins/code/header.svelte.d.ts +47 -0
  373. package/dist/plugins/code/header.svelte.js +141 -0
  374. package/dist/plugins/code/languageMenu.svelte.d.ts +84 -0
  375. package/dist/plugins/code/languageMenu.svelte.js +199 -0
  376. package/dist/plugins/code/languages.d.ts +21 -10
  377. package/dist/plugins/code/languages.js +39 -126
  378. package/dist/plugins/columns/ColumnResize.svelte +13 -25
  379. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  380. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  381. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  382. package/dist/plugins/columns/columns.css +7 -26
  383. package/dist/plugins/columns/resize.svelte.d.ts +14 -51
  384. package/dist/plugins/columns/resize.svelte.js +70 -164
  385. package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
  386. package/dist/plugins/comments/CommentsController.svelte.js +14 -25
  387. package/dist/plugins/comments/CommentsSidebar.svelte +82 -430
  388. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +6 -7
  389. package/dist/plugins/comments/commentsPlugin.d.ts +31 -10
  390. package/dist/plugins/comments/commentsPlugin.js +12 -10
  391. package/dist/plugins/equation/EquationEditor.svelte +18 -129
  392. package/dist/plugins/equation/EquationEditor.svelte.d.ts +2 -1
  393. package/dist/plugins/equation/EquationPlugin.svelte +123 -168
  394. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +5 -3
  395. package/dist/plugins/equation/EquationView.svelte +20 -11
  396. package/dist/plugins/equation/equation.svelte.d.ts +74 -36
  397. package/dist/plugins/equation/equation.svelte.js +74 -66
  398. package/dist/plugins/equation/importUrl.d.ts +6 -0
  399. package/dist/plugins/equation/importUrl.js +6 -0
  400. package/dist/plugins/equation/katex.d.ts +8 -0
  401. package/dist/plugins/equation/katex.js +77 -0
  402. package/dist/plugins/find/FindController.svelte.d.ts +8 -13
  403. package/dist/plugins/find/FindController.svelte.js +34 -55
  404. package/dist/plugins/find/findPlugin.d.ts +4 -8
  405. package/dist/plugins/find/findPlugin.js +29 -9
  406. package/dist/plugins/image/ImageChrome.svelte +5 -151
  407. package/dist/plugins/image/ImagePlugin.svelte +49 -117
  408. package/dist/plugins/image/ImagePlugin.svelte.d.ts +1 -24
  409. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  410. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  411. package/dist/plugins/image/controls.svelte.d.ts +6 -57
  412. package/dist/plugins/image/controls.svelte.js +51 -174
  413. package/dist/plugins/image/image.d.ts +0 -5
  414. package/dist/plugins/image/image.js +0 -3
  415. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  416. package/dist/plugins/image/toolbar.svelte.js +145 -0
  417. package/dist/plugins/index.d.ts +39 -24
  418. package/dist/plugins/index.js +30 -22
  419. package/dist/plugins/list.svelte.d.ts +128 -0
  420. package/dist/plugins/list.svelte.js +217 -0
  421. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  422. package/dist/plugins/markdownShortcuts.js +6 -5
  423. package/dist/plugins/marquee/MarqueeBox.svelte +15 -0
  424. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +9 -0
  425. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +46 -0
  426. package/dist/plugins/marquee/MarqueeController.svelte.js +243 -0
  427. package/dist/plugins/marquee/marquee.d.ts +33 -0
  428. package/dist/plugins/marquee/marquee.js +89 -0
  429. package/dist/plugins/marquee/marqueePlugin.d.ts +32 -0
  430. package/dist/plugins/marquee/marqueePlugin.js +68 -0
  431. package/dist/plugins/media/AudioPlugin.svelte +3 -88
  432. package/dist/plugins/media/AudioPlugin.svelte.d.ts +1 -4
  433. package/dist/plugins/media/BookmarkPlugin.svelte +124 -112
  434. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +20 -7
  435. package/dist/plugins/media/EmbedPlugin.svelte +93 -77
  436. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +21 -9
  437. package/dist/plugins/media/EmptySlot.svelte +44 -0
  438. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  439. package/dist/plugins/media/FilePlugin.svelte +35 -111
  440. package/dist/plugins/media/FilePlugin.svelte.d.ts +12 -4
  441. package/dist/plugins/media/MediaEmpty.svelte +55 -112
  442. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  443. package/dist/plugins/media/SourceBlock.svelte +164 -0
  444. package/dist/plugins/media/SourceBlock.svelte.d.ts +33 -0
  445. package/dist/plugins/media/VideoPlugin.svelte +4 -97
  446. package/dist/plugins/media/VideoPlugin.svelte.d.ts +2 -5
  447. package/dist/plugins/media/empty.svelte.d.ts +69 -0
  448. package/dist/plugins/media/empty.svelte.js +111 -0
  449. package/dist/plugins/media/media.d.ts +93 -30
  450. package/dist/plugins/media/media.js +79 -86
  451. package/dist/plugins/media/urlPaste.svelte.d.ts +9 -32
  452. package/dist/plugins/media/urlPaste.svelte.js +46 -75
  453. package/dist/plugins/mention/MentionPlugin.svelte +47 -124
  454. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +11 -23
  455. package/dist/plugins/page/PageLink.svelte +54 -38
  456. package/dist/plugins/page/PagePlugin.svelte +20 -18
  457. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  458. package/dist/plugins/page/page.d.ts +35 -9
  459. package/dist/plugins/page/page.js +3 -4
  460. package/dist/plugins/pageLink/PageLinkPlugin.svelte +52 -108
  461. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +11 -23
  462. package/dist/plugins/planned.d.ts +10 -0
  463. package/dist/plugins/planned.js +12 -0
  464. package/dist/plugins/richtext/CalloutIcon.svelte +25 -0
  465. package/dist/plugins/richtext/CalloutIcon.svelte.d.ts +9 -0
  466. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  467. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  468. package/dist/plugins/richtext/EmptyBody.svelte +25 -0
  469. package/dist/plugins/richtext/EmptyBody.svelte.d.ts +8 -0
  470. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  471. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  472. package/dist/plugins/richtext/RichTextPlugin.svelte +272 -148
  473. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +37 -18
  474. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  475. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  476. package/dist/plugins/richtext/body.d.ts +9 -0
  477. package/dist/plugins/richtext/body.js +16 -0
  478. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +97 -0
  479. package/dist/plugins/richtext/calloutIcons.svelte.js +214 -0
  480. package/dist/plugins/richtext/callouts.d.ts +15 -0
  481. package/dist/plugins/richtext/callouts.js +23 -0
  482. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  483. package/dist/plugins/richtext/controls.svelte.js +126 -0
  484. package/dist/plugins/richtext/richTextOperations.js +37 -28
  485. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +18 -11
  486. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +93 -35
  487. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +11 -24
  488. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  489. package/dist/plugins/suggestions/SuggestionBars.svelte +32 -84
  490. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  491. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -16
  492. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  493. package/dist/plugins/table/TableChrome.svelte +96 -127
  494. package/dist/plugins/table/TableChrome.svelte.d.ts +5 -1
  495. package/dist/plugins/table/TablePlugin.svelte +116 -171
  496. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  497. package/dist/plugins/table/chrome.svelte.d.ts +110 -117
  498. package/dist/plugins/table/chrome.svelte.js +643 -289
  499. package/dist/plugins/table/ops.d.ts +47 -0
  500. package/dist/plugins/table/ops.js +233 -0
  501. package/dist/plugins/table/table.css +55 -134
  502. package/dist/plugins/table/table.d.ts +26 -7
  503. package/dist/plugins/table/table.js +23 -49
  504. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  505. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  506. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  507. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  508. package/dist/plugins/toc/toc.d.ts +41 -10
  509. package/dist/plugins/toc/toc.js +2 -3
  510. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +29 -66
  511. package/dist/plugins/toolbar/ToolbarController.svelte.js +151 -76
  512. package/dist/plugins/toolbar/toolbarPlugin.d.ts +14 -13
  513. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  514. package/dist/plugins/triggers/TriggerController.svelte.d.ts +6 -45
  515. package/dist/plugins/triggers/TriggerController.svelte.js +51 -96
  516. package/dist/plugins/triggers/place.d.ts +0 -9
  517. package/dist/plugins/triggers/place.js +1 -17
  518. package/dist/plugins/triggers/triggers.d.ts +31 -9
  519. package/dist/plugins/triggers/triggers.js +82 -62
  520. package/dist/plugins/uploads.svelte.d.ts +38 -20
  521. package/dist/plugins/uploads.svelte.js +39 -32
  522. package/dist/plugins.d.ts +167 -60
  523. package/dist/selection/domSelection.d.ts +13 -4
  524. package/dist/selection/domSelection.js +110 -183
  525. package/dist/selection/pointer.svelte.d.ts +12 -10
  526. package/dist/selection/pointer.svelte.js +154 -71
  527. package/dist/selection/replaceSelection.d.ts +21 -22
  528. package/dist/selection/replaceSelection.js +60 -69
  529. package/dist/selection/selection.svelte.d.ts +5 -73
  530. package/dist/selection/selection.svelte.js +263 -542
  531. package/dist/selection/selection.utils.d.ts +34 -11
  532. package/dist/selection/selection.utils.js +128 -247
  533. package/dist/selection/visibility.d.ts +11 -8
  534. package/dist/selection/visibility.js +23 -8
  535. package/dist/session/announcer.svelte.d.ts +2 -1
  536. package/dist/session/announcer.svelte.js +7 -3
  537. package/dist/session/attempt.d.ts +33 -39
  538. package/dist/session/attempt.js +61 -53
  539. package/dist/session/bindings.js +108 -139
  540. package/dist/session/commands.d.ts +47 -22
  541. package/dist/session/commands.js +206 -208
  542. package/dist/session/composition.svelte.d.ts +2 -4
  543. package/dist/session/composition.svelte.js +55 -65
  544. package/dist/session/editing/text.d.ts +6 -0
  545. package/dist/session/editing/text.js +17 -3
  546. package/dist/session/handles.d.ts +10 -1
  547. package/dist/session/handles.js +28 -0
  548. package/dist/session/history.d.ts +0 -4
  549. package/dist/session/history.js +15 -21
  550. package/dist/session/inputRules.js +75 -84
  551. package/dist/session/keymap.d.ts +1 -6
  552. package/dist/session/keymap.js +17 -20
  553. package/dist/session/moves.d.ts +10 -10
  554. package/dist/session/moves.js +31 -59
  555. package/dist/session/navigation.d.ts +18 -3
  556. package/dist/session/navigation.js +194 -153
  557. package/dist/session/ports.d.ts +7 -0
  558. package/dist/session/selection.d.ts +4 -3
  559. package/dist/session/selection.js +8 -0
  560. package/dist/session/suggestions.svelte.d.ts +1 -1
  561. package/dist/session/suggestions.svelte.js +64 -47
  562. package/dist/session/virtual.d.ts +3 -3
  563. package/dist/session/virtual.js +18 -40
  564. package/dist/surface/attributes.d.ts +1 -0
  565. package/dist/surface/attributes.js +3 -26
  566. package/dist/surface/cells.d.ts +5 -0
  567. package/dist/surface/cells.js +5 -0
  568. package/dist/surface/lines.d.ts +32 -0
  569. package/dist/surface/lines.js +43 -0
  570. package/dist/surface/observer.svelte.d.ts +3 -20
  571. package/dist/surface/observer.svelte.js +73 -77
  572. package/dist/surface/overlay.d.ts +48 -6
  573. package/dist/surface/overlay.js +133 -23
  574. package/dist/surface/pin.svelte.d.ts +5 -0
  575. package/dist/surface/pin.svelte.js +5 -0
  576. package/dist/surface/projector.svelte.d.ts +4 -6
  577. package/dist/surface/projector.svelte.js +42 -69
  578. package/dist/text/text.svelte.d.ts +14 -40
  579. package/dist/text/text.svelte.js +35 -51
  580. package/dist/text/wordBoundary.d.ts +19 -0
  581. package/dist/text/wordBoundary.js +29 -44
  582. package/dist/themes/notion.css +315 -126
  583. package/dist/utils/json.d.ts +3 -1
  584. package/dist/utils/json.js +52 -51
  585. package/dist/utils/listen.d.ts +8 -0
  586. package/dist/utils/listen.js +19 -0
  587. package/package.json +4 -5
  588. package/dist/block/block.utils.d.ts +0 -340
  589. package/dist/block/block.utils.js +0 -356
  590. package/dist/collaboration/history/HistoryPanel.svelte +0 -525
  591. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  592. package/dist/collaboration/history/panel.d.ts +0 -43
  593. package/dist/collaboration/history/panel.js +0 -3
  594. package/dist/components/SuggestionRanges.svelte +0 -58
  595. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  596. package/dist/crdt/doc/table.d.ts +0 -21
  597. package/dist/crdt/doc/table.js +0 -288
  598. package/dist/crdt/migration/generation.d.ts +0 -58
  599. package/dist/crdt/migration/generation.js +0 -70
  600. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  601. package/dist/crdt/migration/legacy-schema.js +0 -151
  602. package/dist/crdt/migration/migrate.d.ts +0 -56
  603. package/dist/crdt/migration/migrate.js +0 -227
  604. package/dist/crdt/nodes.d.ts +0 -121
  605. package/dist/crdt/nodes.js +0 -56
  606. package/dist/crdt/text/index/checks.d.ts +0 -15
  607. package/dist/crdt/text/index/checks.js +0 -156
  608. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  609. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  610. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  611. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  612. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  613. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  614. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  615. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  616. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  617. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  618. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  619. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  620. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  621. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  622. package/dist/edytor.utils.d.ts +0 -50
  623. package/dist/edytor.utils.js +0 -67
  624. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -447
  625. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  626. package/dist/plugins/find/FindBar.svelte +0 -170
  627. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  628. package/dist/plugins/find/FindHighlights.svelte +0 -75
  629. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  630. package/dist/plugins/icons.d.ts +0 -2
  631. package/dist/plugins/icons.js +0 -63
  632. package/dist/plugins/image/ImageEmpty.svelte +0 -116
  633. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -12
  634. package/dist/plugins/keepInView.d.ts +0 -4
  635. package/dist/plugins/keepInView.js +0 -6
  636. package/dist/plugins/media/UrlPasteMenu.svelte +0 -83
  637. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -7
  638. package/dist/plugins/richtext/labels.d.ts +0 -5
  639. package/dist/plugins/richtext/labels.js +0 -3
  640. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -360
  641. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  642. package/dist/plugins/toolbar/LinkCard.svelte +0 -118
  643. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -7
  644. package/dist/plugins/toolbar/Toolbar.svelte +0 -400
  645. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  646. package/dist/plugins/triggers/TriggerMenu.svelte +0 -144
  647. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  648. package/dist/session/props.d.ts +0 -28
  649. package/dist/session/props.js +0 -162
  650. package/dist/text/deltas.d.ts +0 -22
  651. package/dist/text/deltas.js +0 -46
  652. package/dist/text/text.utils.d.ts +0 -45
  653. package/dist/text/text.utils.js +0 -199
@@ -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
  /**