edytor 1.0.0-rc.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (667) hide show
  1. package/README.md +21 -39
  2. package/dist/block/block.svelte.d.ts +11 -84
  3. package/dist/block/block.svelte.js +30 -134
  4. package/dist/block/colors.d.ts +0 -9
  5. package/dist/block/colors.js +1 -18
  6. package/dist/block/contentRange.d.ts +5 -1
  7. package/dist/block/contentRange.js +15 -16
  8. package/dist/block/inlineBlock.svelte.d.ts +11 -9
  9. package/dist/block/inlineBlock.svelte.js +18 -21
  10. package/dist/clipboard/createClipboardFragment.js +22 -64
  11. package/dist/clipboard/fragmentData.js +17 -42
  12. package/dist/clipboard/htmlFlow.js +7 -7
  13. package/dist/clipboard/insertClipboardFragment.js +5 -4
  14. package/dist/clipboard/moveText.js +16 -8
  15. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  16. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  17. package/dist/cloudflare/DocumentRoom.d.ts +4 -17
  18. package/dist/cloudflare/DocumentRoom.js +3 -5
  19. package/dist/cloudflare/move.d.ts +1 -18
  20. package/dist/cloudflare/move.js +2 -48
  21. package/dist/cloudflare/room/admission.d.ts +1 -60
  22. package/dist/cloudflare/room/admission.js +25 -29
  23. package/dist/cloudflare/room/comments.d.ts +1 -3
  24. package/dist/cloudflare/room/comments.js +6 -6
  25. package/dist/cloudflare/room/context.d.ts +25 -82
  26. package/dist/cloudflare/room/context.js +8 -8
  27. package/dist/cloudflare/room/forged.d.ts +1 -1
  28. package/dist/cloudflare/room/forged.js +2 -12
  29. package/dist/cloudflare/room/frames.d.ts +1 -1
  30. package/dist/cloudflare/room/frames.js +1 -1
  31. package/dist/cloudflare/room/history.d.ts +1 -25
  32. package/dist/cloudflare/room/history.js +39 -54
  33. package/dist/cloudflare/room/moves.d.ts +1 -13
  34. package/dist/cloudflare/room/moves.js +33 -57
  35. package/dist/cloudflare/room/presence.d.ts +1 -11
  36. package/dist/cloudflare/room/presence.js +4 -4
  37. package/dist/cloudflare/room/purge.d.ts +1 -2
  38. package/dist/cloudflare/room/purge.js +2 -2
  39. package/dist/cloudflare/room/replicas.d.ts +1 -7
  40. package/dist/cloudflare/room/replicas.js +2 -2
  41. package/dist/cloudflare/room/storage.d.ts +3 -32
  42. package/dist/cloudflare/room/storage.js +33 -108
  43. package/dist/cloudflare/room/updates.d.ts +4 -4
  44. package/dist/cloudflare/room/updates.js +17 -24
  45. package/dist/cloudflare/room/validation.d.ts +1 -5
  46. package/dist/cloudflare/room/validation.js +16 -37
  47. package/dist/collaboration/RemoteSelections.svelte +13 -17
  48. package/dist/collaboration/awarenessSelection.d.ts +22 -1
  49. package/dist/collaboration/awarenessSelection.js +42 -0
  50. package/dist/collaboration/comments/client.d.ts +2 -2
  51. package/dist/collaboration/comments/client.js +1 -1
  52. package/dist/collaboration/history/index.d.ts +5 -5
  53. package/dist/collaboration/history/index.js +5 -5
  54. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  55. package/dist/collaboration/history/panel.svelte.js +223 -0
  56. package/dist/collaboration/providers.d.ts +12 -3
  57. package/dist/collaboration/providers.js +5 -4
  58. package/dist/components/Block.svelte +42 -56
  59. package/dist/components/Block.svelte.d.ts +7 -5
  60. package/dist/components/Content.svelte +1 -5
  61. package/dist/components/Edytor.svelte +82 -99
  62. package/dist/components/Edytor.svelte.d.ts +16 -13
  63. package/dist/components/InlineBlock.svelte +1 -1
  64. package/dist/components/Ranges.svelte +96 -0
  65. package/dist/components/Ranges.svelte.d.ts +19 -0
  66. package/dist/components/Suggestion.svelte +3 -2
  67. package/dist/components/Text.svelte +2 -5
  68. package/dist/components/Text.svelte.d.ts +1 -1
  69. package/dist/crdt/admission.d.ts +2 -9
  70. package/dist/crdt/admission.js +3 -9
  71. package/dist/crdt/attribution/attribution.d.ts +11 -72
  72. package/dist/crdt/attribution/attribution.js +5 -52
  73. package/dist/crdt/attribution/block.d.ts +0 -78
  74. package/dist/crdt/attribution/block.js +1 -144
  75. package/dist/crdt/data.d.ts +18 -13
  76. package/dist/crdt/data.js +49 -71
  77. package/dist/crdt/doc/anchors.js +4 -4
  78. package/dist/crdt/doc/content.d.ts +5 -1
  79. package/dist/crdt/doc/content.js +3 -1
  80. package/dist/crdt/doc/delete.d.ts +1 -0
  81. package/dist/crdt/doc/funnel.d.ts +0 -23
  82. package/dist/crdt/doc/funnel.js +34 -85
  83. package/dist/crdt/doc/gate.d.ts +8 -9
  84. package/dist/crdt/doc/gate.js +7 -17
  85. package/dist/crdt/doc/history.d.ts +87 -14
  86. package/dist/crdt/doc/history.js +334 -149
  87. package/dist/crdt/doc/layout.d.ts +0 -1
  88. package/dist/crdt/doc/layout.js +2 -3
  89. package/dist/crdt/doc/meta.d.ts +4 -4
  90. package/dist/crdt/doc/meta.js +10 -21
  91. package/dist/crdt/doc/moves.d.ts +4 -4
  92. package/dist/crdt/doc/moves.js +5 -5
  93. package/dist/crdt/doc/plan.d.ts +2 -0
  94. package/dist/crdt/doc/plan.js +2 -0
  95. package/dist/crdt/doc/reads.d.ts +8 -5
  96. package/dist/crdt/doc/reads.js +49 -50
  97. package/dist/crdt/doc/seed.d.ts +15 -6
  98. package/dist/crdt/doc/seed.js +27 -26
  99. package/dist/crdt/doc/split-merge.d.ts +1 -3
  100. package/dist/crdt/doc/split-merge.js +4 -5
  101. package/dist/crdt/doc/steps.d.ts +3 -7
  102. package/dist/crdt/doc/steps.js +20 -9
  103. package/dist/crdt/doc/types.d.ts +0 -10
  104. package/dist/crdt/document.d.ts +32 -115
  105. package/dist/crdt/document.js +216 -302
  106. package/dist/crdt/edytor-doc.d.ts +689 -90
  107. package/dist/crdt/edytor-doc.js +74 -149
  108. package/dist/crdt/engine-api.d.ts +15 -47
  109. package/dist/crdt/engine.d.ts +7 -17
  110. package/dist/crdt/engine.js +9 -19
  111. package/dist/crdt/flow.d.ts +9 -37
  112. package/dist/crdt/flow.js +260 -238
  113. package/dist/crdt/index.d.ts +32 -85
  114. package/dist/crdt/index.js +21 -47
  115. package/dist/crdt/operations.d.ts +24 -33
  116. package/dist/crdt/operations.js +8 -17
  117. package/dist/crdt/placement/display.d.ts +0 -2
  118. package/dist/crdt/placement/display.js +0 -15
  119. package/dist/crdt/placement/model.d.ts +160 -12
  120. package/dist/crdt/placement/model.js +413 -414
  121. package/dist/crdt/placement/rank.d.ts +1 -5
  122. package/dist/crdt/placement/rank.js +28 -38
  123. package/dist/crdt/props.d.ts +32 -0
  124. package/dist/crdt/props.js +172 -0
  125. package/dist/crdt/protocol.d.ts +4 -5
  126. package/dist/crdt/protocol.js +3 -4
  127. package/dist/crdt/protocols/awareness.d.ts +3 -7
  128. package/dist/crdt/protocols/awareness.js +17 -33
  129. package/dist/crdt/protocols/envelope.d.ts +9 -29
  130. package/dist/crdt/protocols/envelope.js +8 -25
  131. package/dist/crdt/protocols/sync.d.ts +15 -30
  132. package/dist/crdt/protocols/sync.js +27 -89
  133. package/dist/crdt/providers/bound.d.ts +3 -1
  134. package/dist/crdt/providers/bound.js +3 -1
  135. package/dist/crdt/providers/container.d.ts +11 -17
  136. package/dist/crdt/providers/container.js +39 -27
  137. package/dist/crdt/providers/index.d.ts +34 -6
  138. package/dist/crdt/providers/index.js +106 -111
  139. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  140. package/dist/crdt/providers/indexeddb.js +29 -90
  141. package/dist/crdt/providers/room.d.ts +58 -2
  142. package/dist/crdt/providers/room.js +38 -21
  143. package/dist/crdt/providers/websocket.d.ts +1 -1
  144. package/dist/crdt/providers/websocket.js +3 -4
  145. package/dist/crdt/purge.d.ts +2 -2
  146. package/dist/crdt/purge.js +69 -6
  147. package/dist/crdt/rangeDelete.d.ts +4 -42
  148. package/dist/crdt/rangeDelete.js +7 -6
  149. package/dist/crdt/restore.d.ts +21 -1
  150. package/dist/crdt/restore.js +54 -59
  151. package/dist/crdt/schema.d.ts +2 -2
  152. package/dist/crdt/schema.js +4 -5
  153. package/dist/crdt/semantics.d.ts +10 -15
  154. package/dist/crdt/semantics.js +22 -21
  155. package/dist/crdt/storage.d.ts +7 -13
  156. package/dist/crdt/storage.js +10 -24
  157. package/dist/crdt/structs.d.ts +42 -47
  158. package/dist/crdt/structs.js +76 -67
  159. package/dist/crdt/tables.d.ts +9 -0
  160. package/dist/crdt/tables.js +20 -0
  161. package/dist/crdt/text/delete-index.d.ts +0 -13
  162. package/dist/crdt/text/delete-index.js +7 -14
  163. package/dist/crdt/text/deletes.d.ts +9 -22
  164. package/dist/crdt/text/deletes.js +11 -74
  165. package/dist/crdt/text/index/cache.js +3 -3
  166. package/dist/crdt/text/index/fold.d.ts +1 -2
  167. package/dist/crdt/text/index/fold.js +15 -10
  168. package/dist/crdt/text/index/layout.d.ts +0 -10
  169. package/dist/crdt/text/index/layout.js +6 -20
  170. package/dist/crdt/text/index/records.js +2 -1
  171. package/dist/crdt/text/index/report.js +5 -6
  172. package/dist/crdt/text/index/shared.d.ts +11 -4
  173. package/dist/crdt/text/index/shared.js +8 -7
  174. package/dist/crdt/text/index/state.d.ts +3 -33
  175. package/dist/crdt/text/index/state.js +2 -4
  176. package/dist/crdt/text/model.d.ts +82 -2
  177. package/dist/crdt/text/model.js +344 -354
  178. package/dist/crdt/text/rows.d.ts +0 -2
  179. package/dist/crdt/text/rows.js +0 -11
  180. package/dist/crdt/text/runs.d.ts +6 -3
  181. package/dist/crdt/text/runs.js +132 -137
  182. package/dist/crdt/text/streams.d.ts +1 -1
  183. package/dist/crdt/text/streams.js +1 -1
  184. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  185. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  186. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  187. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  188. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  189. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  190. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  191. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  192. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  193. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  194. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  195. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  196. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  197. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  198. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  199. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  200. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  201. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  202. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  203. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  204. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  205. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  206. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  207. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  208. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  209. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  210. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  211. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  212. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  213. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  214. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  215. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  216. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  217. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  218. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  219. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  220. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  221. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  222. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  223. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  224. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  225. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  226. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  227. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  228. package/dist/dnd/autoScroll.js +1 -2
  229. package/dist/{plugins/blockHandles → dnd}/dropIndicator.d.ts +2 -2
  230. package/dist/{plugins/blockHandles → dnd}/dropIndicator.js +52 -60
  231. package/dist/{plugins/blockHandles → dnd}/geometry.d.ts +4 -3
  232. package/dist/{plugins/blockHandles → dnd}/geometry.js +6 -6
  233. package/dist/dnd/placement.d.ts +200 -0
  234. package/dist/dnd/placement.js +426 -0
  235. package/dist/dnd/pragmatic.d.ts +4 -22
  236. package/dist/dnd/pragmatic.js +7 -26
  237. package/dist/dnd/track.d.ts +14 -0
  238. package/dist/dnd/track.js +55 -0
  239. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  240. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  241. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  242. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  243. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  254. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  265. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +36 -0
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  293. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  294. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  295. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  296. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  297. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  298. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  299. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  300. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  301. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  302. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  303. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  304. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  305. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  306. package/dist/edytor.svelte.d.ts +46 -63
  307. package/dist/edytor.svelte.js +126 -181
  308. package/dist/events/beforeInputCommands.d.ts +6 -11
  309. package/dist/events/beforeInputCommands.js +189 -181
  310. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  311. package/dist/events/beforeInputDeleteCommands.js +153 -204
  312. package/dist/events/domTextOffset.d.ts +9 -9
  313. package/dist/events/domTextOffset.js +20 -48
  314. package/dist/events/events.utils.d.ts +0 -2
  315. package/dist/events/events.utils.js +0 -4
  316. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  317. package/dist/events/nativeInteractiveControl.js +28 -56
  318. package/dist/events/onBeforeInput.d.ts +6 -1
  319. package/dist/events/onBeforeInput.js +207 -331
  320. package/dist/events/onCopy.js +1 -5
  321. package/dist/events/onDrop.d.ts +7 -1
  322. package/dist/events/onDrop.js +64 -78
  323. package/dist/events/onFocus.d.ts +9 -4
  324. package/dist/events/onFocus.js +45 -67
  325. package/dist/events/onInput.d.ts +8 -4
  326. package/dist/events/onInput.js +34 -147
  327. package/dist/events/onKeyDown.js +55 -122
  328. package/dist/events/onPaste.d.ts +14 -1
  329. package/dist/events/onPaste.js +51 -76
  330. package/dist/index.d.ts +11 -15
  331. package/dist/index.js +3 -3
  332. package/dist/kinds.d.ts +4 -6
  333. package/dist/kinds.js +28 -27
  334. package/dist/labels.d.ts +83 -320
  335. package/dist/labels.js +181 -408
  336. package/dist/plugins/Chrome.svelte +29 -0
  337. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  338. package/dist/plugins/Control.svelte +23 -0
  339. package/dist/plugins/Control.svelte.d.ts +30 -0
  340. package/dist/plugins/anchored.svelte.d.ts +47 -0
  341. package/dist/plugins/anchored.svelte.js +73 -0
  342. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  343. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  344. package/dist/plugins/bands.svelte.d.ts +57 -0
  345. package/dist/plugins/bands.svelte.js +95 -0
  346. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -154
  347. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  348. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +21 -196
  349. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +158 -573
  350. package/dist/plugins/blockHandles/BlockHandles.svelte +15 -23
  351. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  352. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +25 -39
  353. package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -185
  354. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  355. package/dist/plugins/blockHandles/dragPreview.js +18 -16
  356. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +28 -38
  357. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +116 -183
  358. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  359. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  360. package/dist/plugins/brand.d.ts +8 -0
  361. package/dist/plugins/brand.js +8 -0
  362. package/dist/plugins/chrome.d.ts +45 -38
  363. package/dist/plugins/chrome.js +59 -36
  364. package/dist/plugins/code/CodeHeader.svelte +8 -38
  365. package/dist/plugins/code/CodePlugin.svelte +53 -56
  366. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  367. package/dist/plugins/code/LanguageMenu.svelte +16 -125
  368. package/dist/plugins/code/LanguageMenu.svelte.d.ts +2 -1
  369. package/dist/plugins/code/code.css +5 -117
  370. package/dist/plugins/code/header.svelte.d.ts +2 -11
  371. package/dist/plugins/code/header.svelte.js +11 -38
  372. package/dist/plugins/code/languageMenu.svelte.d.ts +12 -32
  373. package/dist/plugins/code/languageMenu.svelte.js +30 -160
  374. package/dist/plugins/code/languages.d.ts +9 -22
  375. package/dist/plugins/code/languages.js +39 -128
  376. package/dist/plugins/columns/ColumnResize.svelte +16 -27
  377. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  378. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  379. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  380. package/dist/plugins/columns/columns.css +7 -26
  381. package/dist/plugins/columns/gaps.d.ts +7 -5
  382. package/dist/plugins/columns/gaps.js +11 -6
  383. package/dist/plugins/columns/resize.svelte.d.ts +17 -54
  384. package/dist/plugins/columns/resize.svelte.js +80 -173
  385. package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
  386. package/dist/plugins/comments/CommentsController.svelte.js +14 -25
  387. package/dist/plugins/comments/CommentsSidebar.svelte +82 -431
  388. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +4 -2
  389. package/dist/plugins/comments/commentsPlugin.d.ts +25 -9
  390. package/dist/plugins/comments/commentsPlugin.js +12 -10
  391. package/dist/plugins/equation/EquationEditor.svelte +16 -130
  392. package/dist/plugins/equation/EquationEditor.svelte.d.ts +1 -2
  393. package/dist/plugins/equation/EquationPlugin.svelte +109 -172
  394. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +3 -2
  395. package/dist/plugins/equation/EquationView.svelte +20 -11
  396. package/dist/plugins/equation/equation.css +7 -0
  397. package/dist/plugins/equation/equation.svelte.d.ts +37 -24
  398. package/dist/plugins/equation/equation.svelte.js +20 -94
  399. package/dist/plugins/equation/katex.js +6 -9
  400. package/dist/plugins/fileDrop.d.ts +28 -0
  401. package/dist/plugins/fileDrop.js +116 -0
  402. package/dist/plugins/find/FindController.svelte.d.ts +8 -13
  403. package/dist/plugins/find/FindController.svelte.js +34 -55
  404. package/dist/plugins/find/findPlugin.d.ts +4 -8
  405. package/dist/plugins/find/findPlugin.js +29 -9
  406. package/dist/plugins/image/ImageChrome.svelte +6 -167
  407. package/dist/plugins/image/ImageChrome.svelte.d.ts +0 -2
  408. package/dist/plugins/image/ImagePlugin.svelte +71 -151
  409. package/dist/plugins/image/ImagePlugin.svelte.d.ts +12 -41
  410. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  411. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  412. package/dist/plugins/image/controls.svelte.d.ts +6 -36
  413. package/dist/plugins/image/controls.svelte.js +43 -212
  414. package/dist/plugins/image/image.css +17 -0
  415. package/dist/plugins/image/image.d.ts +0 -5
  416. package/dist/plugins/image/image.js +0 -3
  417. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  418. package/dist/plugins/image/toolbar.svelte.js +145 -0
  419. package/dist/plugins/index.d.ts +30 -26
  420. package/dist/plugins/index.js +28 -22
  421. package/dist/plugins/list.svelte.d.ts +128 -0
  422. package/dist/plugins/list.svelte.js +217 -0
  423. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  424. package/dist/plugins/markdownShortcuts.js +10 -9
  425. package/dist/plugins/marquee/MarqueeBox.svelte +3 -20
  426. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +1 -1
  427. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +0 -2
  428. package/dist/plugins/marquee/MarqueeController.svelte.js +20 -23
  429. package/dist/plugins/marquee/marquee.js +4 -21
  430. package/dist/plugins/marquee/marqueePlugin.d.ts +4 -3
  431. package/dist/plugins/marquee/marqueePlugin.js +16 -15
  432. package/dist/plugins/media/AudioPlugin.svelte +13 -88
  433. package/dist/plugins/media/AudioPlugin.svelte.d.ts +11 -4
  434. package/dist/plugins/media/BookmarkPlugin.svelte +113 -120
  435. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +10 -15
  436. package/dist/plugins/media/EmbedPlugin.svelte +82 -86
  437. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +11 -17
  438. package/dist/plugins/media/EmptySlot.svelte +44 -0
  439. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  440. package/dist/plugins/media/FilePlugin.svelte +45 -113
  441. package/dist/plugins/media/FilePlugin.svelte.d.ts +21 -4
  442. package/dist/plugins/media/MediaEmpty.svelte +51 -90
  443. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  444. package/dist/plugins/media/SourceBlock.svelte +200 -0
  445. package/dist/plugins/media/SourceBlock.svelte.d.ts +34 -0
  446. package/dist/plugins/media/UploadPreview.svelte +32 -0
  447. package/dist/plugins/media/UploadPreview.svelte.d.ts +11 -0
  448. package/dist/plugins/media/VideoPlugin.svelte +14 -97
  449. package/dist/plugins/media/VideoPlugin.svelte.d.ts +12 -5
  450. package/dist/plugins/media/empty.svelte.d.ts +47 -46
  451. package/dist/plugins/media/empty.svelte.js +67 -60
  452. package/dist/plugins/media/media.d.ts +97 -44
  453. package/dist/plugins/media/media.js +77 -99
  454. package/dist/plugins/media/upload.css +23 -0
  455. package/dist/plugins/media/urlPaste.svelte.d.ts +6 -37
  456. package/dist/plugins/media/urlPaste.svelte.js +32 -102
  457. package/dist/plugins/mention/MentionPlugin.svelte +84 -126
  458. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +17 -27
  459. package/dist/plugins/mention/mention.css +6 -0
  460. package/dist/plugins/page/PageLink.svelte +54 -38
  461. package/dist/plugins/page/PagePlugin.svelte +20 -18
  462. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  463. package/dist/plugins/page/page.d.ts +35 -9
  464. package/dist/plugins/page/page.js +3 -4
  465. package/dist/plugins/pageLink/PageLinkPlugin.svelte +154 -109
  466. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +19 -26
  467. package/dist/plugins/pageLink/pageLink.css +6 -0
  468. package/dist/plugins/planned.d.ts +10 -0
  469. package/dist/plugins/planned.js +12 -0
  470. package/dist/plugins/richtext/CalloutIcon.svelte +13 -26
  471. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  472. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  473. package/dist/plugins/richtext/EmptyBody.svelte +13 -20
  474. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  475. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  476. package/dist/plugins/richtext/RichTextPlugin.svelte +174 -183
  477. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +34 -34
  478. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  479. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  480. package/dist/plugins/richtext/body.js +2 -2
  481. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +50 -55
  482. package/dist/plugins/richtext/calloutIcons.svelte.js +86 -174
  483. package/dist/plugins/richtext/callouts.d.ts +15 -0
  484. package/dist/plugins/richtext/callouts.js +23 -0
  485. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  486. package/dist/plugins/richtext/controls.svelte.js +126 -0
  487. package/dist/plugins/richtext/richTextOperations.js +37 -28
  488. package/dist/plugins/richtext/richtext.css +6 -0
  489. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +2 -14
  490. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +34 -71
  491. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +9 -26
  492. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  493. package/dist/plugins/suggestions/SuggestionBars.svelte +27 -84
  494. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  495. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -18
  496. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  497. package/dist/plugins/table/TableChrome.svelte +40 -124
  498. package/dist/plugins/table/TablePlugin.svelte +106 -168
  499. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  500. package/dist/plugins/table/chrome.svelte.d.ts +38 -141
  501. package/dist/plugins/table/chrome.svelte.js +340 -589
  502. package/dist/plugins/table/ops.d.ts +47 -0
  503. package/dist/plugins/table/ops.js +233 -0
  504. package/dist/plugins/table/table.css +16 -152
  505. package/dist/plugins/table/table.d.ts +15 -14
  506. package/dist/plugins/table/table.js +22 -16
  507. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  508. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  509. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  510. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  511. package/dist/plugins/toc/toc.d.ts +41 -10
  512. package/dist/plugins/toc/toc.js +2 -3
  513. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +4 -68
  514. package/dist/plugins/toolbar/ToolbarController.svelte.js +63 -89
  515. package/dist/plugins/toolbar/toolbarPlugin.d.ts +8 -18
  516. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  517. package/dist/plugins/triggers/TriggerController.svelte.d.ts +4 -68
  518. package/dist/plugins/triggers/TriggerController.svelte.js +48 -129
  519. package/dist/plugins/triggers/place.d.ts +0 -9
  520. package/dist/plugins/triggers/place.js +1 -17
  521. package/dist/plugins/triggers/triggers.d.ts +31 -9
  522. package/dist/plugins/triggers/triggers.js +82 -62
  523. package/dist/plugins/uploads.svelte.d.ts +55 -24
  524. package/dist/plugins/uploads.svelte.js +123 -50
  525. package/dist/plugins.d.ts +187 -66
  526. package/dist/selection/domSelection.d.ts +13 -4
  527. package/dist/selection/domSelection.js +110 -183
  528. package/dist/selection/pointer.svelte.d.ts +8 -10
  529. package/dist/selection/pointer.svelte.js +32 -73
  530. package/dist/selection/replaceSelection.d.ts +21 -22
  531. package/dist/selection/replaceSelection.js +60 -69
  532. package/dist/selection/selection.svelte.d.ts +5 -73
  533. package/dist/selection/selection.svelte.js +224 -542
  534. package/dist/selection/selection.utils.d.ts +34 -11
  535. package/dist/selection/selection.utils.js +128 -247
  536. package/dist/selection/visibility.d.ts +3 -8
  537. package/dist/selection/visibility.js +7 -5
  538. package/dist/session/announcer.svelte.d.ts +2 -1
  539. package/dist/session/announcer.svelte.js +7 -3
  540. package/dist/session/attempt.d.ts +43 -39
  541. package/dist/session/attempt.js +62 -55
  542. package/dist/session/bindings.js +117 -145
  543. package/dist/session/commands.d.ts +47 -22
  544. package/dist/session/commands.js +208 -208
  545. package/dist/session/composition.svelte.d.ts +2 -4
  546. package/dist/session/composition.svelte.js +55 -65
  547. package/dist/session/editing/text.d.ts +6 -0
  548. package/dist/session/editing/text.js +17 -3
  549. package/dist/session/handles.d.ts +10 -1
  550. package/dist/session/handles.js +28 -0
  551. package/dist/session/history.d.ts +0 -4
  552. package/dist/session/history.js +16 -21
  553. package/dist/session/inputRules.d.ts +6 -3
  554. package/dist/session/inputRules.js +78 -83
  555. package/dist/session/keymap.d.ts +1 -6
  556. package/dist/session/keymap.js +17 -20
  557. package/dist/session/moves.d.ts +43 -10
  558. package/dist/session/moves.js +101 -59
  559. package/dist/session/navigation.d.ts +10 -2
  560. package/dist/session/navigation.js +140 -172
  561. package/dist/session/ports.d.ts +2 -7
  562. package/dist/session/props.d.ts +25 -25
  563. package/dist/session/props.js +62 -159
  564. package/dist/session/selection.d.ts +4 -3
  565. package/dist/session/selection.js +5 -0
  566. package/dist/session/suggestions.svelte.d.ts +1 -1
  567. package/dist/session/suggestions.svelte.js +42 -47
  568. package/dist/session/uploads.d.ts +29 -0
  569. package/dist/session/uploads.js +10 -0
  570. package/dist/session/virtual.d.ts +3 -3
  571. package/dist/session/virtual.js +18 -40
  572. package/dist/surface/attributes.d.ts +1 -0
  573. package/dist/surface/attributes.js +3 -26
  574. package/dist/surface/cells.d.ts +5 -0
  575. package/dist/surface/cells.js +5 -0
  576. package/dist/surface/lines.d.ts +2 -2
  577. package/dist/surface/lines.js +1 -1
  578. package/dist/surface/observer.svelte.d.ts +3 -20
  579. package/dist/surface/observer.svelte.js +52 -72
  580. package/dist/surface/overlay.d.ts +41 -3
  581. package/dist/surface/overlay.js +92 -37
  582. package/dist/surface/pin.svelte.d.ts +5 -0
  583. package/dist/surface/pin.svelte.js +5 -0
  584. package/dist/surface/projector.svelte.d.ts +4 -6
  585. package/dist/surface/projector.svelte.js +42 -69
  586. package/dist/text/text.svelte.d.ts +14 -40
  587. package/dist/text/text.svelte.js +35 -51
  588. package/dist/text/wordBoundary.d.ts +19 -0
  589. package/dist/text/wordBoundary.js +29 -44
  590. package/dist/themes/notion.css +272 -106
  591. package/dist/utils/json.d.ts +3 -1
  592. package/dist/utils/json.js +52 -51
  593. package/dist/utils/listen.d.ts +8 -0
  594. package/dist/utils/listen.js +19 -0
  595. package/package.json +4 -5
  596. package/dist/block/block.utils.d.ts +0 -340
  597. package/dist/block/block.utils.js +0 -356
  598. package/dist/collaboration/history/HistoryPanel.svelte +0 -554
  599. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  600. package/dist/collaboration/history/panel.d.ts +0 -61
  601. package/dist/collaboration/history/panel.js +0 -3
  602. package/dist/components/SuggestionRanges.svelte +0 -58
  603. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  604. package/dist/crdt/doc/table.d.ts +0 -21
  605. package/dist/crdt/doc/table.js +0 -288
  606. package/dist/crdt/migration/generation.d.ts +0 -58
  607. package/dist/crdt/migration/generation.js +0 -70
  608. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  609. package/dist/crdt/migration/legacy-schema.js +0 -151
  610. package/dist/crdt/migration/migrate.d.ts +0 -56
  611. package/dist/crdt/migration/migrate.js +0 -227
  612. package/dist/crdt/nodes.d.ts +0 -121
  613. package/dist/crdt/nodes.js +0 -56
  614. package/dist/crdt/text/index/checks.d.ts +0 -15
  615. package/dist/crdt/text/index/checks.js +0 -156
  616. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  617. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  618. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  619. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  620. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  621. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  622. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  623. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  624. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  625. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  626. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  627. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  628. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  629. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  630. package/dist/edytor.utils.d.ts +0 -50
  631. package/dist/edytor.utils.js +0 -67
  632. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -335
  633. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  634. package/dist/plugins/find/FindBar.svelte +0 -170
  635. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  636. package/dist/plugins/find/FindHighlights.svelte +0 -75
  637. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  638. package/dist/plugins/icons.d.ts +0 -2
  639. package/dist/plugins/icons.js +0 -63
  640. package/dist/plugins/image/ImageEmpty.svelte +0 -93
  641. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -15
  642. package/dist/plugins/image/empty.svelte.d.ts +0 -56
  643. package/dist/plugins/image/empty.svelte.js +0 -83
  644. package/dist/plugins/keepInView.d.ts +0 -4
  645. package/dist/plugins/keepInView.js +0 -6
  646. package/dist/plugins/media/UrlPasteMenu.svelte +0 -92
  647. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -9
  648. package/dist/plugins/richtext/CalloutIconMenu.svelte +0 -98
  649. package/dist/plugins/richtext/CalloutIconMenu.svelte.d.ts +0 -9
  650. package/dist/plugins/richtext/labels.d.ts +0 -9
  651. package/dist/plugins/richtext/labels.js +0 -7
  652. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -276
  653. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  654. package/dist/plugins/table/dragPreview.d.ts +0 -29
  655. package/dist/plugins/table/dragPreview.js +0 -103
  656. package/dist/plugins/toolbar/LinkCard.svelte +0 -122
  657. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -9
  658. package/dist/plugins/toolbar/Toolbar.svelte +0 -349
  659. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  660. package/dist/plugins/triggers/TriggerMenu.svelte +0 -135
  661. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  662. package/dist/text/deltas.d.ts +0 -22
  663. package/dist/text/deltas.js +0 -46
  664. package/dist/text/text.utils.d.ts +0 -45
  665. package/dist/text/text.utils.js +0 -199
  666. /package/dist/{plugins/columns → dnd}/stacking.d.ts +0 -0
  667. /package/dist/{plugins/columns → dnd}/stacking.js +0 -0
