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,7 +1,5 @@
1
1
  import { createEdytorClipboardFragment, writeEdytorClipboardData } from '../clipboard/clipboard.js';
2
2
  import { vetoable } from '../utils.js';
3
- import { observeInternalDragSources } from './onDrop.js';
4
- import { observeShiftPasteModifier } from './onPaste.js';
5
3
  import { ownsEvent } from './nativeInteractiveControl.js';
6
4
  /**
7
5
  * Copy (and the first half of cut): the guards, the extensions' `hook`, then
@@ -11,10 +9,8 @@ export const copySelection = (edytor, e, hook) => {
11
9
  // A copy or cut in a kind's own control (a bound field, a nested
12
10
  // editable island) is the control's: overriding it would put the model
13
11
  // selection's fragment on the clipboard, and a cut would delete it (`ownsEvent`).
14
- if (edytor.selection.state.isVoidEditableElement || ownsEvent(edytor.node, e))
12
+ if (edytor.selection.voidField || ownsEvent(edytor.node, e))
15
13
  return false;
16
- observeInternalDragSources(edytor.node?.getRootNode());
17
- observeShiftPasteModifier(edytor.node?.getRootNode());
18
14
  const claimed = (plugin) => vetoable((prevent) => plugin[hook]?.({ prevent, e }));
19
15
  if (edytor.dispatcher.intercept(claimed, () => e.preventDefault()))
20
16
  return false;
@@ -1,4 +1,10 @@
1
1
  import type { Edytor } from '../edytor.svelte.js';
2
+ /**
3
+ * The private MIME an editor's own chrome drag (a block handle's, a table
4
+ * row's or column's grip) tags its payload with, the dragged block's id
5
+ * (the table's for a column): no view takes it as a foreign drop.
6
+ */
7
+ export declare const EDYTOR_BLOCK_DRAG_MIME = "application/x-edytor-block-id";
2
8
  export declare const observeInternalDragSources: (rootNode: Node | null | undefined) => void;
3
9
  /**
4
10
  * A `dragstart` in the host over a selected text range (a press inside it,
@@ -24,4 +30,4 @@ export declare const onTextDragEnd: (edytor: Edytor) => undefined;
24
30
  * exception is a foreign drop other than a file on a kind's own control,
25
31
  * which is the control's (`isControlDrop`).
26
32
  */
27
- export declare const preventUnsupportedDrop: (event: DragEvent, edytor?: Edytor) => void | Promise<void>;
33
+ export declare const preventUnsupportedDrop: (event: DragEvent, edytor: Edytor) => void | Promise<void>;
@@ -2,7 +2,7 @@ import { isNativeInteractiveControl, ownsEvent } from './nativeInteractiveContro
2
2
  import { runOccurrence } from './onBeforeInput.js';
3
3
  import { createEdytorClipboardFragment, writeEdytorClipboardData } from '../clipboard/clipboard.js';
4
4
  import { endTextDrag, startTextDrag, textDragOf } from '../clipboard/moveText.js';
5
- import { getDomSelection } from '../selection/domSelection.js';
5
+ import { caretAtPoint, getDomSelection } from '../selection/domSelection.js';
6
6
  /**
7
7
  * Payloads the editor can consume on drop. Preventing `dragover` is what
8
8
  * enables a drop, so it is prevented only for these types — internal and
@@ -14,9 +14,12 @@ import { getDomSelection } from '../selection/domSelection.js';
14
14
  * claims image files; unclaimed files insert nothing).
15
15
  */
16
16
  const ACCEPTED_FOREIGN_DROP_TYPES = ['Files', 'text/html', 'text/plain', 'text/uri-list'];
