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
@@ -23,6 +23,7 @@ export type Modifiers = {
23
23
  /** A chord: a key, after up to three modifiers in any order (matched case-insensitively). */
24
24
  export type HotKeyCombination = Key | `${Modifiers}+${Key}`;
25
25
  export declare class Keymap {
26
+ #private;
26
27
  private edytor;
27
28
  /** chord → bindings in precedence order. */
28
29
  private table;
@@ -30,12 +31,6 @@ export declare class Keymap {
30
31
  offered: string | null;
31
32
  get isMac(): boolean;
32
33
  constructor(edytor: Edytor, consumer?: EdytorOptions['hotkeys'], plugins?: InitializedPlugin[]);
33
- /**
34
- * A keyboard event's chord: `mod` is Cmd on Apple and Ctrl elsewhere; on
35
- * Apple bare Ctrl stays `ctrl` (the Emacs rows); a reverse tab is Shift+Tab;
36
- * the space bar is `space`.
37
- */
38
- chordOf: (event: KeyboardEvent, key?: string) => string;
39
34
  /** Offer a keydown to its bindings (the produced key first, then the layout key). */
40
35
  handle: (event: KeyboardEvent) => boolean;
41
36
  /** Run `chord`'s bindings in precedence order until one claims it. */
@@ -19,32 +19,33 @@ const CHARS = 'abcdefghijklmnopqrstuvwxyz0123456789`~!@#$%^&*()-_=+[]{}\\|;:\'",
19
19
  // prettier-ignore
20
20
  const NAMED = ['arrowup', 'arrowdown', 'arrowleft', 'arrowright', 'tab', 'enter', 'backspace', 'delete', 'space', 'escape', 'home', 'end', 'pageup', 'pagedown', 'insert', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'f10', 'f11', 'f12'];
21
21
  const MODIFIERS = ['mod', 'alt', 'ctrl', 'shift'];
22
- /** Every token a keydown's chord can carry (`chordOf`). */
23
- const TOKENS = new Set([...MODIFIERS, ...CHARS, ...NAMED]);
24
22
  /** The canonical chord: lower case, modifiers in one order, then the key. */
25
23
  const chord = (parts) => {
26
24
  const lower = parts.map((part) => part.toLowerCase());
27
25
  const key = lower.filter((part) => part && !MODIFIERS.includes(part));
28
26
  return [...MODIFIERS.filter((modifier) => lower.includes(modifier)), ...key].join('+');
29
27
  };
30
- /** US-layout keys and what Shift makes of them: a keydown reports the character typed. */
31
- const [BASE, SHIFT] = ["`1234567890-=[]\\;',./", '~!@#$%^&*()_+{}|:"<>?'];
32
- const SHIFTED = new Map([...BASE].map((base, index) => [base, SHIFT[index]]));
33
- /** Characters only Shift types (the numeric keypad types `+` and `*` unshifted). */
34
- const TYPED_WITH_SHIFT = new Set([...SHIFTED.values()].filter((key) => !'+*'.includes(key)));
35
28
  /**
36
- * Why a well-formed chord still never fires (a development hint), or null:
37
- * a character Shift types needs `shift` (`mod+shift+?`), Shift turns a key
38
- * into another character (`shift+/` arrives as `?`), and on macOS Option
39
- * with a character types text (`alt+b` is `∫`) unless `mod` or `ctrl` holds.
29
+ * Why a chord never fires (a development hint), or null: a part that is no
30
+ * token a keydown's chord can carry (`#chordOf`); a character Shift types
31
+ * needs `shift` (`mod+shift+?`), Shift turns a key into another character
32
+ * (`shift+/` arrives as `?`: US-layout keys, a keydown reports the
33
+ * character typed; the numeric keypad types `+` and `*` unshifted), and on
34
+ * macOS Option with a character types text (`alt+b` is `∫`) unless `mod` or
35
+ * `ctrl` holds.
40
36
  */
41
37
  const silent = (parts) => {
42
38
  const lower = parts.map((part) => part.toLowerCase());
39
+ const tokens = new Set([...MODIFIERS, ...CHARS, ...NAMED]);
40
+ const dead = lower.find((part) => !tokens.has(part));
41
+ if (dead !== undefined)
42
+ return `"${parts[lower.indexOf(dead)]}" is neither a modifier (mod, alt, ctrl, shift) nor a key name`;
43
43
  const key = lower.find((part) => !MODIFIERS.includes(part)) ?? '';
44
44
  const has = (modifier) => lower.includes(modifier);
45
- if (!has('shift') && TYPED_WITH_SHIFT.has(key))
45
+ const [base, shift] = ["`1234567890-=[]\\;',./", '~!@#$%^&*()_+{}|:"<>?'];
46
+ if (!has('shift') && key && shift.includes(key) && !'+*'.includes(key))
46
47
  return `"${key}" is typed with Shift: bind "${chord([...lower, 'shift'])}"`;
47
- const shifted = SHIFTED.get(key);
48
+ const shifted = key && shift[base.indexOf(key)];
48
49
  if (has('shift') && shifted)
49
50
  return `Shift turns "${key}" into "${shifted}": bind "${chord([...lower.filter((part) => part !== key), shifted])}"`;
50
51
  if (has('alt') && !has('mod') && !has('ctrl') && key.length === 1)
@@ -90,11 +91,7 @@ export class Keymap {
90
91
  continue;
91
92
  }
92
93
  const parts = keys.split(/\+(?!$)/);
93
- const dead = parts.find((part) => !TOKENS.has(part.toLowerCase()));
94
- if (DEV && dead !== undefined)
95
- console.warn(`[edytor] hotkey "${keys}" never fires: "${dead}" is neither a modifier ` +
96
- '(mod, alt, ctrl, shift) nor a key name.');
97
- const hint = DEV && dead === undefined && silent(parts);
94
+ const hint = DEV && silent(parts);
98
95
  if (hint)
99
96
  console.warn(`[edytor] hotkey "${keys}" never fires: ${hint}.`);
100
97
  const at = chord(parts);
@@ -106,7 +103,7 @@ export class Keymap {
106
103
  * Apple bare Ctrl stays `ctrl` (the Emacs rows); a reverse tab is Shift+Tab;
107
104
  * the space bar is `space`.
108
105
  */
109
- chordOf = (event, key = event.key === ' ' ? 'space' : event.key.toLowerCase()) => {
106
+ #chordOf = (event, key = event.key === ' ' ? 'space' : event.key.toLowerCase()) => {
110
107
  const back = key === 'iso_left_tab' || key === 'backtab';
111
108
  const mac = this.isMac;
112
109
  return chord([
@@ -122,7 +119,7 @@ export class Keymap {
122
119
  if (composesText(event))
123
120
  return false;
124
121
  const fallback = layoutKey(event);
125
- const chords = [this.chordOf(event), ...(fallback ? [this.chordOf(event, fallback)] : [])];
122
+ const chords = [this.#chordOf(event), ...(fallback ? [this.#chordOf(event, fallback)] : [])];
126
123
  this.offered = chords[0];
127
124
  const claimed = chords.some((at) => this.run(at, event));
128
125
  if (claimed)
@@ -25,16 +25,49 @@ export type BlockMoveRequest = {
25
25
  } | {
26
26
  direction: BlockMoveDirection;
27
27
  });
28
+ /**
29
+ * The view's nesting rule (`allowNesting`, off by default): whether a user
30
+ * gesture may place `blocks` under `parent`. With nesting off, blocks land
31
+ * only at the root or in a block made to hold children — a container (a
32
+ * list, a column, a toggle's or a callout's body: `isContainer`, the kind's
33
+ * `container`), an island (a code block's lines) — or stay under the parent
34
+ * they already have (a document holding nested blocks still edits them).
35
+ * Every move (`destination`: keys, drops, menus, `edytor.move`) and every
36
+ * new block a drop places (`canPlaceNew`) reads it.
37
+ */
38
+ export declare const nestsInto: (edytor: Edytor, parent: Block, blocks?: readonly Block[]) => boolean;
28
39
  /** Whether the move is allowed: for runs (`parts`), whether one of them may move. */
29
- export declare const canMoveBlocks: (edytor: Edytor, request: BlockMoveRequest) => boolean;
40
+ export declare const canMove: (edytor: Edytor, request: BlockMoveRequest) => boolean;
41
+ /**
42
+ * One move: the document's `moveBlocks`, an `out` step's outdent
43
+ * (`unNestBlocks`) or a beside placement (`placeBeside`), dispatched as the
44
+ * view's write — identity kept, one undo step, a closed toggle the blocks
45
+ * land in or that adopts blocks opening (every caller — keys, drops, menus,
46
+ * the public command — shows the moved blocks); `[]` when refused or
47
+ * vetoed. Runs (`parts`) move one by one, a run that cannot move staying, as
48
+ * Tab does (`dispatcher.each`). The view announces what moved
49
+ * (`announcer.moved`).
50
+ */
51
+ export declare const move: (edytor: Edytor, request: BlockMoveRequest) => Block[];
52
+ /** A new block a drop places (`placeNew`): its kind, and its id when the caller names it. */
53
+ export type NewBlock = {
54
+ type: string;
55
+ id?: string;
56
+ };
57
+ /**
58
+ * Whether new blocks of `kinds` may land at `target`'s `position` (a file
59
+ * dropped there, `placeNew`): the move's places (`destination`) asked of
60
+ * blocks not yet in the document — the container rule (`fits`) of the
61
+ * parent they land in, never inside a void or an island; beside, a layout
62
+ * kind and a target outside any island (`placeBeside` takes any block a
63
+ * column holds).
64
+ */
65
+ export declare const canPlaceNew: (edytor: Edytor, kinds: readonly string[], target: Block, position: BlockMovePosition) => boolean;
30
66
  /**
31
- * One move command (`moveBlock` for one block, `moveBlocks` for a group; an
32
- * `out` step plans the outdent, `unNestBlocks`): identity kept, one undo
33
- * step (the dispatcher cuts before it); `[]` when refused or vetoed.
34
- * Runs (`parts`) move one by one, a run that cannot move staying, as Tab
35
- * does (`dispatcher.each`). A closed toggle the blocks land in, or that
36
- * adopts blocks, opens (`revealing`): every caller — keys, drops, menus,
37
- * the public command — shows the moved blocks. The view announces what
38
- * moved (`announcer.moved`).
67
+ * Insert new blocks at `target`'s `position` (a file drop's placement):
68
+ * before or after it, inside it (its last children), or beside it — inserted
69
+ * after the block it stands beside (`besideAt`) and moved there by the one
70
+ * move path (`layout.place-beside`) — in one transaction. The caller's
71
+ * command makes it one undo step. Answers the ids placed (none: refused).
39
72
  */
40
- export declare const moveBlocks: (edytor: Edytor, request: BlockMoveRequest) => Block[];
73
+ export declare const placeNew: (edytor: Edytor, blocks: readonly NewBlock[], target: Block, position: BlockMovePosition) => string[];
@@ -1,5 +1,3 @@
1
- import { dispatchPlan } from '../block/block.utils.js';
2
- import { revealing } from '../selection/replaceSelection.js';
3
1
  /** The positions that place the blocks beside the target, in a layout. */
4
2
  const BESIDE = ['left', 'right'];
5
3
  const isBeside = (position) => BESIDE.includes(position);
@@ -27,12 +25,28 @@ const placement = (edytor, request) => {
27
25
  };
28
26
  const POSITIONS = ['before', 'after', 'inside', ...BESIDE];
29
27
  /**
30
- * The move op's payload, or `null` when refused: a well-formed request, then
31
- * the document's one structural answer (`canPlace` — the predicate the
32
- * move op applies at execution; an `out` step asks the outdent plan, which
33
- * places the blocks as the kind they take there: a paragraph outdented into
34
- * a list is its item; `left`/`right` ask the beside plan,
35
- * `placeBeside`). Extensions may still veto the command.
28
+ * The view's nesting rule (`allowNesting`, off by default): whether a user
29
+ * gesture may place `blocks` under `parent`. With nesting off, blocks land
30
+ * only at the root or in a block made to hold children — a container (a
31
+ * list, a column, a toggle's or a callout's body: `isContainer`, the kind's
32
+ * `container`), an island (a code block's lines) — or stay under the parent
33
+ * they already have (a document holding nested blocks still edits them).
34
+ * Every move (`destination`: keys, drops, menus, `edytor.move`) and every
35
+ * new block a drop places (`canPlaceNew`) reads it.
36
+ */
37
+ export const nestsInto = (edytor, parent, blocks = []) => edytor.allowNesting ||
38
+ parent.isRoot ||
39
+ parent.isContainer ||
40
+ !!parent.definition.container ||
41
+ edytor.facade.isIsland(parent.id) ||
42
+ (blocks.length > 0 && blocks.every((block) => block.parent === parent));
43
+ /**
44
+ * The document write a move request is, or `null` when refused: a
45
+ * well-formed request, then the document's one structural answer
46
+ * (`canPlace` — the predicate the move applies at execution; an `out` step
47
+ * asks the outdent plan, which places the blocks as the kind they take
48
+ * there: a paragraph outdented into a list is its item; `left`/`right` ask
49
+ * the beside plan, `placeBeside`). Extensions may still veto it.
36
50
  */
37
51
  const destination = (edytor, request) => {
38
52
  const move = placement(edytor, request);
@@ -49,21 +63,24 @@ const destination = (edytor, request) => {
49
63
  // root or a column) and owns every refusal (fits, its own subtree).
50
64
  if (isBeside(position)) {
51
65
  return 'writes' in edytor.facade.prepare.placeBeside(ids, target.id, position)
52
- ? { blocks, path: target.path, beside: { target, side: position } }
66
+ ? { blocks, write: () => edytor.placeBeside(ids, target.id, position) }
53
67
  : null;
54
68
  }
55
69
  // Inside a container they are no items of: under its last item (Tab after a list).
56
70
  const nest = () => edytor.idToBlock.get(edytor.facade.nestParent(ids, target.id));
57
71
  const parent = position === 'inside' ? (nest() ?? target) : target.parent;
58
- const placeable = (to) => 'direction' in request && request.direction === 'out'
59
- ? 'writes' in edytor.facade.prepare.unNestBlocks(ids)
60
- : edytor.facade.canPlace(ids, to.isRoot ? null : to.id);
61
- if (!parent || !placeable(parent))
72
+ // The outdent plan: the siblings after the last block follow it.
73
+ if ('direction' in request && request.direction === 'out')
74
+ return 'writes' in edytor.facade.prepare.unNestBlocks(ids)
75
+ ? { blocks, write: () => edytor.unNestBlocks(ids) }
76
+ : null;
77
+ const to = parent?.isRoot ? null : parent?.id;
78
+ if (!parent || !nestsInto(edytor, parent, blocks) || !edytor.facade.canPlace(ids, to))
62
79
  return null;
63
80
  const at = position === 'inside' ? parent.children.length : target.index + (position === 'after' ? 1 : 0);
64
81
  // The document counts the destination's children without the moved blocks.
65
82
  const index = at - blocks.filter((block) => block.parent === parent && block.index < at).length;
66
- return { blocks, path: [...(parent.isRoot ? [] : parent.path), index] };
83
+ return { blocks, write: () => edytor.moveBlocks(ids, { parent: to, index }) };
67
84
  };
68
85
  /**
69
86
  * An `in` or `out` step over siblings as its runs of adjacent ones:
@@ -88,24 +105,24 @@ const parts = (edytor, request) => {
88
105
  return runs.map((run) => ({ blocks: run, direction }));
89
106
  };
90
107
  /** Whether the move is allowed: for runs (`parts`), whether one of them may move. */
91
- export const canMoveBlocks = (edytor, request) => parts(edytor, request).some((part) => destination(edytor, part) !== null);
108
+ export const canMove = (edytor, request) => parts(edytor, request).some((part) => destination(edytor, part) !== null);
92
109
  /**
93
- * One move command (`moveBlock` for one block, `moveBlocks` for a group; an
94
- * `out` step plans the outdent, `unNestBlocks`): identity kept, one undo
95
- * step (the dispatcher cuts before it); `[]` when refused or vetoed.
96
- * Runs (`parts`) move one by one, a run that cannot move staying, as Tab
97
- * does (`dispatcher.each`). A closed toggle the blocks land in, or that
98
- * adopts blocks, opens (`revealing`): every caller — keys, drops, menus,
99
- * the public command — shows the moved blocks. The view announces what
100
- * moved (`announcer.moved`).
110
+ * One move: the document's `moveBlocks`, an `out` step's outdent
111
+ * (`unNestBlocks`) or a beside placement (`placeBeside`), dispatched as the
112
+ * view's write — identity kept, one undo step, a closed toggle the blocks
113
+ * land in or that adopts blocks opening (every caller — keys, drops, menus,
114
+ * the public command — shows the moved blocks); `[]` when refused or
115
+ * vetoed. Runs (`parts`) move one by one, a run that cannot move staying, as
116
+ * Tab does (`dispatcher.each`). The view announces what moved
117
+ * (`announcer.moved`).
101
118
  */
102
- export const moveBlocks = (edytor, request) => {
119
+ export const move = (edytor, request) => {
103
120
  const runs = parts(edytor, request);
104
- const moved = revealing(request.blocks, () => runs.length > 1
121
+ const moved = runs.length > 1
105
122
  ? edytor.dispatcher
106
123
  .each('moveBlocks', runs, (run) => place(edytor, run))
107
124
  .flatMap((moved) => moved ?? [])
108
- : place(edytor, runs[0] ?? request));
125
+ : place(edytor, runs[0] ?? request);
109
126
  // Said to assistive technology: what moved, and where (`session/announcer`).
110
127
  edytor.announcer.moved(request, moved);
111
128
  return moved;
@@ -114,39 +131,64 @@ const place = (edytor, request) => {
114
131
  const move = destination(edytor, request);
115
132
  if (!move) {
116
133
  // Refused before any command ran: `last` still reports it (commands#results).
117
- const operation = request.blocks.length > 1 ? 'moveBlocks' : 'moveBlock';
118
- edytor.dispatcher.record({ operation, status: request.blocks.length ? 'refused' : 'noop' });
134
+ const status = request.blocks.length ? 'refused' : 'noop';
135
+ edytor.dispatcher.record({ operation: 'moveBlocks', status });
119
136
  return [];
120
137
  }
121
- const [first, ...rest] = move.blocks;
122
- if (move.beside) {
123
- const { beside } = move;
124
- // The beside plan, from the payload hooks leave: a new column, or a new
125
- // layout wrapping the target; the sources cleaned in the same plan.
126
- const ids = move.blocks.map((block) => block.id);
127
- const besides = (payload) => payload.beside
128
- ? edytor.facade.prepare.placeBeside(ids, payload.beside.target.id, payload.beside.side)
129
- : { status: 'refused', ids: [] };
130
- const touched = [
131
- ...new Set([...move.blocks.map((block) => block.parent), beside.target.parent])
132
- ];
133
- const applied = rest.length
134
- ? dispatchPlan(first, 'moveBlocks', move, besides, touched)
135
- : dispatchPlan(first, 'moveBlock', { path: move.path, beside }, besides, touched);
136
- return applied ? move.blocks : [];
137
- }
138
- if ('direction' in request && request.direction === 'out') {
139
- // The outdent plan: the siblings after the last block follow it.
140
- const ids = move.blocks.map((block) => block.id);
141
- const outdent = () => edytor.facade.prepare.unNestBlocks(ids);
142
- const touched = [first.parent, first.parent?.parent, move.blocks.at(-1)];
143
- const applied = rest.length
144
- ? dispatchPlan(first, 'moveBlocks', move, outdent, touched)
145
- : dispatchPlan(first, 'moveBlock', { path: move.path }, outdent, touched);
146
- return applied ? move.blocks : [];
147
- }
148
- if (rest.length)
149
- return first.moveBlocks(move) ?? [];
150
- const moved = first.moveBlock(move);
151
- return moved ? [moved] : [];
138
+ const result = move.write();
139
+ return result.status === 'applied' ? move.blocks : [];
140
+ };
141
+ /**
142
+ * Whether new blocks of `kinds` may land at `target`'s `position` (a file
143
+ * dropped there, `placeNew`): the move's places (`destination`) asked of
144
+ * blocks not yet in the document — the container rule (`fits`) of the
145
+ * parent they land in, never inside a void or an island; beside, a layout
146
+ * kind and a target outside any island (`placeBeside` takes any block a
147
+ * column holds).
148
+ */
149
+ export const canPlaceNew = (edytor, kinds, target, position) => {
150
+ const { facade } = edytor;
151
+ if (edytor.readonly || !kinds.length || !target.isInTree || target.isRoot)
152
+ return false;
153
+ if (!POSITIONS.includes(position) || facade.insideIsland(target.id))
154
+ return false;
155
+ if (isBeside(position))
156
+ return ([...edytor.blocks.values()].some((definition) => definition.layout) &&
157
+ !facade.isIsland(target.id));
158
+ const parent = position === 'inside' ? target : target.parent;
159
+ if (!parent || !nestsInto(edytor, parent))
160
+ return false;
161
+ const to = parent.isRoot ? null : parent.id;
162
+ if (to !== null && (facade.isVoid(to) || facade.isIsland(to)))
163
+ return false;
164
+ return kinds.every((kind) => facade.fits(to, kind));
165
+ };
166
+ /**
167
+ * Insert new blocks at `target`'s `position` (a file drop's placement):
168
+ * before or after it, inside it (its last children), or beside it — inserted
169
+ * after the block it stands beside (`besideAt`) and moved there by the one
170
+ * move path (`layout.place-beside`) — in one transaction. The caller's
171
+ * command makes it one undo step. Answers the ids placed (none: refused).
172
+ */
173
+ export const placeNew = (edytor, blocks, target, position) => {
174
+ const kinds = blocks.map((block) => block.type);
175
+ if (!canPlaceNew(edytor, kinds, target, position))
176
+ return [];
177
+ const beside = isBeside(position);
178
+ const at = beside ? (edytor.idToBlock.get(edytor.facade.besideAt(target.id)) ?? target) : target;
179
+ const parent = position === 'inside' ? target : at.parent;
180
+ const destination = position === 'inside'
181
+ ? { parent: target.id, index: target.children.length }
182
+ : {
183
+ parent: !parent || parent.isRoot ? null : parent.id,
184
+ index: at.index + (position === 'before' ? 0 : 1)
185
+ };
186
+ return edytor.transact(() => {
187
+ const { ids } = edytor.insertBlocks(destination, blocks.map((block) => ({ ...block })));
188
+ if (!beside || !ids.length)
189
+ return [...ids];
190
+ const placed = ids.flatMap((id) => edytor.idToBlock.get(id) ?? []);
191
+ move(edytor, { blocks: placed, target, position });
192
+ return [...ids];
193
+ });
152
194
  };
@@ -4,8 +4,9 @@
4
4
  *
5
5
  * The stream is the document order of the displayable blocks (a
6
6
  * Surface fact: a collapsed toggle's body or a phantom content slot holds no
7
- * stop), each block's content parts in order: offsets inside its texts at
8
- * grapheme (or word) boundaries, with the inline atoms between them. A key
7
+ * stop), each block's stops in block offsets (an inline atom counts 1, as
8
+ * the projection's points): grapheme (or word) boundaries inside its texts,
9
+ * the inline atoms between them. A key
9
10
  * names a unit (grapheme, word, block edge, document edge) and a direction;
10
11
  * the arrow and word keys are visual, resolved once from the focus text's
11
12
  * computed direction (RTL).
@@ -22,6 +23,7 @@
22
23
  * lands it on no caret stop (`landed`).
23
24
  */
24
25
  import type { Edytor } from '../edytor.svelte.js';
26
+ import type { Block } from '../block/block.svelte.js';
25
27
  import type { HotKey } from './keymap.js';
26
28
  /**
27
29
  * With no target (`untargeted`: the value is `none`, no gesture placed the
@@ -47,6 +49,12 @@ export declare const move: (edytor: Edytor, unit: Unit, key: Dir | "left" | "rig
47
49
  * moves keep the goal column. Answers whether a text selection moved.
48
50
  */
49
51
  export declare const extendVertically: (edytor: Edytor, dir: Dir) => boolean;
52
+ /**
53
+ * The block a collapsed text caret sits on the last line of (a line box
54
+ * where the view lays one out, else a line break), if it does: where
55
+ * ArrowDown leaves the block (`nav.trailing.exit`, `body.down`).
56
+ */
57
+ export declare const onLastLine: (edytor: Edytor) => Block | undefined;
50
58
  /**
51
59
  * The trailing paragraph (`nav.trailing`, Notion): the caret goes to an
52
60
  * empty top-level block of the root's default kind after the document's