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
@@ -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,63 @@ 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
122
  * Tab / Shift+Tab: 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
127
  const nest = (operation) => ({ edytor, prevent }) => prevent(() => {
134
- suppressHotkeyDomDrift(edytor, STRUCTURAL_HOTKEY_DOM_REPAIR_WINDOW_MS);
135
- const selectedBlocks = edytor.selection.selectedBlocks;
128
+ const { selection } = edytor;
129
+ const { value } = selection;
136
130
  const direction = operation === 'nestBlock' ? 'in' : 'out';
137
131
  const blocks = getSelectionBlocks(edytor);
138
132
  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)
142
- return;
143
- if (members.length)
144
- edytor.selection.selectBlocks(...members);
145
- else if (startText && endText)
146
- edytor.selection.setAtRange(startText, yStart, endText, yEnd, { isReversed });
133
+ if (moveRoots(edytor, blocks, direction).length)
134
+ selection.select(value);
147
135
  return;
148
136
  }
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
- 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);
137
+ const [selected] = selection.selectedBlocks;
138
+ const at = selection.textAt(selection.projection.start);
139
+ const block = selected ?? at?.text.parent;
140
+ if (!block)
141
+ return;
142
+ // Into the block before it; the view's move reveals a closed toggle it lands in or that adopts.
143
+ const into = block.previousBlock;
144
+ if (operation === 'nestBlock' && !into)
145
+ return edytor.dispatcher.record({ operation, status: 'refused' });
146
+ const result = operation === 'unNestBlock'
147
+ ? edytor.unNestBlock(block.id)
148
+ : edytor.nestBlock(block.id, into.id);
149
+ if (result.status !== 'applied')
150
+ return;
151
+ edytor.announcer.moved({ blocks: [block], direction }, [block]);
152
+ if (selected)
153
+ selection.select(blockSelection([block.id]));
154
+ else if (at)
155
+ caretAt(edytor, block.content[at.text.index], at.offset);
160
156
  });
161
157
  /**
162
158
  * Backspace/Delete over an editor-owned selection: the selected atom, or
163
159
  * the selected blocks (the caret lands at the end of the block before them).
160
+ * The command runs the hooks and authors its caret; the projector displays it.
164
161
  */
165
162
  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));
163
+ if (edytor.selection.inlineBlockDeletionTarget)
164
+ prevent(() => replaceSelectedAtom(edytor));
165
+ else if (edytor.selection.selectedBlocks.size)
166
+ prevent(() => deleteSelectedBlocks(edytor));
172
167
  };
173
168
  /** An Emacs kill (ctrl+h/d/k): a delete intent, or the owned selection's delete. */
174
169
  const kill = (inputType) => (payload) => {
175
170
  const { edytor, prevent } = payload;
176
- if (ownsDeleteSelection(edytor))
171
+ if (owned(edytor))
177
172
  return deleteSelection(payload);
178
- const { state, projection } = edytor.selection;
179
- if (state.startText)
173
+ const { projection } = edytor.selection;
174
+ if (edytor.selection.textAt(projection.start))
180
175
  prevent(() => edytor.ports.input.runIntent(inputType(projection)));
181
176
  };
182
177
  /**
@@ -186,10 +181,7 @@ const kill = (inputType) => (payload) => {
186
181
  * without a DOM range, so the chord is claimed at its keydown. Shift+Delete
187
182
  * is not one (the Windows cut).
188
183
  */
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
- ])));
184
+ const wordAndLineDeletes = Object.fromEntries(['alt', 'mod', 'ctrl'].flatMap((modifier) => ['backspace', 'delete'].map((key) => [`${modifier}+${key}`, deleteSelection])));
193
185
  /**
194
186
  * macOS Emacs/Cocoa text bindings. Bare `ctrl+` chords only resolve on
195
187
  * Apple platforms (the keymap folds Ctrl into `mod` elsewhere), so the table
@@ -204,9 +196,9 @@ const emacs = {
204
196
  'ctrl+k': kill((at) => at.isCollapsed && at.isAtEndOfBlock ? 'deleteContentForward' : 'deleteHardLineForward'),
205
197
  // Open-line: a soft break with the caret kept before it.
206
198
  'ctrl+o': ({ edytor, prevent }) => {
207
- if (ownsDeleteSelection(edytor) || !edytor.selection.state.startText)
199
+ if (owned(edytor) || !edytor.selection.textAt(edytor.selection.projection.start))
208
200
  return;
209
- prevent(() => edytor.dispatcher.run('insertBlock', () => edytor.ports.input.insertLineBreak(intentSnapshot(edytor, 'insertLineBreak'), 'before')));
201
+ prevent(() => edytor.dispatcher.run('insertBlocks', () => edytor.ports.input.insertLineBreak(intentSnapshot(edytor, 'insertLineBreak'), 'before')));
210
202
  },
211
203
  'ctrl+p': arrowUp,
212
204
  'ctrl+n': arrowDown
@@ -223,44 +215,21 @@ export const builtInBindings = {
223
215
  'mod+enter': ({ edytor, prevent }) => prevent(() => flipToggles(shownSelectionBlocks(edytor))),
224
216
  // The select-all ladder: the block's text, then the block, then every block
225
217
  // (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
- },
218
+ 'mod+a': ({ edytor, prevent }) => prevent(() => {
219
+ const { selection, idToBlock } = edytor;
220
+ const { start, islandRoot, isAtStartOfBlock, isAtEndOfBlock } = selection.projection;
221
+ const block = selection.textAt(start)?.text.parent;
222
+ // Every block, nested ones included: a block selection is exactly its members.
223
+ if (block ? selection.selectedBlocks.size : selection.value.kind === 'none')
224
+ selection.select(blockSelection(edytor.facade.order().filter((id) => idToBlock.has(id))));
225
+ else if (block && isAtStartOfBlock && isAtEndOfBlock)
226
+ selection.select(blockSelection([(idToBlock.get(islandRoot ?? '') ?? block).id]));
227
+ else
228
+ selection.selectLines(block);
229
+ }),
248
230
  ...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
- },
231
+ 'shift+arrowup': extend(-1),
232
+ 'shift+arrowdown': extend(1),
264
233
  arrowup: arrowUp,
265
234
  arrowdown: arrowDown,
266
235
  tab: nest('nestBlock'),
@@ -273,7 +242,7 @@ export const builtInBindings = {
273
242
  prevent(() => {
274
243
  const at = selectedBlocksExit(edytor);
275
244
  if (at)
276
- edytor.selection.setAtTextOffset(at.text, at.offset);
245
+ edytor.selection.selectText(at.text, at.offset);
277
246
  });
278
247
  },
279
248
  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
  }