@@ -1,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;
@@ -30,4 +30,10 @@ export declare const onTextDragEnd: (edytor: Edytor) => undefined;
30
30
  * exception is a foreign drop other than a file on a kind's own control,
31
31
  * which is the control's (`isControlDrop`).
32
32
  */
33
- export declare const preventUnsupportedDrop: (event: DragEvent, edytor?: Edytor) => void | Promise<void>;
33
+ export declare const preventUnsupportedDrop: (event: DragEvent, edytor: Edytor) => void | Promise<void>;
34
+ /**
35
+ * A drag leaving the host (to the page around it, or out of the window):
36
+ * a file drag's indicator goes. Moving between the host's own elements is
37
+ * no leave.
38
+ */
39
+ export declare const onDragLeave: (edytor: Edytor, event: DragEvent) => void;
@@ -2,16 +2,20 @@ 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
+ import { viewUploads } from '../session/uploads.js';
6
7
  /**
7
8
  * Payloads the editor can consume on drop. Preventing `dragover` is what
8
9
  * enables a drop, so it is prevented only for these types — internal and
9
10
  * unsupported drags keep the browser's not-allowed affordance and can never
10
11
  * produce a native DOM mutation.
11
12
  *
12
- * `Files` is intentionally accepted: file drops route through the plugin
13
- * `onPaste` hook (the Files → image seam: the image plugin with `upload`
14
- * claims image files; unclaimed files insert nothing).
13
+ * `Files` is intentionally accepted (so the browser never opens a dropped
14
+ * file in place of the page): with the view's uploads (a media plugin given
15
+ * an `upload`), file drops route through the plugin `onPaste` hook with the
16
+ * drop indicator's placement (`ViewUploads.drop`: a block per file the kinds
17
+ * take there; unclaimed files insert nothing); without them a drop carrying
18
+ * files is ignored, its effect `none`.
15
19
  */
