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
@@ -1,18 +1,15 @@
1
- import { Text } from '../text/text.svelte.js';
1
+ import { blockSelection } from './selection.js';
2
2
  import { extendVertically, navigationBindings, stayWithoutTarget, vertical } from './navigation.js';
3
- import { attemptOf, caretAt, intentSnapshot } from './attempt.js';
3
+ import { caretAt, intentSnapshot } from './attempt.js';
4
4
  import { flipToggles, getSelectionBlocks, deleteSelectedBlocks, outermost, selectedBlocksExit, shownSelectionBlocks } from '../selection/replaceSelection.js';
5
5
  import { shown } from '../selection/visibility.js';
6
- const STRUCTURAL_HOTKEY_DOM_REPAIR_WINDOW_MS = 500;
7
- const HISTORY_HOTKEY_DOM_REPAIR_WINDOW_MS = 150;
8
6
  /**
9
7
  * Remove the selected inline atom as one command: the caret lands where
10
8
  * the atom was; a printable key types `value` there. Answers whether an atom
11
9
  * was selected.
12
10
  */
13
11
  export const replaceSelectedAtom = (edytor, value = '') => {
14
- const selected = edytor.selection.selectedInlineBlock.values().next().value ??
15
- edytor.selection.inlineBlockDeletionTarget;
12
+ const selected = edytor.selection.inlineBlockDeletionTarget;
16
13
  if (!selected)
17
14
  return false;
18
15
  edytor.selection.clearInlineBlockSelection();
@@ -20,40 +17,19 @@ export const replaceSelectedAtom = (edytor, value = '') => {
20
17
  const index = parent.content.indexOf(selected);
21
18
  if (index === -1)
22
19
  return true;
23
- const [before, after] = [parent.content[index - 1], parent.content[index + 1]];
24
- const caret = before instanceof Text ? before : after instanceof Text ? after : parent.firstText;
25
- const offset = before instanceof Text ? before.length : 0;
26
- parent.removeInlineBlock({ index });
20
+ // The text before the atom (a block's content starts with a text): the
21
+ // removal joins the text after the atom to it.
22
+ const text = parent.content[index - 1];
23
+ const offset = text.length;
24
+ edytor.removeInline(parent.id, selected.id);
27
25
  if (value)
28
- caret?.insertText({ value, start: offset, end: offset });
29
- edytor.dispatcher.caret(caret, offset + value.length);
26
+ edytor.insertText(parent.id, text.segStart + offset, value);
27
+ edytor.dispatcher.caret(text, offset + value.length);
30
28
  return true;
31
29
  };
32
- const selectNextVoidBlockFromCaret = (edytor) => {
33
- const { startText, yStart, isCollapsed } = edytor.selection.state;
34
- if (!startText || !isCollapsed || yStart !== startText.length) {
35
- return false;
36
- }
37
- const nextBlock = shown(startText.parent, 'blockAfter');
38
- if (!nextBlock?.definition.void) {
39
- return false;
40
- }
41
- edytor.selection.selectBlocks(nextBlock);
42
- return true;
43
- };
44
- /** The key's attempt: the model owns the DOM drift around its command for `window` ms. */
45
- const suppressHotkeyDomDrift = (edytor, window) => {
46
- const attempt = attemptOf(edytor, { inputType: 'hotkey', cancelable: true });
47
- edytor.attempts.drift(edytor.attempts.admit(attempt, 'model'), 'discard', window);
48
- };
49
- const ownsDeleteSelection = (edytor) => edytor.selection.selectedBlocks.size > 0 || edytor.selection.selectedInlineBlock.size > 0;
50
- const history = (direction) => ({ edytor, prevent }) => prevent(() => {
51
- suppressHotkeyDomDrift(edytor, HISTORY_HOTKEY_DOM_REPAIR_WINDOW_MS);
52
- if (direction === 'undo')
53
- edytor.historyUndo();
54
- else
55
- edytor.historyRedo();
56
- });
30
+ /** The selection is the editor's own: an inline atom or blocks (no DOM range shows it). */
31
+ const owned = ({ selection }) => selection.selectedBlocks.size > 0 || selection.inlineBlockDeletionTarget !== null;
32
+ const history = (direction) => ({ edytor, prevent }) => prevent(() => (direction === 'undo' ? edytor.historyUndo() : edytor.historyRedo()));
57
33
  /**
58
34
  * Block-selection keys walk the document order with the island seal,
59
35
  * past a collapsed toggle's hidden body.
@@ -65,54 +41,72 @@ const SEALED = { sealed: true };
65
41
  * no line and no highlight of their own (Notion): a selection holding every
66
42
  * block of a layout stands for it (`liftLayouts`).
67
43
  */
68
- const stepOnto = (block, step) => {
44
+ const stepOnto = (block, dir) => {
69
45
  const { facade } = block.edytor;
46
+ const step = dir > 0 ? 'blockAfter' : 'blockBefore';
70
47
  let next = shown(block, step, SEALED);
71
48
  while (next && (facade.isLayout(next.id) || facade.isLayoutItem(next.id)))
72
49
  next = shown(next, step, SEALED);
73
50
  return next;
74
51
  };
75
52
  /** Move a single block selection to its sealed neighbour in document order. */
76
- const moveBlockSelection = (step) => ({ edytor, prevent }) => {
77
- const selectedBlocks = edytor.selection.selectedBlocks;
78
- if (selectedBlocks.size === 1) {
79
- prevent(() => {
80
- const target = stepOnto(selectedBlocks.values().next().value, step);
81
- if (target) {
82
- edytor.selection.selectBlocks(target);
83
- }
84
- });
85
- }
53
+ const moveBlockSelection = (dir) => ({ edytor, prevent }) => {
54
+ const [block, ...rest] = edytor.selection.selectedBlocks;
55
+ if (!block || rest.length)
56
+ return;
57
+ prevent(() => {
58
+ const target = stepOnto(block, dir);
59
+ if (target)
60
+ edytor.selection.select(blockSelection([target.id]));
61
+ });
86
62
  };
87
- const arrowUp = vertical(-1, moveBlockSelection('blockBefore'));
88
- const arrowDown = vertical(1, moveBlockSelection('blockAfter'));
63
+ const arrowUp = vertical(-1, moveBlockSelection(-1));
64
+ const arrowDown = vertical(1, moveBlockSelection(1));
89
65
  /**
90
66
  * Shift+ArrowUp/Down over a block selection. Its first member is the
91
67
  * anchor and its last the focus (insertion order): a key moving the focus
92
68
  * back toward the anchor shrinks the selection, otherwise it extends past
93
69
  * the selection's edge in document order, one block at a time — a
94
70
  * parent and its children are separate members (`sel.blocks.exact`).
71
+ * Without a block selection the editor owns vertical extension (Shift+ArrowDown
72
+ * at the end of a text right before a void selects the void).
95
73
  */
96
- const extendBlockSelection = (edytor, direction) => {
97
- const members = Array.from(edytor.selection.selectedBlocks);
98
- const focus = members.at(-1);
99
- const sign = Math.sign(edytor.compareBlocks(focus, members[0]));
100
- if (sign === (direction === 'up' ? 1 : -1)) {
101
- edytor.selection.removeBlockFromSelection(focus);
74
+ const extend = (dir) => ({ edytor, prevent }) => {
75
+ const { selection } = edytor;
76
+ const members = [...selection.selectedBlocks];
77
+ if (!members.length) {
78
+ stayWithoutTarget(edytor, prevent);
79
+ if ((dir > 0 && voidAfter(edytor)) || extendVertically(edytor, dir))
80
+ prevent();
102
81
  return;
103
82
  }
104
- const sorted = members.toSorted(edytor.compareBlocks);
105
- const next = direction === 'up'
106
- ? stepOnto(sorted[0], 'blockBefore')
107
- : stepOnto(sorted.at(-1), 'blockAfter');
108
- if (next)
109
- edytor.selection.addBlockToSelection(next);
83
+ prevent(() => {
84
+ const { value } = selection;
85
+ const ids = value.kind === 'blocks' ? value.ids : [];
86
+ const focus = members.at(-1);
87
+ if (Math.sign(edytor.compareBlocks(focus, members[0])) === -dir)
88
+ return selection.select(blockSelection(ids.filter((id) => id !== focus.id)));
89
+ const sorted = members.toSorted(edytor.compareBlocks);
90
+ const next = stepOnto((dir > 0 ? sorted.at(-1) : sorted[0]), dir);
91
+ if (next && !ids.includes(next.id))
92
+ selection.select(blockSelection([...ids, next.id]));
93
+ });
94
+ };
95
+ /** A caret at the end of a text whose block a void follows selects that void. */
96
+ const voidAfter = (edytor) => {
97
+ const { start, isCollapsed, isAtEndOfText } = edytor.selection.projection;
98
+ const block = isCollapsed && isAtEndOfText && start && edytor.idToBlock.get(start.block);
99
+ const next = block ? shown(block, 'blockAfter') : null;
100
+ if (!next?.definition.void)
101
+ return false;
102
+ edytor.selection.select(blockSelection([next.id]));
103
+ return true;
110
104
  };
111
105
  /**
112
106
  * Move `blocks` one level, one group of siblings at a time (Notion: over
113
107
  * several nesting levels, each group that can move does, a vetoed one too:
114
108
  * `dispatcher.each`), as one undo step. A block inside another of them
115
- * moves with it; `edytor.moveBlocks` moves siblings with an unselected block
109
+ * moves with it; `edytor.move` moves siblings with an unselected block
116
110
  * between them apart, so no key reorders the text. Answers
117
111
  * the moved blocks.
118
112
  */
@@ -121,62 +115,66 @@ const moveRoots = (edytor, blocks, direction) => {
121
115
  for (const block of outermost(blocks).toSorted(edytor.compareBlocks))
122
116
  groups.set(block.parent, [...(groups.get(block.parent) ?? []), block]);
123
117
  return edytor.dispatcher
124
- .each('moveBlocks', [...groups.values()], (group) => edytor.moveBlocks({ blocks: group, direction }))
118
+ .each('moveBlocks', [...groups.values()], (group) => edytor.move({ blocks: group, direction }))
125
119
  .flatMap((moved) => moved ?? []);
126
120
  };
127
121
  /**
128
- * Tab / Shift+Tab: nest or unnest the selected block, or the caret's block.
122
+ * Tab / Shift+Tab, with `allowNesting`: nest or unnest the selected block, or the caret's block.
129
123
  * Selected blocks, or the blocks a text range spans, move one level per
130
124
  * group of siblings, a selected block's selected descendants with it, as
131
- * one command; the selection stays.
125
+ * one command; the selection stays (its anchors moved with the blocks).
132
126
  */
133
- const nest = (operation) => ({ edytor, prevent }) => prevent(() => {
134
- suppressHotkeyDomDrift(edytor, STRUCTURAL_HOTKEY_DOM_REPAIR_WINDOW_MS);
135
- const selectedBlocks = edytor.selection.selectedBlocks;
136
- const direction = operation === 'nestBlock' ? 'in' : 'out';
137
- const blocks = getSelectionBlocks(edytor);
138
- if (blocks.length > 1) {
139
- const members = [...selectedBlocks];
140
- const { startText, endText, yStart, yEnd, isReversed } = edytor.selection.state;
141
- if (!moveRoots(edytor, blocks, direction).length)
127
+ const nest = (operation) => ({ edytor, prevent }) =>
128
+ // Nesting off (`allowNesting`, the default): the key is not the editor's, the browser moves the focus on.
129
+ edytor.allowNesting &&
130
+ prevent(() => {
131
+ const { selection } = edytor;
132
+ const { value } = selection;
133
+ const direction = operation === 'nestBlock' ? 'in' : 'out';
134
+ const blocks = getSelectionBlocks(edytor);
135
+ if (blocks.length > 1) {
136
+ if (moveRoots(edytor, blocks, direction).length)
137
+ selection.select(value);
138
+ return;
139
+ }
140
+ const [selected] = selection.selectedBlocks;
141
+ const at = selection.textAt(selection.projection.start);
142
+ const block = selected ?? at?.text.parent;
143
+ if (!block)
144
+ return;
145
+ // Into the block before it; the view's move reveals a closed toggle it lands in or that adopts.
146
+ const into = block.previousBlock;
147
+ if (operation === 'nestBlock' && !into)
148
+ return edytor.dispatcher.record({ operation, status: 'refused' });
149
+ const result = operation === 'unNestBlock'
150
+ ? edytor.unNestBlock(block.id)
151
+ : edytor.nestBlock(block.id, into.id);
152
+ if (result.status !== 'applied')
142
153
  return;
143
- if (members.length)
144
- edytor.selection.selectBlocks(...members);
145
- else if (startText && endText)
146
- edytor.selection.setAtRange(startText, yStart, endText, yEnd, { isReversed });
147
- return;
148
- }
149
- const selectedBlock = selectedBlocks.values().next().value;
150
- const { yStart, startText, startBlock } = edytor.selection.state;
151
- const index = startText?.index;
152
- // The block's command reveals a closed toggle it lands in or that adopts.
153
- const block = (selectedBlock || startBlock)?.[operation]();
154
- if (block)
155
154
  edytor.announcer.moved({ blocks: [block], direction }, [block]);
156
- if (block && selectedBlock)
157
- edytor.selection.selectBlocks(block);
158
- else if (block && index !== undefined)
159
- caretAt(edytor, block.content[index], yStart);
160
- });
155
+ if (selected)
156
+ selection.select(blockSelection([block.id]));
157
+ else if (at)
158
+ caretAt(edytor, block.content[at.text.index], at.offset);
159
+ });
161
160
  /**
162
161
  * Backspace/Delete over an editor-owned selection: the selected atom, or
163
162
  * the selected blocks (the caret lands at the end of the block before them).
163
+ * The command runs the hooks and authors its caret; the projector displays it.
164
164
  */
165
165
  const deleteSelection = ({ edytor, prevent }) => {
166
- if (edytor.selection.selectedInlineBlock.size || edytor.selection.inlineBlockDeletionTarget)
167
- return prevent(() => replaceSelectedAtom(edytor));
168
- if (!edytor.selection.selectedBlocks.size)
169
- return;
170
- // The command runs the hooks and authors its caret; the projector displays it.
171
- prevent(() => deleteSelectedBlocks(edytor));
166
+ if (edytor.selection.inlineBlockDeletionTarget)
167
+ prevent(() => replaceSelectedAtom(edytor));
168
+ else if (edytor.selection.selectedBlocks.size)
169
+ prevent(() => deleteSelectedBlocks(edytor));
172
170
  };
173
171
  /** An Emacs kill (ctrl+h/d/k): a delete intent, or the owned selection's delete. */
174
172
  const kill = (inputType) => (payload) => {
175
173
  const { edytor, prevent } = payload;
176
- if (ownsDeleteSelection(edytor))
174
+ if (owned(edytor))
177
175
  return deleteSelection(payload);
178
- const { state, projection } = edytor.selection;
179
- if (state.startText)
176
+ const { projection } = edytor.selection;
177
+ if (edytor.selection.textAt(projection.start))
180
178
  prevent(() => edytor.ports.input.runIntent(inputType(projection)));
181
179
  };
182
180
  /**
@@ -186,10 +184,7 @@ const kill = (inputType) => (payload) => {
186
184
  * without a DOM range, so the chord is claimed at its keydown. Shift+Delete
187
185
  * is not one (the Windows cut).
188
186
  */
189
- const wordAndLineDeletes = Object.fromEntries(['alt', 'mod', 'ctrl'].flatMap((modifier) => ['backspace', 'delete'].map((key) => [
190
- `${modifier}+${key}`,
191
- (payload) => (ownsDeleteSelection(payload.edytor) ? deleteSelection(payload) : undefined)
192
- ])));
187
+ const wordAndLineDeletes = Object.fromEntries(['alt', 'mod', 'ctrl'].flatMap((modifier) => ['backspace', 'delete'].map((key) => [`${modifier}+${key}`, deleteSelection])));
193
188
  /**
194
189
  * macOS Emacs/Cocoa text bindings. Bare `ctrl+` chords only resolve on
195
190
  * Apple platforms (the keymap folds Ctrl into `mod` elsewhere), so the table
@@ -204,9 +199,9 @@ const emacs = {
204
199
  'ctrl+k': kill((at) => at.isCollapsed && at.isAtEndOfBlock ? 'deleteContentForward' : 'deleteHardLineForward'),
205
200
  // Open-line: a soft break with the caret kept before it.
206
201
  'ctrl+o': ({ edytor, prevent }) => {
207
- if (ownsDeleteSelection(edytor) || !edytor.selection.state.startText)
202
+ if (owned(edytor) || !edytor.selection.textAt(edytor.selection.projection.start))
208
203
  return;
209
- prevent(() => edytor.dispatcher.run('insertBlock', () => edytor.ports.input.insertLineBreak(intentSnapshot(edytor, 'insertLineBreak'), 'before')));
204
+ prevent(() => edytor.dispatcher.run('insertBlocks', () => edytor.ports.input.insertLineBreak(intentSnapshot(edytor, 'insertLineBreak'), 'before')));
210
205
  },
211
206
  'ctrl+p': arrowUp,
212
207
  'ctrl+n': arrowDown
@@ -223,44 +218,21 @@ export const builtInBindings = {
223
218
  'mod+enter': ({ edytor, prevent }) => prevent(() => flipToggles(shownSelectionBlocks(edytor))),
224
219
  // The select-all ladder: the block's text, then the block, then every block
225
220
  // (at once with no selection at all, as Notion).
226
- 'mod+a': ({ edytor, prevent }) => {
227
- prevent(() => {
228
- const { startText, startBlock } = edytor.selection.state;
229
- const { islandRoot, isAtStartOfBlock, isAtEndOfBlock } = edytor.selection.projection;
230
- // Every block, nested ones included: a block selection is exactly its members.
231
- const every = () => edytor.selection.selectBlocks(...edytor.facade.order().flatMap((id) => edytor.idToBlock.get(id) ?? []));
232
- if (!startText) {
233
- if (edytor.selection.value.kind === 'none')
234
- every();
235
- return;
236
- }
237
- if (edytor.selection.selectedBlocks.size) {
238
- every();
239
- }
240
- else if (isAtStartOfBlock && isAtEndOfBlock) {
241
- edytor.selection.selectBlocks(edytor.idToBlock.get(islandRoot ?? '') ?? startText.parent);
242
- }
243
- else {
244
- edytor.selection.setAtBlockRange(startBlock);
245
- }
246
- });
247
- },
221
+ 'mod+a': ({ edytor, prevent }) => prevent(() => {
222
+ const { selection, idToBlock } = edytor;
223
+ const { start, islandRoot, isAtStartOfBlock, isAtEndOfBlock } = selection.projection;
224
+ const block = selection.textAt(start)?.text.parent;
225
+ // Every block, nested ones included: a block selection is exactly its members.
226
+ if (block ? selection.selectedBlocks.size : selection.value.kind === 'none')
227
+ selection.select(blockSelection(edytor.facade.order().filter((id) => idToBlock.has(id))));
228
+ else if (block && isAtStartOfBlock && isAtEndOfBlock)
229
+ selection.select(blockSelection([(idToBlock.get(islandRoot ?? '') ?? block).id]));
230
+ else
231
+ selection.selectLines(block);
232
+ }),
248
233
  ...navigationBindings,
249
- // Without a block selection the editor owns vertical extension.
250
- 'shift+arrowup': ({ edytor, prevent }) => {
251
- if (edytor.selection.selectedBlocks.size)
252
- return prevent(() => extendBlockSelection(edytor, 'up'));
253
- stayWithoutTarget(edytor, prevent);
254
- if (extendVertically(edytor, -1))
255
- prevent();
256
- },
257
- 'shift+arrowdown': ({ edytor, prevent }) => {
258
- if (edytor.selection.selectedBlocks.size)
259
- return prevent(() => extendBlockSelection(edytor, 'down'));
260
- stayWithoutTarget(edytor, prevent);
261
- if (selectNextVoidBlockFromCaret(edytor) || extendVertically(edytor, 1))
262
- prevent();
263
- },
234
+ 'shift+arrowup': extend(-1),
235
+ 'shift+arrowdown': extend(1),
264
236
  arrowup: arrowUp,
265
237
  arrowdown: arrowDown,
266
238
  tab: nest('nestBlock'),
@@ -273,7 +245,7 @@ export const builtInBindings = {
273
245
  prevent(() => {
274
246
  const at = selectedBlocksExit(edytor);
275
247
  if (at)
276
- edytor.selection.setAtTextOffset(at.text, at.offset);
248
+ edytor.selection.selectText(at.text, at.offset);
277
249
  });
278
250
  },
279
251
  backspace: deleteSelection,
@@ -1,22 +1,40 @@
1
- import type { Prepared } from '../crdt/edytor-doc.js';
1
+ /**
2
+ * The command dispatcher: one per view.
3
+ *
4
+ * Every write a view makes is one of the document's operations
5
+ * (`DocumentWrites`, dispatched under its own name and arguments:
6
+ * `edytor.insertBlocks(…)`), or a named command that is one prepared plan of
7
+ * them (`plan`: a table row, a find-and-replace). It is admitted (readonly,
8
+ * `document.writable`), prepared, shown to every extension hook before any
9
+ * write — the command itself, then each planned step as the operation it
10
+ * performs — applied in one transaction, normalized once per touched block at
11
+ * the end of that transaction (normalizers read handles over the index), and
12
+ * reported (`refused | noop | applied | failed`). A user command (`run`)
13
+ * wraps the operations one gesture issues and closes the undo policy table.
14
+ * `prevent()` is caught here, once (`prevented`).
15
+ */
16
+ import type { Block } from '../block/block.svelte.js';
17
+ import type { DocumentWrites } from '../crdt/operations.js';
18
+ import type { OpResult, Prepared } from '../crdt/edytor-doc.js';
19
+ import type { DocPosition } from '../crdt/rangeDelete.js';
2
20
  import type { SelectionValue } from './selection.js';
3
21
  import type { Text } from '../text/text.svelte.js';
4
22
  import type { Caret } from '../selection/selection.svelte.js';
5
23
  /**
6
24
  * The result of the last command a view ran (`edytor.dispatcher.last`): its
7
- * operation, its status and, for a handle mutator (`block.insertBlockAfter`,
8
- * `text.insertText`, …), the `value` the mutator returned — `undefined`
9
- * when the command was refused or did not run.
25
+ * operation and its status.
10
26
  */
11
- export type CommandResult<T = unknown> = {
27
+ export type CommandResult = {
12
28
  operation: string;
13
29
  status: 'refused' | 'noop' | 'applied' | 'failed';
14
- /** What the command answered: a handle mutator's return value. */
15
- value?: T;
16
30
  error?: unknown;
17
31
  /** The result selection the command authored, selected once. */
18
32
  selection?: SelectionValue;
19
33
  };
34
+ /** A document write's name. */
35
+ export type Write = keyof DocumentWrites;
36
+ /** A kind's normalizer (`BlockDefinition.normalizeContent`/`normalizeChildren`). */
37
+ export type Normalizer = 'normalizeContent' | 'normalizeChildren';
20
38
  export declare class Dispatcher {
21
39
  #private;
22
40
  private edytor;
@@ -37,9 +55,6 @@ export declare class Dispatcher {
37
55
  /** Requested normalization passes: (block id, normalizer). */
38
56
  private queue;
39
57
  private current;
40
- /** The drain is entering `current`'s normalizer (its own request runs it). */
41
- private entering;
42
- private draining;
43
58
  /** A plan the next dispatched operation composes before its own (`lead`). */
44
59
  private leading;
45
60
  /** What the last `patchData` set to text: typing on the same paths continues its step (a bound field). */
@@ -55,9 +70,10 @@ export declare class Dispatcher {
55
70
  * placed. That step's undo withdraws the block, URL included
56
71
  * (`hist.undo.withdraw`), and its redo shows it again, so the paste stays
57
72
  * one step whatever the upload's delay, and the typing around it groups
58
- * as if it never came. Throws, writing nothing, when a transaction is
59
- * already open: its writes would take that transaction's origin and join
60
- * its step (call it from a later task, as an upload's answer is).
73
+ * as if it never came. In development, throws, writing nothing, when a
74
+ * transaction is already open: its writes would take that transaction's
75
+ * origin and join its step (call it from a later task, as an upload's
76
+ * answer is).
61
77
  */
62
78
  outside: <T>(body: () => T) => T;
63
79
  /**
@@ -90,6 +106,17 @@ export declare class Dispatcher {
90
106
  block: unknown;
91
107
  text?: Text;
92
108
  }, body: (payload: P, plan?: Prepared) => R, prepare?: (payload: P) => Prepared) => R | undefined;
109
+ /**
110
+ * Dispatch `operation` as the plan `prepare` makes of `payload` (a hook's
111
+ * replacement payload is prepared again), about `block` (the root by
112
+ * default): hooks see it and each planned step before any write; one
113
+ * transaction; the blocks it touched normalized and the blocks it moved
114
+ * shown (closed toggles open); the caret it decides (`plan.at`: a range
115
+ * deletion, a placed flow) selected. Answers its result: `refused` when
116
+ * the document refused it, `refused` with the reason `'view'` when the
117
+ * view did (readonly, a read-only document) or a hook prevented it.
118
+ */
119
+ plan: <P>(operation: string, payload: P, prepare: (payload: P) => Prepared, block?: Block, text?: Text) => OpResult;
93
120
  /**
94
121
  * Run `body` with `lead` (a plan prepared now) composed into the first
95
122
  * operation it dispatches: one plan, so a veto of any step, or a refusal,
@@ -110,8 +137,8 @@ export declare class Dispatcher {
110
137
  * block offsets (an inline atom counting 1).
111
138
  */
112
139
  caret: {
113
- <T>(text: Text | null | undefined, offset: number, ops?: () => T): T | undefined;
114
- <T>(caret: Caret | null | undefined, ops?: () => T): T | undefined;
140
+ (text: Text | null | undefined, offset: number, ops?: () => OpResult): OpResult | undefined;
141
+ (caret: Caret | DocPosition | null | undefined, ops?: () => OpResult): OpResult | undefined;
115
142
  };
116
143
  /**
117
144
  * The cut an operation applies as it writes. Inside a user command none
@@ -122,7 +149,6 @@ export declare class Dispatcher {
122
149
  private policy;
123
150
  /** A continuation continues this view's last step, or cuts before it writes. */
124
151
  private decide;
125
- private refuse;
126
152
  private settle;
127
153
  /**
128
154
  * Run a prevention's replacement: a command of its own, so a veto of one
@@ -132,12 +158,11 @@ export declare class Dispatcher {
132
158
  */
133
159
  private replace;
134
160
  /**
135
- * The planned steps as hooks see them, under the documented
136
- * operation names. A step that is the command itself (same name, same
137
- * block) is not repeated; a write into a block the plan creates is part
138
- * of that creation. (A `removeInline` step is only ever its own command,
139
- * `removeInlineBlock`; `formatRange` steps belong to no dispatched plan
140
- * yet: no mapping. A document data patch shows on the root.)
161
+ * The planned steps as hooks see them: each as the operation it performs,
162
+ * with that operation's arguments (`ARGS`), about the block it writes
163
+ * (the root for the document's data). A step that is the command itself
164
+ * (same name, same block) is not repeated; a write into a block the plan
165
+ * creates is part of that creation.
141
166
  */
142
167
  private steps;
143
168
  }