17
- // Internal block-move drags (src/lib/plugins/blockHandles/) tag their
18
- // payload with this private mime type.
19
- const EDYTOR_BLOCK_DRAG_MIME = 'application/x-edytor-block-id';
17
+ /**
18
+ * The private MIME an editor's own chrome drag (a block handle's, a table
19
+ * row's or column's grip) tags its payload with, the dragged block's id
20
+ * (the table's for a column): no view takes it as a foreign drop.
21
+ */
22
+ export const EDYTOR_BLOCK_DRAG_MIME = 'application/x-edytor-block-id';
20
23
  // `dataTransfer.types` cannot distinguish a foreign text drop from an
21
24
  // editor-owned text drag (Chrome exposes text/plain + text/html for both).
22
25
  // Track the drag source instead: a `dragstart` inside the editor's root node
@@ -41,31 +44,23 @@ export const observeInternalDragSources = (rootNode) => {
41
44
  internalDragSource = null;
42
45
  }, true);
43
46
  };
44
- if (typeof document !== 'undefined') {
45
- observeInternalDragSources(document);
46
- }
47
- const isInternalDrag = (root, dataTransfer) => {
48
- if (dataTransfer && Array.from(dataTransfer.types).includes(EDYTOR_BLOCK_DRAG_MIME)) {
49
- return true;
50
- }
51
- return internalDragSource !== null && root.contains(internalDragSource);
52
- };
47
+ /** The drag started inside the host. */
48
+ const fromHost = (root) => internalDragSource !== null && root.contains(internalDragSource);
49
+ const typesOf = (dataTransfer) => Array.from(dataTransfer?.types ?? []);
53
50
  /**
54
51
  * A foreign drop on a kind's own control (a field bound to `block.data`, a
55
52
  * nested editable island) is the control's (`ownsEvent`): the editor writes
56
53
  * nothing and the browser does what the control does with it. Not a file,
57
54
  * which the browser would open in place of the page: that one is swallowed.
58
55
  */
59
- const isControlDrop = (root, event) => !Array.from(event.dataTransfer?.types ?? []).includes('Files') && ownsEvent(root, event);
56
+ const isControlDrop = (root, event) => !typesOf(event.dataTransfer).includes('Files') && ownsEvent(root, event);
60
57
  /**
61
58
  * The view's own text drag: a selected text range dragged from
62
59
  * inside the host, the block handles' drags excluded (their payload's MIME).
63
60
  */
64
- const isTextDrag = (edytor, root, dataTransfer) => edytor !== undefined &&
65
- textDragOf(edytor) !== undefined &&
66
- !Array.from(dataTransfer?.types ?? []).includes(EDYTOR_BLOCK_DRAG_MIME) &&
67
- internalDragSource !== null &&
68
- root.contains(internalDragSource);
61
+ const isTextDrag = (edytor, root, dataTransfer) => textDragOf(edytor) !== undefined &&
62
+ !typesOf(dataTransfer).includes(EDYTOR_BLOCK_DRAG_MIME) &&
63
+ fromHost(root);
69
64
  /** Where the view's text drag may land: an editable view, in its text, not a kind's control. */
70
65
  const takesTextDrop = (edytor, root, event) => !edytor.readonly &&
71
66
  edytor.dispatcher.permits() &&
