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,4 +1,4 @@
1
- import { autoScrollApi } from './pragmatic.js';
1
+ import { autoScroll, autoScrollWindow } from './pragmatic.js';
2
2
  /**
3
3
  * Auto-scroll for one drag (a block's, a table row's or column's; Atlassian's
4
4
  * auto-scroll package): the window
@@ -12,7 +12,6 @@ export const autoScrollFor = (root, ours) => {
12
12
  // so it is created only where that exists.
13
13
  if (typeof root.ownerDocument.elementsFromPoint !== 'function')
14
14
  return () => { };
15
- const { autoScroll, autoScrollWindow } = autoScrollApi();
16
15
  const canScroll = ({ source }) => ours(source.data);
17
16
  const releases = [autoScrollWindow({ canScroll })];
18
17
  const { body, documentElement, defaultView } = root.ownerDocument;
@@ -5,8 +5,8 @@
5
5
  * future parent's own row. Both live in the overlay layer, measured each
6
6
  * frame. The controller decides the placement; this draws it.
7
7
  */
8
- import type { Block } from '../../block/block.svelte.js';
9
- import type { Edytor } from '../../edytor.svelte.js';
8
+ import type { Block } from '../block/block.svelte.js';
9
+ import type { Edytor } from '../edytor.svelte.js';
10
10
  import { type DropPlacement } from './geometry.js';
11
11
  /** What the indicator reads of the controller: the dragged blocks and the beside resolution. */