16
20
  const ACCEPTED_FOREIGN_DROP_TYPES = ['Files', 'text/html', 'text/plain', 'text/uri-list'];
17
21
  /**
@@ -44,31 +48,23 @@ export const observeInternalDragSources = (rootNode) => {
44
48
  internalDragSource = null;
45
49
  }, true);
46
50
  };
47
- if (typeof document !== 'undefined') {
48
- observeInternalDragSources(document);
49
- }
50
- const isInternalDrag = (root, dataTransfer) => {
51
- if (dataTransfer && Array.from(dataTransfer.types).includes(EDYTOR_BLOCK_DRAG_MIME)) {
52
- return true;
53
- }
54
- return internalDragSource !== null && root.contains(internalDragSource);
55
- };
51
+ /** The drag started inside the host. */
52
+ const fromHost = (root) => internalDragSource !== null && root.contains(internalDragSource);
53
+ const typesOf = (dataTransfer) => Array.from(dataTransfer?.types ?? []);
56
54
  /**
57
55
  * A foreign drop on a kind's own control (a field bound to `block.data`, a
58
56
  * nested editable island) is the control's (`ownsEvent`): the editor writes
59
57
  * nothing and the browser does what the control does with it. Not a file,
60
58
  * which the browser would open in place of the page: that one is swallowed.
61
59
  */