@@ -98,7 +93,7 @@ export const onTextDragStart = (edytor, event) => {
98
93
  const value = edytor.selection.value;
99
94
  if (!root || ownsEvent(root, event) || value.kind !== 'text')
100
95
  return;
101
- if (edytor.selection.state.isCollapsed || edytor.isComposing)
96
+ if (edytor.selection.projection.isCollapsed || edytor.isComposing)
102
97
  return;
103
98
  // Only a drag of the selection itself: another draggable in the host drags its own thing.
104
99
  if (!startsInSelection(root, event.target))
@@ -116,59 +111,30 @@ export const onTextDragStart = (edytor, event) => {
116
111
  };
117
112
  /** The drag ended, dropped or not: no text drag. */
118
113
  export const onTextDragEnd = (edytor) => endTextDrag(edytor);
114
+ /** A drop from outside (no chrome drag, no drag from the host) of a payload the editor takes. */
119
115
  const isAcceptedForeignDrop = (root, dataTransfer) => {
120
- if (!dataTransfer || isInternalDrag(root, dataTransfer)) {
121
- return false;
122
- }
123
- return Array.from(dataTransfer.types).some((type) => ACCEPTED_FOREIGN_DROP_TYPES.includes(type));
124
- };
125
- // `caretPositionFromPoint` is the spec API (Firefox, Chromium ≥128);
126
- // `caretRangeFromPoint` is the legacy WebKit/Chromium API. Support both.
127
- const caretRangeFromPoint = (doc, x, y) => {
128
- const position = doc.caretPositionFromPoint?.(x, y);
129
- if (position?.offsetNode) {
130
- return { container: position.offsetNode, offset: position.offset };
131
- }
132
- const range = doc.caretRangeFromPoint?.(x, y);
133
- if (range) {
134
- return { container: range.startContainer, offset: range.startOffset };
135
- }
136
- return null;
137
- };
138
- const createCollapsedStaticRange = (container, offset) => {
139
- if (typeof StaticRange === 'function') {
140
- try {
141
- return new StaticRange({
142
- startContainer: container,
143
- startOffset: offset,
144
- endContainer: container,
145
- endOffset: offset
146
- });
147
- }
148
- catch {
149
- // Fall through to the structural StaticRange below.
150
- }
151
- }
152
- return {
153
- startContainer: container,
154
- startOffset: offset,
155
- endContainer: container,
156
- endOffset: offset,
157
- collapsed: true
158
- };
116
+ const types = typesOf(dataTransfer);
117
+ return (!types.includes(EDYTOR_BLOCK_DRAG_MIME) &&
118
+ !fromHost(root) &&
119
+ types.some((type) => ACCEPTED_FOREIGN_DROP_TYPES.includes(type)));
159
120
  };
160
121
  // Preventing the drop suppresses the browser's own `insertFromDrop`
161
122
  // beforeinput, so the accepted payload is the occurrence itself — the same
162
- // routing as `insertFromPaste`, with the resolved drop point as its declared
163
- // target range.
123
+ // routing as `insertFromPaste`, with the drop point as its declared target
124
+ // range (`caretAtPoint`).
164
125
  const insertFromDrop = (edytor, root, event) => {
165
- const caret = caretRangeFromPoint(root.ownerDocument, event.clientX, event.clientY);
126
+ const at = caretAtPoint(root.ownerDocument, event.clientX, event.clientY);
127
+ const point = at &&
128
+ new StaticRange({
129
+ startContainer: at.node,
130
+ startOffset: at.offset,
131
+ endContainer: at.node,
132
+ endOffset: at.offset
133
+ });
166
134
  return runOccurrence(edytor, {
167
135
  inputType: 'insertFromDrop',
168
136
  dataTransfer: event.dataTransfer,
169
- declared: caret && root.contains(caret.container)
170
- ? createCollapsedStaticRange(caret.container, caret.offset)
171
- : null,
137
+ declared: point && root.contains(point.startContainer) ? point : null,
172
138
  cancelable: true
173
139
  });
174
140
  };
@@ -186,13 +152,8 @@ const insertFromDrop = (edytor, root, event) => {
186
152
  * which is the control's (`isControlDrop`).
187
153
  */
188
154
  export const preventUnsupportedDrop = (event, edytor) => {
155
+ // Listened on the host.
189
156
  const root = event.currentTarget;
190
- if (!(root instanceof Element)) {
191
- event.preventDefault();
192
- event.stopPropagation();
193
- return;
194
- }
195
- observeInternalDragSources(root.getRootNode());
196
157
  // The view's own text drag: a move (a copy with Alt) where it may land.
197
158
  if (isTextDrag(edytor, root, event.dataTransfer)) {
198
159
  const takes = takesTextDrop(edytor, root, event);
@@ -239,6 +200,6 @@ export const preventUnsupportedDrop = (event, edytor) => {
239
200
  return;
240
201
  }
241
202
  // Mid-composition drops are swallowed: the preview owns the write path.
242
- if (edytor && !edytor.isComposing)
203
+ if (!edytor.isComposing)
243
204
  return insertFromDrop(edytor, root, event);
244
205
  };
@@ -2,14 +2,19 @@ import type { Edytor } from '../edytor.svelte.js';
2
2
  /** The DOM selection has an endpoint inside `node`. */
3
3
  export declare const selectionIsInside: (node: HTMLElement) => boolean;
4
4
  /**
5
- * The editor takes the keys after a pointer gesture on its chrome (a block
6
- * drop, a column resize, a grip click no menu answers): its host gets the
5
+ * The editor takes the keys back: after a pointer gesture on its chrome (a
6
+ * block drop, a column resize, a grip click no menu answers), a menu, panel,
7
+ * toolbar or field of the chrome giving them back, or `edytor.focus()`. The
8
+ * one way to focus the host from code: its host gets the
7
9
  * focus, without scrolling, as the editor's own focus (`focusin` restores
8
10
  * no cached caret and counts no gesture), so Mod+Z, Mod+Shift+Z and the
9
11
  * block-selection keys act at once, whatever the selection (a block
10
12
  * selection, or none: an undo giving back "no selection" keeps them). The
11
- * projector stays the only DOM-selection writer. Nothing when the focus is
12
- * already inside the host, or the view is gone.
13
+ * caret the browser parks for that focus (at the host's start) is drift,
14
+ * never adopted, and the value is displayed over it: a key typed right
15
+ * after lands at the selection, not at the host's start. The projector
16
+ * stays the only DOM-selection writer. Nothing when the host already has
17
+ * the focus (a kind's own control inside it does not), or the view is gone.
13
18
  */
14
19
  export declare const takeKeys: (edytor: Edytor) => void;
15
20
  /**
@@ -8,7 +8,8 @@
8
8
  import { on } from 'svelte/events';
9
9
  import { clearDomSelection, getActiveElement, getDomSelection, getDomSelectionSnapshot } from '../selection/domSelection.js';
10
10
  import { getYIndex } from '../selection/selection.utils.js';
11
- const getEventTimeStamp = (event) => event?.timeStamp || (typeof performance === 'undefined' ? Date.now() : performance.now());
11
+ import { noSelection } from '../session/selection.js';
12
+ import { observeInternalDragSources } from './onDrop.js';
12
13
  /** The DOM selection has an endpoint inside `node`. */
13
14
  export const selectionIsInside = (node) => {
14
15
  const selection = getDomSelection(node);
@@ -17,25 +18,30 @@ export const selectionIsInside = (node) => {
17
18
  (selection.focusNode && node.contains(selection.focusNode))));
18
19
  };
19
20
  /**
20
- * The editor takes the keys after a pointer gesture on its chrome (a block
21
- * drop, a column resize, a grip click no menu answers): its host gets the
21
+ * The editor takes the keys back: after a pointer gesture on its chrome (a
22
+ * block drop, a column resize, a grip click no menu answers), a menu, panel,
23
+ * toolbar or field of the chrome giving them back, or `edytor.focus()`. The
24
+ * one way to focus the host from code: its host gets the
22
25
  * focus, without scrolling, as the editor's own focus (`focusin` restores
23
26
  * no cached caret and counts no gesture), so Mod+Z, Mod+Shift+Z and the
24
27
  * block-selection keys act at once, whatever the selection (a block
25
28
  * selection, or none: an undo giving back "no selection" keeps them). The
26
- * projector stays the only DOM-selection writer. Nothing when the focus is
27
- * already inside the host, or the view is gone.
29
+ * caret the browser parks for that focus (at the host's start) is drift,
30
+ * never adopted, and the value is displayed over it: a key typed right
31
+ * after lands at the selection, not at the host's start. The projector
32
+ * stays the only DOM-selection writer. Nothing when the host already has
33
+ * the focus (a kind's own control inside it does not), or the view is gone.
28
34
  */
29
35
  export const takeKeys = (edytor) => {
30
36
  const node = edytor.node;
31
37
  if (!node?.isConnected || edytor.destroyed)
32
38
  return;
33
- const active = getActiveElement(node);
34
- if (active instanceof Node && node.contains(active))
39
+ if (getActiveElement(node) === node)
35
40
  return;
36
41
  edytor.expectInternalFocus();
37
42
  node.focus({ preventScroll: true });
38
43
  edytor.projector.parked();
44
+ edytor.selection.display();
39
45
  };
40
46
  /*
41
47
  * The press: one per primary button press, its `pointerdown`, or a
@@ -76,6 +82,8 @@ export const onPress = (edytor, target, listener, options) => {
76
82
  };
77
83
  };
78
84
  export const attachFocus = (edytor, node) => {
85
+ // Where the host lives (the document, or a shadow root): its drags' sources.
86
+ observeInternalDragSources(node.getRootNode());
79
87
  let lastPointerDownInsideEditorAt = Number.NEGATIVE_INFINITY;
80
88
  /*
81
89
  * A primary `pointerdown` arms `compat` until the `mousedown` it is
@@ -90,16 +98,51 @@ export const attachFocus = (edytor, node) => {
90
98
  edytor.markUserGesture();
91
99
  edytor.lastUserGestureOutsideEditor = Boolean(event.target instanceof Node && !edytor.node?.contains(event.target));
92
100
  };
101
+ /**
102
+ * A press outside the view and its chrome (the overlay's menus, handles,
103
+ * toolbar) ends its block selection (`sel.blocks.outside`, Notion): the
104
+ * selection is none. Shift or Mod keeps it (a marquee from the page's
105
+ * margin adds to it), and so does an app element marked
106
+ * `data-edytor-keep-selection` (its own toolbar acting on the blocks).
107
+ */
108
+ const pressOutside = (event) => {
109
+ const { target } = event;
110
+ if (edytor.selection.value.kind !== 'blocks' || !(target instanceof Node))
111
+ return;
112
+ if (edytor.node?.contains(target) || edytor.overlay.layer?.contains(target))
113
+ return;
114
+ if (event.shiftKey || event.metaKey || event.ctrlKey)
115
+ return;
116
+ const element = target instanceof Element ? target : target.parentElement;
117
+ if (element?.closest('[data-edytor-keep-selection]'))
118
+ return;
119
+ edytor.selection.commit(noSelection);
120
+ };
121
+ /**
122
+ * A press the model answers: on the host's own area, the margin gesture's
123
+ * (the marquee, `sel.marquee`, which gives a click back); below the last
124
+ * block, the trailing paragraph; on a block's chrome, its caret.
125
+ */
126
+ const placingPress = (event) => {
127
+ const { pointer } = edytor.selection;
128
+ if (pointer.marginPress(event))
129
+ return;
130
+ if (!pointer.belowPress(event))
131
+ pointer.chromePress(event);
132
+ };
93
133
  /** A press inside the host (its bubbling phase: an element inside that took it keeps it). */
94
134
  const pressInside = (event) => {
95
135
  // A pointer gesture abandons a live composition.
96
136
  edytor.composition.abandon();
97
- lastPointerDownInsideEditorAt = getEventTimeStamp(event);
137
+ lastPointerDownInsideEditorAt = event.timeStamp;
138
+ const { pointer } = edytor.selection;
139
+ // The margin gesture's press places no caret and starts no text drag.
140
+ if (pointer.claimed)
141
+ return;
98
142
  edytor.projector.pressed();
99
- edytor.selection.clearModelSelectionPreservation();
100
- edytor.selection.pointer.capture(event);
143
+ pointer.capture(event);
101
144
  edytor.selection.clearInlineBlockSelection();
102
- edytor.selection.pointer.collapseBlocksAt(event);
145
+ pointer.collapseBlocksAt(event);
103
146
  };
104
147
  const clearNativeSelectionAfterExternalFocus = () => {
105
148
  const activeElement = getActiveElement(node);
@@ -110,68 +153,40 @@ export const attachFocus = (edytor, node) => {
110
153
  clearDomSelection(node);
111
154
  }
112
155
  };
113
- const restoreCachedSelectionAfterKeyboardFocus = (event) => {
114
- if (edytor.readonly || event.target !== node) {
156
+ /**
157
+ * A keyboard or programmatic focus returns to the model's selection: the
158
+ * caret the browser puts at the start for the focus (its focus reset) is
159
+ * not the user's, so the value is shown again; any other DOM selection of
160
+ * the host's is the focus's own and adopted.
161
+ */
162
+ const restoreAfterKeyboardFocus = (event) => {
163
+ if (edytor.readonly || event.target !== node)
115
164
  return;
116
- }
117
- if (event.relatedTarget instanceof Node && node.contains(event.relatedTarget)) {
165
+ if (event.relatedTarget instanceof Node && node.contains(event.relatedTarget))
118
166
  return;
119
- }
120
- if (getEventTimeStamp(event) - lastPointerDownInsideEditorAt < 250) {
167
+ if (event.timeStamp - lastPointerDownInsideEditorAt < 250)
121
168
  return;
122
- }
123
- const text = edytor.selection.state.startText;
124
- if (!text) {
169
+ if (!edytor.selection.projection.start)
125
170
  return;
126
- }
127
- const offset = edytor.selection.state.yStart;
128
- const applyMeaningfulDomSelection = () => {
129
- const selection = getDomSelectionSnapshot(node);
130
- if (!selection?.anchorNode || !selection.focusNode) {
131
- return false;
132
- }
133
- if (!node.contains(selection.anchorNode) || !node.contains(selection.focusNode)) {
134
- return false;
135
- }
136
- const anchorText = edytor.selection.getTextOfNode(selection.anchorNode);
137
- const focusText = edytor.selection.getTextOfNode(selection.focusNode);
138
- if (!anchorText || !focusText) {
139
- return false;
140
- }
141
- const isBrowserFocusReset = selection.isCollapsed &&
142
- anchorText === edytor.root?.firstEditableText &&
143
- getYIndex(anchorText, selection.anchorNode, selection.anchorOffset) === 0;
144
- if (isBrowserFocusReset) {
145
- return false;
146
- }
147
- edytor.selection.applySelectionSnapshot(selection);
148
- return true;
149
- };
150
- const restore = () => {
151
- if (getActiveElement(node) !== node) {
171
+ queueMicrotask(() => {
172
+ if (getActiveElement(node) !== node)
152
173
  return;
153
- }
154
- if (applyMeaningfulDomSelection()) {
155
- return;
156
- }
157
- const s = edytor.selection.state;
158
- // A remote delivery or command may have legitimately moved the
159
- // selection since the focus-time capture — the CURRENT state
160
- // owns the caret then; writing the cached point would yank it
161
- // back to a pre-update position. The cache only wins while the
162
- // state still equals it, or when the browser collapsed the
163
- // caret to its focus-reset spot (first editable text at 0).
164
- if (!s.isCollapsed || !s.startText) {
165
- return;
166
- }
167
- const focusReset = s.startText === edytor.root?.firstEditableText && s.yStart === 0;
168
- const [targetText, targetOffset] = focusReset ? [text, offset] : [s.startText, s.yStart];
169
- if (!targetText?.node?.isConnected) {
170
- return;
171
- }
172
- edytor.selection.setAtTextOffset(targetText, Math.min(targetOffset, targetText.length));
173
- };
174
- queueMicrotask(restore);
174
+ const dom = getDomSelectionSnapshot(node);
175
+ const { anchorNode, focusNode } = dom ?? {};
176
+ const text = anchorNode && edytor.selection.getTextOfNode(anchorNode);
177
+ const own = text &&
178
+ focusNode &&
179
+ node.contains(anchorNode) &&
180
+ node.contains(focusNode) &&
181
+ edytor.selection.getTextOfNode(focusNode) &&
182
+ !(dom.isCollapsed &&
183
+ text === edytor.root?.firstEditableText &&
184
+ getYIndex(text, anchorNode, dom.anchorOffset) === 0);
185
+ if (own)
186
+ edytor.selection.applySelectionSnapshot(dom);
187
+ else
188
+ edytor.selection.select(edytor.selection.value);
189
+ });
175
190
  };
176
191
  return [
177
192
  // Any press anywhere disarms pending restores — Firefox can move
@@ -185,6 +200,7 @@ export const attachFocus = (edytor, node) => {
185
200
  compat = true;
186
201
  lonePresses.delete(edytor);
187
202
  gesture(event);
203
+ pressOutside(event);
188
204
  }, { capture: true }),
189
205
  on(node.ownerDocument, 'mousedown', (event) => {
190
206
  const press = !compat && event.isTrusted && event.button === 0;
@@ -193,14 +209,18 @@ export const attachFocus = (edytor, node) => {
193
209
  return void lonePresses.delete(edytor);
194
210
  lonePresses.set(edytor, event);
195
211
  gesture(event);
212
+ pressOutside(event);
196
213
  }, { capture: true }),
197
- // A press on a block's non-editable chrome places the caret in its text.
198
- on(node, 'pointerdown', edytor.selection.pointer.chromePress, {
214
+ // A press below the last block goes to the trailing paragraph; one on a
215
+ // block's non-editable chrome places the caret in its text.
216
+ on(node, 'pointerdown', placingPress, {
199
217
  capture: true
200
218
  }),
201
219
  on(node, 'mousedown', (event) => {
202
220
  if (lone(event))
203
- edytor.selection.pointer.chromePress(event);
221
+ placingPress(event);
222
+ else
223
+ edytor.selection.pointer.marginMouse(event);
204
224
  }, { capture: true }),
205
225
  // The document's capture listener already marked the gesture.
206
226
  on(node, 'pointerdown', pressInside),
@@ -246,7 +266,7 @@ export const attachFocus = (edytor, node) => {
246
266
  // A focus from outside (Tab, an app's `focus()`) places the user's caret.
247
267
  edytor.projector.pressed();
248
268
  }
249
- restoreCachedSelectionAfterKeyboardFocus(event);
269
+ restoreAfterKeyboardFocus(event);
250
270
  }),
251
271
  on(node, 'focusout', (event) => {
252
272
  // Focus moving to a concrete element outside the editor is the
@@ -12,9 +12,13 @@ export declare const getCollapsedDomTextSelection: (edytor: Edytor) => {
12
12
  } | null;
13
13
  export declare const handleNativeLineBreakTextValue: (edytor: Edytor, text: Text, value: string) => Promise<boolean>;
14
14
  /**
15
- * An `input` event. Model-owned drift is repaired here; browser-made text is
16
- * never adopted here: the mutation queue is the only adopter, so
17
- * the `input` flushes it — a browser-owned attempt's change is adopted there,
18
- * once, through the dispatcher — then closes the attempt it belongs to.
15
+ * An `input` event. Browser-made text is never adopted here: the mutation
16
+ * queue is the only adopter (a native line break there runs as its
17
+ * occurrence), so the `input` flushes it — a browser-owned attempt's change
18
+ * is adopted there, once, through the dispatcher — then closes the attempt it
19
+ * belongs to. Drift around a model-owned attempt is the observer's to invert;
20
+ * a restoring attempt (a delete the browser could not be kept from) also
21
+ * re-renders the text the input landed in and shows its caret again, which
22
+ * the browser moved.
19
23
  */
20
24
  export declare function onInput(this: Edytor, event: Event): Promise<void>;