12
12
  type IndicatorContext = {
@@ -1,9 +1,25 @@
1
1
  import { getOwnRowBottom, isBeside, nestIndent, ownRow, ownTextRow } from './geometry.js';
2
- /** Notion's drop bar: 4px of translucent blue. */
3
- const DROP_INDICATOR_COLOR = 'rgba(35, 131, 226, 0.43)';
4
- /** The nest backdrop's theming variable (its defaults are in `BlockHandle.svelte`). */
5
- const BACKDROP_COLOR = '--edytor-drop-backdrop-color';
2
+ /** Notion's drop bar: 4px (its height in `BlockHandles.svelte`, its look the app's). */
6
3
  const BAR = 4;
4
+ /** Place `element` at `box`, relative to the layer (`origin`). */
5
+ const place = (element, box, origin) => Object.assign(element.style, {
6
+ left: `${box.left - origin.left}px`,
7
+ top: `${box.top - origin.top}px`,
8
+ width: `${box.width}px`,
9
+ ...(box.height === undefined ? {} : { height: `${box.height}px` })
10
+ });
11
+ /**
12
+ * The theme variable `name` as `from` (a block) inherits it, read now, and
13
+ * its write on an element of the overlay (which is not inside the editor):
14
+ * unset there without one.
15
+ */
16
+ const themed = (from, name) => {
17
+ const value = from.ownerDocument.defaultView
18
+ ?.getComputedStyle(from)
19
+ .getPropertyValue(name)
20
+ .trim();
21
+ return (element) => value ? element.style.setProperty(name, value) : element.style.removeProperty(name);
22
+ };
7
23
  /**
8
24
  * Notion's nest backdrop: a soft rounded tint over the future parent's own
9
25
  * row, drawn by the overlay layer under the drop line — never a style on the
@@ -76,17 +92,18 @@ export class DropIndicator {
76
92
  // How many blocks move, as data only: the bar shows no badge.
77
93
  if (count > 1)
78
94
  overlay.dataset.count = String(count);
79
- const color = document.defaultView
80
- ?.getComputedStyle(placement.node)
81
- .getPropertyValue('--edytor-drop-indicator-color')
82
- .trim();
83
- overlay.style.setProperty('--edytor-drop-indicator-color', color || DROP_INDICATOR_COLOR);
95
+ themed(placement.node, '--edytor-drop-indicator-color')(overlay);
84
96
  const layer = this.edytor.overlay.layer;
85
97
  layer?.append(overlay);
86
98
  this.#overlay = overlay;
87
99
  const measure = (origin) => {
88
- const writes = [this.#position(origin), this.#positionBackdrop(placement, origin)];
89
- return () => writes.forEach((write) => write?.());
100
+ const bar = this.#bar(placement);
101
+ const backdrop = this.#positionBackdrop(placement);
102
+ return () => {
103
+ if (bar)
104
+ place(overlay, bar, origin);
105
+ backdrop?.(origin);
106
+ };
90
107
  };
91
108
  // Placed at once (it must not show at the layer's origin for a frame), then per frame.
92
109
  if (layer)
@@ -117,12 +134,11 @@ export class DropIndicator {
117
134
  return parent;
118
135
  }
119
136
  /**
120
- * Layer-relative geometry of the nest backdrop (`backdrop`): the future
121
- * parent's box (`nestParent`, read per frame: a peer's change may change
122
- * it), down to where its first child begins; hidden when the placement
123
- * does not nest.
137
+ * The nest backdrop's write (`backdrop`): over the future parent's box
138
+ * (`nestParent`, read per frame: a peer's change may change it), down to
139
+ * where its first child begins; hidden when the placement does not nest.
124
140
  */
125
- #positionBackdrop(placement, origin) {
141
+ #positionBackdrop(placement) {
126
142
  const backdrop = this.#backdrop;
127
143
  if (!backdrop)
128
144
  return;
@@ -131,43 +147,28 @@ export class DropIndicator {
131
147
  if (!parent || !node?.isConnected)
132
148
  return () => delete backdrop.dataset.shown;
133
149
  const rect = ownRow(node);
134
- const color = node.ownerDocument.defaultView
135
- ?.getComputedStyle(node)
136
- .getPropertyValue(BACKDROP_COLOR)
137
- .trim();
138
- return () => {
150
+ const color = themed(node, '--edytor-drop-backdrop-color');
151
+ return (origin) => {
139
152
  backdrop.dataset.blockId = parent.id;
140
- if (color)
141
- backdrop.style.setProperty(BACKDROP_COLOR, color);
142
- else
143
- backdrop.style.removeProperty(BACKDROP_COLOR);
144
- Object.assign(backdrop.style, {
145
- left: `${rect.left - origin.left}px`,
146
- top: `${rect.top - origin.top}px`,
147
- width: `${rect.width}px`,
148
- height: `${rect.height}px`
149
- });
153
+ color(backdrop);
154
+ place(backdrop, rect, origin);
150
155
  backdrop.dataset.shown = 'true';
151
156
  };
152
157
  }
153
158
  /**
154
- * Layer-relative geometry of Notion's plain bar: centered between the
155
- * two siblings of the slot, or — inside the target — where the child lands,
156
- * indented to the child's column.
159
+ * Notion's plain bar: centered between the two siblings of the slot, or
160
+ * — inside the target — where the child lands, indented to the child's
161
+ * column; beside a block or a column, vertical (`#beside`).
157
162
  */
158
- #position(origin) {
159
- const placement = this.placement;
160
- const overlay = this.#overlay;
161
- if (!placement || !overlay)
162
- return;
163
+ #bar(placement) {
163
164
  if (isBeside(placement.position))
164
- return this.#positionBeside(placement, origin);
165
+ return this.#beside(placement);
165
166
  const rect = placement.node.getBoundingClientRect();
166
- const place = (left, width, center) => () => {
167
- overlay.style.left = `${left - origin.left}px`;
168
- overlay.style.width = `${width}px`;
169
- overlay.style.top = `${center - BAR / 2 - origin.top}px`;
170
- };
167
+ const at = (left, width, center) => ({
168
+ left,
169
+ width,
170
+ top: center - BAR / 2
171
+ });
171
172
  if (placement.position === 'inside') {
172
173
  // Where the child lands (the gap after the last visible child, else after
173
174
  // the target's own row), from the child's indent to the target's right edge.
@@ -180,7 +181,7 @@ export class DropIndicator {
180
181
  const end = shown ? shown.bottom : getOwnRowBottom(placement.node);
181
182
  const land = next && next.top >= end ? (end + next.top) / 2 : end + 4;
182
183
  const left = shown && lastNode ? ownTextRow(lastNode).left : row.left + nestIndent(placement.node);
183
- return place(left, Math.max(16, rect.right - left), land);
184
+ return at(left, Math.max(16, rect.right - left), land);
184
185
  }
185
186
  const siblings = placement.target.parent?.children;
186
187
  const index = placement.target.index + (placement.position === 'after' ? 1 : 0);
@@ -189,10 +190,9 @@ export class DropIndicator {
189
190
  if (previous && next && previous.bottom <= next.top) {
190
191
  const left = Math.min(previous.left, next.left);
191
192
  const width = Math.max(previous.right, next.right) - left;
192
- return place(left, width, (previous.bottom + next.top) / 2);
193
+ return at(left, width, (previous.bottom + next.top) / 2);
193
194
  }
194
- const edge = placement.position === 'before' ? rect.top : rect.bottom;
195
- return place(rect.left, rect.width, edge);
195
+ return at(rect.left, rect.width, placement.position === 'before' ? rect.top : rect.bottom);
196
196
  }
197
197
  /**
198
198
  * A beside placement's bar: vertical, 4px, at the edge of the block it
@@ -200,10 +200,9 @@ export class DropIndicator {
200
200
  * when it adds a column to a layout, the layout's height, in the middle
201
201
  * of the gap to the neighbouring column, else at the layout's edge.
202
202
  */
203
- #positionBeside(placement, origin) {
204
- const overlay = this.#overlay;
203
+ #beside(placement) {
205
204
  const outer = this.ctx.besideOf(placement.target);
206
- if (!overlay || !outer.node)
205
+ if (!outer.node)
207
206
  return;
208
207
  const right = placement.position === 'right';
209
208
  const at = this.ctx.layoutOf(outer);
@@ -224,14 +223,7 @@ export class DropIndicator {
224
223
  box = outer.node.getBoundingClientRect();
225
224
  edge = right ? box.right : box.left;
226
225
  }
227
- return () => {
228
- Object.assign(overlay.style, {
229
- left: `${edge - BAR / 2 - origin.left}px`,
230
- top: `${box.top - origin.top}px`,
231
- width: `${BAR}px`,
232
- height: `${box.height}px`
233
- });
234
- };
226
+ return { left: edge - BAR / 2, top: box.top, width: BAR, height: box.height };
235
227
  }
236
228
  /** Hide the bar (the backdrop fades out where it was) and forget the placement. */
237
229
  clear = () => {
@@ -4,8 +4,8 @@
4
4
  * placement's shape, a block's own row, its first text line and one
5
5
  * nesting step.
6
6
  */
7
- import type { Block } from '../../block/block.svelte.js';
8
- import type { BlockMovePosition } from '../../session/moves.js';
7
+ import type { Block } from '../block/block.svelte.js';
8
+ import type { BlockMovePosition } from '../session/moves.js';
9
9
  export type DropPlacement = {
10
10
  target: Block;
11
11
  node: HTMLElement;
@@ -14,7 +14,8 @@ export type DropPlacement = {
14
14
  blocked?: boolean;
15
15
  };
16
16
  export declare const isBeside: (position: BlockMovePosition) => position is "left" | "right";
17
- export declare const getOwnRowBottom: (node: HTMLElement) => number;
17
+ /** Where a block's own row ends: where its first shown child begins, else its box's (`rect`) bottom. */
18
+ export declare const getOwnRowBottom: (node: HTMLElement, rect?: DOMRect) => number;
18
19
  /** A block's own row: its box down to where its first child begins. */
19
20
  export declare const ownRow: (node: HTMLElement) => DOMRect;
20
21
  /** The first line of a block's own text (not a child's), or the block's box. */
@@ -1,6 +1,6 @@
1
1
  export const isBeside = (position) => position === 'left' || position === 'right';
2
- export const getOwnRowBottom = (node) => {
3
- const rect = node.getBoundingClientRect();
2
+ /** Where a block's own row ends: where its first shown child begins, else its box's (`rect`) bottom. */
3
+ export const getOwnRowBottom = (node, rect = node.getBoundingClientRect()) => {
4
4
  // Block nodes wrap their children in the DOM; the parent's placement
5
5
  // bands belong to its own row, ending where the first child begins.
6
6
  const firstChild = node.querySelector('[data-edytor-block="true"]');
@@ -17,10 +17,11 @@ export const ownRow = (node) => {
17
17
  const rect = node.getBoundingClientRect();
18
18
  return new DOMRect(rect.left, rect.top, rect.width, Math.max(0, getOwnRowBottom(node) - rect.top));
19
19
  };
20
+ /** The first element matching `selector` in a block's own markup (not a child's). */
21
+ const own = (node, selector) => Array.from(node.querySelectorAll(selector)).find((element) => element.closest('[data-edytor-block="true"]') === node);
20
22
  /** The first line of a block's own text (not a child's), or the block's box. */
21
23
  export const ownTextRow = (node) => {
22
- const text = Array.from(node.querySelectorAll('[data-edytor-text="true"]')).find((element) => element.closest('[data-edytor-block="true"]') === node);
23
- const row = text?.getClientRects()[0];
24
+ const row = own(node, '[data-edytor-text="true"]')?.getClientRects()[0];
24
25
  return row && row.height > 0 ? row : node.getBoundingClientRect();
25
26
  };
26
27
  /**
@@ -42,8 +43,7 @@ export const nestIndent = (node) => {
42
43
  * there goes inside the block.
43
44
  */
44
45
  export const overEmptyBody = (node, y) => {
45
- const hint = Array.from(node.querySelectorAll('[data-edytor-empty-body]')).find((element) => element.closest('[data-edytor-block="true"]') === node);
46
- const rect = hint?.getBoundingClientRect();
46
+ const rect = own(node, '[data-edytor-empty-body]')?.getBoundingClientRect();
47
47
  return !!rect && rect.height > 0 && y >= rect.top && y <= rect.bottom;
48
48
  };
49
49
  /**
@@ -0,0 +1,200 @@
1
+ /**
2
+ * Where a drop lands in a view (Notion's rules): the one resolution a block
3
+ * handle's drag and a file dragged from outside both read, and the drop
4
+ * indicator draws (`dropIndicator.ts`). A drag is what it carries
5
+ * (`Drag`: the blocks it moves, none for files) and the placements the
6
+ * document takes for it (`fits`); the rows are the view's drop targets
7
+ * (`targetOf`). The block handles wire it to the drag library; a file drag
8
+ * reads it from the host's own `dragover` (the media plugins' `plugins/fileDrop.ts`).
9
+ */
10
+ import type { Block } from '../block/block.svelte.js';
11
+ import type { Edytor } from '../edytor.svelte.js';
12
+ import type { DropIndicator } from './dropIndicator.js';
13
+ import { type DropPlacement } from './geometry.js';
14
+ export type Input = {
15
+ clientX: number;
16
+ clientY: number;
17
+ };
18
+ /** What a drag carries: the blocks it moves (none for files), and whether a placement takes it. */
19
+ export type Drag = {
20
+ group: readonly Block[];
21
+ fits: (placement: DropPlacement) => boolean;
22
+ };
23
+ /** How far beside a target's box it stays the drop target (`getIsSticky`), across and along. */
24
+ export declare const SLOP_X = 20;
25
+ export declare const SLOP_Y = 24;
26
+ /**
27
+ * A block a drop may land at (a drop target): a movable block, not a
28
+ * table's row (its row menus move it) nor a cell.
29
+ */
30
+ export declare const isDropTarget: (edytor: Edytor, block: Block) => boolean;
31
+ type ResolverContext = {
32
+ /** The drop target block of a block element, if it is one. */
33
+ targetOf: (node: HTMLElement) => Block | undefined;
34
+ /** The drag's handle (its width is the handle column's), if any. */
35
+ handle: () => HTMLElement | null;
36
+ /** The indicator showing the drag's placement (a margin's reorder holds while it shows). */
37
+ indicator: DropIndicator;
38
+ };
39
+ export declare class DropResolver {
40
+ private readonly edytor;
41
+ private readonly ctx;
42
+ constructor(edytor: Edytor, ctx: ResolverContext);
43
+ targetOf: (node: HTMLElement) => Block | undefined;
44
+ isTarget: (node: HTMLElement) => boolean;
45
+ /**
46
+ * The placement over `row` at the pointer: a beside band of the row first
47
+ * (`beside`; `false` when the document refuses it: nothing shows), else
48
+ * the row's halves, the top one first when `before` (the pointer's half,
49
+ * or the one a sticky target holds).
50
+ */
51
+ at(drag: Drag, row: Block, input: Input, before: boolean): DropPlacement | null | false;
52
+ /**
53
+ * The drop target under the pointer for a drag the host's own events see
54
+ * (a file's): the innermost target element at the point, `null` outside
55
+ * the blocks and in the handle column (the margins answer there,
56
+ * `margin`).
57
+ */
58
+ hitAt(input: Input): HTMLElement | null;
59
+ /** The placement over the row of drop target `node` at the pointer (`rowAt`, its own row's half: `at`). */
60
+ over(drag: Drag, node: HTMLElement, input: Input): DropPlacement | null | false;
61
+ /**
62
+ * The editor's content column (`start`…`end`, the root's content box:
63
+ * where its blocks' boxes start and end), the width of the handle column
64
+ * left of it (the drag's handle, measured: `+`, grip and the gap to the
65
+ * block) and how far the drag reaches past them (`dropReach`, the
66
+ * `--edytor-drop-reach` the root inherits).
67
+ */
68
+ gutter(root: HTMLElement): {
69
+ start: number;
70
+ end: number;
71
+ handles: number;
72
+ reach: number;
73
+ };
74
+ /** Whether `x` is in the handle column left of the editor's blocks (`gutter`): the page target's. */
75
+ inHandleColumn(x: number): boolean;
76
+ /**
77
+ * A placement in the editor's margins at the pointer (`dnd.reach`), within
78
+ * the editor's height, for the row the content's near edge shows at the
79
+ * pointer's height (`rowAt`: a nested block's own row; over a layout, the
80
+ * row of its first column on the left, of its last on the right, never
81
+ * another), by the zone the pointer is in (`marginAt`):
82
+ * - the handle column left of the blocks (`gutter`): that row's reorder
83
+ * (`reorder`): a drag straight down the handles reorders, row after
84
+ * row, gaps included (never a beside band);
85
+ * - the first `BESIDE_MARGIN` px past it on the left, and past the
86
+ * content's right edge: the beside band of that side (`beside`, as if
87
+ * the pointer were at that edge) when the document has a layout kind
88
+ * and the row offers one (a refused band shows nothing);
89
+ * - elsewhere within the reach (and there without a band): the reorder,
90
+ * on the left the handle column's, on the right the one the row's
91
+ * right edge offers (its halves as just inside the content, so nothing
92
+ * jumps as the pointer leaves it).
93
+ * `undefined` past the reach, above or below the editor, and inside the
94
+ * content (the blocks' own targets answer there).
95
+ */
96
+ margin(drag: Drag, { clientX: x, clientY: y }: Input): DropPlacement | undefined;
97
+ /**
98
+ * The halves of `row` (`zones`) at the pointer, the one it is in first:
99
+ * the top half of `rect` (its own row by default) before, the bottom one
100
+ * after; with `plain`, only before or after a block — never inside one.
101
+ */
102
+ halves(drag: Drag, row: Block, input: Input, rect: DOMRect, plain?: boolean): DropPlacement[][];
103
+ /**
104
+ * The first placement of `halves` the document takes (a refused one gives
105
+ * way to the next, then to the other half's), `blocked` when the first
106
+ * half took none; `null` when none fits.
107
+ */
108
+ pick(drag: Drag, halves: DropPlacement[][]): DropPlacement | null;
109
+ /**
110
+ * The handle column's reorder over `row` at the pointer: its plain halves
111
+ * (`halves`, the pointer's x picking the level); `null` when neither half
112
+ * fits. Over an item of a container the dragged blocks do not fit in (a
113
+ * paragraph over a list's item: the document refuses every placement at
114
+ * the item's level), the container is the row: its whole box, the upper
115
+ * half before it, the lower half after it (round 4), so a drag down the
116
+ * handles meets the list as one row it can pass.
117
+ */
118
+ reorder(drag: Drag, row: Block, input: Input): DropPlacement | null;
119
+ /**
120
+ * The block whose row the pointer is on over `node`: the last shown drop
121
+ * target in it whose row starts at or above the pointer (beside a nested
122
+ * block, over its ancestors' indent, the pointer is on that block's
123
+ * row), else `target`, over its own row (`emptied`). A layout's columns
124
+ * sit side by side: only the one under the pointer is measured (between
125
+ * two of them, the layout is the row: its gap).
126
+ */
127
+ rowAt(drag: Drag, target: Block, node: HTMLElement, { clientX, clientY }: Input): Block;
128
+ /** Whether the document has a layout kind: only then are there beside placements. */
129
+ get layouts(): boolean;
130
+ /**
131
+ * The block a beside placement over `block` stands beside: the document's
132
+ * own resolution (`facade.besideAt`, `placeBeside`'s): a list item's list,
133
+ * a code line's code block, a toggle's child itself, an item itself.
134
+ */
135
+ besideOf(block: Block): Block;
136
+ /** The item (and its layout) a beside placement at `outer` (`besideOf`) adds a column beside. */
137
+ layoutOf(outer: Block): {
138
+ item: Block;
139
+ layout: Block | null;
140
+ } | null;
141
+ /**
142
+ * Whether `x` is over a column other than one holding `block`: a sticky
143
+ * target never holds the pointer across a column boundary.
144
+ */
145
+ overOtherColumn(block: Block, x: number): boolean;
146
+ /**
147
+ * Notion's beside bands over `row` (`docs/columns-plan.md`, "View layer"), only while the
148
+ * pointer is within its own row's height, the document has a layout kind
149
+ * and the layout the drop makes or grows does not stack (`stacks`):
150
+ * - right: the row's last 15% (at least 32px), and the slop past it;
151
+ * - left: the slop left of the row (its sticky margin, left of its text
152
+ * column), only for a row whose parent is the root or a column (a
153
+ * list's item: its list's) — a nested row keeps the pointer's x for its
154
+ * levels (`zones`) — and only
155
+ * inside the editor (a column's gap): left of the editor's blocks is the
156
+ * handle column, which reorders (`margin`);
157
+ * - over a layout's gap (the row is the layout): right of the column
158
+ * before it, a new column between.
159
+ * `undefined` outside the bands (the hitbox's halves stand), else the
160
+ * placement, or `null` when the document refuses it: a refused band shows
161
+ * nothing.
162
+ */
163
+ beside(drag: Drag, row: Block, { clientX: x, clientY: y }: Input, band?: 'left' | 'right'): DropPlacement | null | undefined;
164
+ /** Where the editor's blocks start (`gutter`), or `fallback` without a host. */
165
+ inside(fallback: number): number;
166
+ /** The children a block shows: none for a closed toggle's, or a container's items. */
167
+ shown(block: Block): Block[];
168
+ /**
169
+ * Over a dragged block, the parent it leaves when that parent shows no
170
+ * other child: the gap under the parent's own row, which reparents as
171
+ * the parent's lower half does (`zones`). Else `row`.
172
+ */
173
+ emptied(drag: Drag, row: Block): Block;
174
+ /**
175
+ * The placements over `row`, each half's in preference order (a refused
176
+ * one gives way to the next, then to the other half's):
177
+ * - the top half: before it;
178
+ * - the bottom half of a block whose children show (not a closed toggle):
179
+ * its first child's slot. Pragmatic drag and drop's tree rule: an
180
+ * expanded item offers no "after" on its own row;
181
+ * - else, after it at the level whose text column is nearest the pointer:
182
+ * the last block of a nested group reparents to any ancestor it ends,
183
+ * down to the root. Past one nesting step right of its text start,
184
+ * inside it (its last child) first. A block every shown child of which
185
+ * is dragged is not expanded: its levels, never inside it when the drag
186
+ * moves only its children (they would stay where they are).
187
+ * None over a dragged block's own row or its subtree: released there, the
188
+ * drag changes nothing (its levels would outdent it) — unless it empties
189
+ * its parent's shown children (`emptied`): that parent's row. Over the
190
+ * hint of the row's empty body (`body.hint`: an open toggle's, a
191
+ * callout's), inside it first, either half.
192
+ */
193
+ zones(drag: Drag, row: Block, { clientX, clientY }: Input): {
194
+ before: DropPlacement[];
195
+ after: DropPlacement[];
196
+ };
197
+ /** The dragged block that is `row` or holds it: its row offers nothing (it moves with the drag). */
198
+ carrier(drag: Drag, row: Block): Block | undefined;
199
+ }
200
+ export {};