62
- const isControlDrop = (root, event) => !Array.from(event.dataTransfer?.types ?? []).includes('Files') && ownsEvent(root, event);
60
+ const isControlDrop = (root, event) => !typesOf(event.dataTransfer).includes('Files') && ownsEvent(root, event);
63
61
  /**
64
62
  * The view's own text drag: a selected text range dragged from
65
63
  * inside the host, the block handles' drags excluded (their payload's MIME).
66
64
  */
67
- const isTextDrag = (edytor, root, dataTransfer) => edytor !== undefined &&
68
- textDragOf(edytor) !== undefined &&
69
- !Array.from(dataTransfer?.types ?? []).includes(EDYTOR_BLOCK_DRAG_MIME) &&
70
- internalDragSource !== null &&
71
- root.contains(internalDragSource);
65
+ const isTextDrag = (edytor, root, dataTransfer) => textDragOf(edytor) !== undefined &&
66
+ !typesOf(dataTransfer).includes(EDYTOR_BLOCK_DRAG_MIME) &&
67
+ fromHost(root);
72
68
  /** Where the view's text drag may land: an editable view, in its text, not a kind's control. */
73
69
  const takesTextDrop = (edytor, root, event) => !edytor.readonly &&
74
70
  edytor.dispatcher.permits() &&
@@ -101,7 +97,7 @@ export const onTextDragStart = (edytor, event) => {
101
97
  const value = edytor.selection.value;
102
98
  if (!root || ownsEvent(root, event) || value.kind !== 'text')
103
99
  return;
104
- if (edytor.selection.state.isCollapsed || edytor.isComposing)
100
+ if (edytor.selection.projection.isCollapsed || edytor.isComposing)
105
101
  return;
106
102
  // Only a drag of the selection itself: another draggable in the host drags its own thing.
107
103
  if (!startsInSelection(root, event.target))
@@ -119,59 +115,31 @@ export const onTextDragStart = (edytor, event) => {
119
115
  };
120
116
  /** The drag ended, dropped or not: no text drag. */
121
117
  export const onTextDragEnd = (edytor) => endTextDrag(edytor);
118
+ /** A drop from outside (no chrome drag, no drag from the host) of a payload the editor takes. */
122
119
  const isAcceptedForeignDrop = (root, dataTransfer) => {
123
- if (!dataTransfer || isInternalDrag(root, dataTransfer)) {
124
- return false;
125
- }
126
- return Array.from(dataTransfer.types).some((type) => ACCEPTED_FOREIGN_DROP_TYPES.includes(type));
127
- };
128
- // `caretPositionFromPoint` is the spec API (Firefox, Chromium ≥128);
129
- // `caretRangeFromPoint` is the legacy WebKit/Chromium API. Support both.
130
- const caretRangeFromPoint = (doc, x, y) => {
131
- const position = doc.caretPositionFromPoint?.(x, y);
132
- if (position?.offsetNode) {
133
- return { container: position.offsetNode, offset: position.offset };
134
- }
135
- const range = doc.caretRangeFromPoint?.(x, y);
136
- if (range) {
137
- return { container: range.startContainer, offset: range.startOffset };
138
- }
139
- return null;
140
- };
141
- const createCollapsedStaticRange = (container, offset) => {
142
- if (typeof StaticRange === 'function') {
143
- try {
144
- return new StaticRange({
145
- startContainer: container,
146
- startOffset: offset,
147
- endContainer: container,
148
- endOffset: offset
149
- });
150
- }
151
- catch {
152
- // Fall through to the structural StaticRange below.
153
- }
154
- }
155
- return {
156
- startContainer: container,
157
- startOffset: offset,
158
- endContainer: container,
159
- endOffset: offset,
160
- collapsed: true
161
- };
120
+ const types = typesOf(dataTransfer);
121
+ return (!types.includes(EDYTOR_BLOCK_DRAG_MIME) &&
122
+ !fromHost(root) &&
123
+ types.some((type) => ACCEPTED_FOREIGN_DROP_TYPES.includes(type)));
162
124
  };
163
125
  // Preventing the drop suppresses the browser's own `insertFromDrop`
164
126
  // beforeinput, so the accepted payload is the occurrence itself — the same
165
- // routing as `insertFromPaste`, with the resolved drop point as its declared
166
- // target range.
167
- const insertFromDrop = (edytor, root, event) => {
168
- const caret = caretRangeFromPoint(root.ownerDocument, event.clientX, event.clientY);
127
+ // routing as `insertFromPaste`, with the drop point as its declared target
128
+ // range (`caretAtPoint`); files carry the indicator's placement (`at`).
129
+ const insertFromDrop = (edytor, root, event, placement = null) => {
130
+ const at = caretAtPoint(root.ownerDocument, event.clientX, event.clientY);
131
+ const point = at &&
132
+ new StaticRange({
133
+ startContainer: at.node,
134
+ startOffset: at.offset,
135
+ endContainer: at.node,
136
+ endOffset: at.offset
137
+ });
169
138
  return runOccurrence(edytor, {
170
139
  inputType: 'insertFromDrop',
171
140
  dataTransfer: event.dataTransfer,
172
- declared: caret && root.contains(caret.container)
173
- ? createCollapsedStaticRange(caret.container, caret.offset)
174
- : null,
141
+ declared: point && root.contains(point.startContainer) ? point : null,
142
+ placement,
175
143
  cancelable: true
176
144
  });
177
145
  };
@@ -189,13 +157,8 @@ const insertFromDrop = (edytor, root, event) => {
189
157
  * which is the control's (`isControlDrop`).
190
158
  */
191
159
  export const preventUnsupportedDrop = (event, edytor) => {
160
+ // Listened on the host.
192
161
  const root = event.currentTarget;
193
- if (!(root instanceof Element)) {
194
- event.preventDefault();
195
- event.stopPropagation();
196
- return;
197
- }
198
- observeInternalDragSources(root.getRootNode());
199
162
  // The view's own text drag: a move (a copy with Alt) where it may land.
200
163
  if (isTextDrag(edytor, root, event.dataTransfer)) {
201
164
  const takes = takesTextDrop(edytor, root, event);
@@ -218,22 +181,33 @@ export const preventUnsupportedDrop = (event, edytor) => {
218
181
  drag.dropping = true;
219
182
  return insertFromDrop(edytor, root, event);
220
183
  }
184
+ const files = typesOf(event.dataTransfer).includes('Files');
185
+ // The view's uploads take dropped files (a media plugin given an `upload`); none: ignored.
186
+ const drop = files ? viewUploads(edytor)?.drop : undefined;
221
187
  if (event.type === 'dragover') {
222
188
  if (isAcceptedForeignDrop(root, event.dataTransfer)) {
223
189
  event.preventDefault();
224
190
  event.stopPropagation();
225
- if (event.dataTransfer) {
226
- event.dataTransfer.dropEffect = 'copy';
227
- }
191
+ // Files show where they land (the block drag's indicator); none in a
192
+ // read-only view or one without uploads, which takes no file drop (the
193
+ // browser must not open the file).
194
+ const shown = drop && !ownsEvent(root, event) && drop.over(event);
195
+ if (event.dataTransfer)
196
+ event.dataTransfer.dropEffect = files && (edytor.readonly || !drop) ? 'none' : 'copy';
197
+ if (drop && !shown)
198
+ drop.end();
228
199
  }
229
200
  return;
230
201
  }
231
202
  const accepted = isAcceptedForeignDrop(root, event.dataTransfer);
203
+ // Where the files land: the indicator's placement, re-resolved at the drop point.
204
+ const at = drop && accepted && !ownsEvent(root, event) ? drop.at(event) : null;
205
+ drop?.end();
232
206
  if (accepted && isControlDrop(root, event))
233
207
  return;
234
208
  event.preventDefault();
235
209
  event.stopPropagation();
236
- if (!accepted) {
210
+ if (!accepted || (files && (edytor.readonly || !drop))) {
237
211
  return;
238
212
  }
239
213
  if (ownsEvent(root, event) || isNativeInteractiveControl(event.target)) {
@@ -242,6 +216,18 @@ export const preventUnsupportedDrop = (event, edytor) => {
242
216
  return;
243
217
  }
244
218
  // Mid-composition drops are swallowed: the preview owns the write path.
245
- if (edytor && !edytor.isComposing)
246
- return insertFromDrop(edytor, root, event);
219
+ if (!edytor.isComposing)
220
+ return insertFromDrop(edytor, root, event, at);
221
+ };
222
+ /**
223
+ * A drag leaving the host (to the page around it, or out of the window):
224
+ * a file drag's indicator goes. Moving between the host's own elements is
225
+ * no leave.
226
+ */
227
+ export const onDragLeave = (edytor, event) => {
228
+ const root = event.currentTarget;
229
+ const to = event.relatedTarget;
230
+ if (to instanceof Node && root.contains(to))
231
+ return;
232
+ viewUploads(edytor)?.drop.end();
247
233
  };
@@ -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
  /**
@@ -9,7 +9,7 @@ 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
11
  import { noSelection } from '../session/selection.js';
12
- const getEventTimeStamp = (event) => event?.timeStamp || (typeof performance === 'undefined' ? Date.now() : performance.now());
12
+ import { observeInternalDragSources } from './onDrop.js';
13
13
  /** The DOM selection has an endpoint inside `node`. */
14
14
  export const selectionIsInside = (node) => {
15
15
  const selection = getDomSelection(node);
@@ -18,25 +18,30 @@ export const selectionIsInside = (node) => {
18
18
  (selection.focusNode && node.contains(selection.focusNode))));
19
19
  };
20
20
  /**
21
- * The editor takes the keys after a pointer gesture on its chrome (a block
22
- * 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
23
25
  * focus, without scrolling, as the editor's own focus (`focusin` restores
24
26
  * no cached caret and counts no gesture), so Mod+Z, Mod+Shift+Z and the
25
27
  * block-selection keys act at once, whatever the selection (a block
26
28
  * selection, or none: an undo giving back "no selection" keeps them). The
27
- * projector stays the only DOM-selection writer. Nothing when the focus is
28
- * 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.
29
34
  */
30
35
  export const takeKeys = (edytor) => {
31
36
  const node = edytor.node;
32
37
  if (!node?.isConnected || edytor.destroyed)
33
38
  return;
34
- const active = getActiveElement(node);
35
- if (active instanceof Node && node.contains(active))
39
+ if (getActiveElement(node) === node)
36
40
  return;
37
41
  edytor.expectInternalFocus();
38
42
  node.focus({ preventScroll: true });
39
43
  edytor.projector.parked();
44
+ edytor.selection.display();
40
45
  };
41
46
  /*
42
47
  * The press: one per primary button press, its `pointerdown`, or a
@@ -77,6 +82,8 @@ export const onPress = (edytor, target, listener, options) => {
77
82
  };
78
83
  };
79
84
  export const attachFocus = (edytor, node) => {
85
+ // Where the host lives (the document, or a shadow root): its drags' sources.
86
+ observeInternalDragSources(node.getRootNode());
80
87
  let lastPointerDownInsideEditorAt = Number.NEGATIVE_INFINITY;
81
88
  /*
82
89
  * A primary `pointerdown` arms `compat` until the `mousedown` it is
@@ -127,8 +134,7 @@ export const attachFocus = (edytor, node) => {
127
134
  const pressInside = (event) => {
128
135
  // A pointer gesture abandons a live composition.
129
136
  edytor.composition.abandon();
130
- lastPointerDownInsideEditorAt = getEventTimeStamp(event);
131
- edytor.selection.clearModelSelectionPreservation();
137
+ lastPointerDownInsideEditorAt = event.timeStamp;
132
138
  const { pointer } = edytor.selection;
133
139
  // The margin gesture's press places no caret and starts no text drag.
134
140
  if (pointer.claimed)
@@ -147,68 +153,40 @@ export const attachFocus = (edytor, node) => {
147
153
  clearDomSelection(node);
148
154
  }
149
155
  };
150
- const restoreCachedSelectionAfterKeyboardFocus = (event) => {
151
- 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)
152
164
  return;
153
- }
154
- if (event.relatedTarget instanceof Node && node.contains(event.relatedTarget)) {
165
+ if (event.relatedTarget instanceof Node && node.contains(event.relatedTarget))
155
166
  return;
156
- }
157
- if (getEventTimeStamp(event) - lastPointerDownInsideEditorAt < 250) {
167
+ if (event.timeStamp - lastPointerDownInsideEditorAt < 250)
158
168
  return;
159
- }
160
- const text = edytor.selection.state.startText;
161
- if (!text) {
169
+ if (!edytor.selection.projection.start)
162
170
  return;
163
- }
164
- const offset = edytor.selection.state.yStart;
165
- const applyMeaningfulDomSelection = () => {
166
- const selection = getDomSelectionSnapshot(node);
167
- if (!selection?.anchorNode || !selection.focusNode) {
168
- return false;
169
- }
170
- if (!node.contains(selection.anchorNode) || !node.contains(selection.focusNode)) {
171
- return false;
172
- }
173
- const anchorText = edytor.selection.getTextOfNode(selection.anchorNode);
174
- const focusText = edytor.selection.getTextOfNode(selection.focusNode);
175
- if (!anchorText || !focusText) {
176
- return false;
177
- }
178
- const isBrowserFocusReset = selection.isCollapsed &&
179
- anchorText === edytor.root?.firstEditableText &&
180
- getYIndex(anchorText, selection.anchorNode, selection.anchorOffset) === 0;
181
- if (isBrowserFocusReset) {
182
- return false;
183
- }
184
- edytor.selection.applySelectionSnapshot(selection);
185
- return true;
186
- };
187
- const restore = () => {
188
- if (getActiveElement(node) !== node) {
189
- return;
190
- }
191
- if (applyMeaningfulDomSelection()) {
192
- return;
193
- }
194
- const s = edytor.selection.state;
195
- // A remote delivery or command may have legitimately moved the
196
- // selection since the focus-time capture — the CURRENT state
197
- // owns the caret then; writing the cached point would yank it
198
- // back to a pre-update position. The cache only wins while the
199
- // state still equals it, or when the browser collapsed the
200
- // caret to its focus-reset spot (first editable text at 0).
201
- if (!s.isCollapsed || !s.startText) {
171
+ queueMicrotask(() => {
172
+ if (getActiveElement(node) !== node)
202
173
  return;
203
- }
204
- const focusReset = s.startText === edytor.root?.firstEditableText && s.yStart === 0;
205
- const [targetText, targetOffset] = focusReset ? [text, offset] : [s.startText, s.yStart];
206
- if (!targetText?.node?.isConnected) {
207
- return;
208
- }
209
- edytor.selection.setAtTextOffset(targetText, Math.min(targetOffset, targetText.length));
210
- };
211
- 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
+ });
212
190
  };
213
191
  return [
214
192
  // Any press anywhere disarms pending restores — Firefox can move
@@ -288,7 +266,7 @@ export const attachFocus = (edytor, node) => {
288
266
  // A focus from outside (Tab, an app's `focus()`) places the user's caret.
289
267
  edytor.projector.pressed();
290
268
  }
291
- restoreCachedSelectionAfterKeyboardFocus(event);
269
+ restoreAfterKeyboardFocus(event);
292
270
  }),
293
271
  on(node, 'focusout', (event) => {
294
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>;