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
@@ -0,0 +1,426 @@
1
+ import { HIDDEN, hidden } from '../selection/visibility.js';
2
+ import { dropReach, getOwnRowBottom, isBeside, marginAt, nestIndent, overEmptyBody, ownRow, ownTextRow } from './geometry.js';
3
+ import { stacks } from './stacking.js';
4
+ /** How far beside a target's box it stays the drop target (`getIsSticky`), across and along. */
5
+ export const SLOP_X = 20;
6
+ export const SLOP_Y = 24;
7
+ /** The right beside band: the row's last 15% (Notion), at least this many px. */
8
+ const RIGHT_BAND = 0.15;
9
+ const RIGHT_BAND_MIN = 32;
10
+ /** The handle column's width when the drag's handle cannot be measured (`+`, grip and gap). */
11
+ const HANDLE_COLUMN = 50;
12
+ /** Where a block's own text starts: its level's column. */
13
+ const column = (block) => ownTextRow(block.node).left;
14
+ /**
15
+ * A block a drop may land at (a drop target): a movable block, not a
16
+ * table's row (its row menus move it) nor a cell.
17
+ */
18
+ export const isDropTarget = (edytor, block) => block.movable && !edytor.facade.isTableRow(block.id);
19
+ export class DropResolver {
20
+ edytor;
21
+ ctx;
22
+ constructor(edytor, ctx) {
23
+ this.edytor = edytor;
24
+ this.ctx = ctx;
25
+ }
26
+ targetOf = (node) => this.ctx.targetOf(node);
27
+ isTarget = (node) => this.ctx.targetOf(node) !== undefined;
28
+ /**
29
+ * The placement over `row` at the pointer: a beside band of the row first
30
+ * (`beside`; `false` when the document refuses it: nothing shows), else
31
+ * the row's halves, the top one first when `before` (the pointer's half,
32
+ * or the one a sticky target holds).
33
+ */
34
+ at(drag, row, input, before) {
35
+ const aside = this.beside(drag, row, input);
36
+ if (aside !== undefined)
37
+ return aside ?? false;
38
+ const { before: top, after } = this.zones(drag, row, input);
39
+ return this.pick(drag, before ? [top, after] : [after, top]);
40
+ }
41
+ /**
42
+ * The drop target under the pointer for a drag the host's own events see
43
+ * (a file's): the innermost target element at the point, `null` outside
44
+ * the blocks and in the handle column (the margins answer there,
45
+ * `margin`).
46
+ */
47
+ hitAt(input) {
48
+ const root = this.edytor.node;
49
+ if (!root || this.inHandleColumn(input.clientX))
50
+ return null;
51
+ for (const hit of root.ownerDocument.elementsFromPoint?.(input.clientX, input.clientY) ?? [])
52
+ for (let at = hit.closest('[data-edytor-block="true"]'); at && root.contains(at); at = at.parentElement?.closest('[data-edytor-block="true"]') ?? null)
53
+ if (this.isTarget(at))
54
+ return at;
55
+ return null;
56
+ }
57
+ /** The placement over the row of drop target `node` at the pointer (`rowAt`, its own row's half: `at`). */
58
+ over(drag, node, input) {
59
+ const target = this.targetOf(node);
60
+ if (!target)
61
+ return null;
62
+ const row = this.rowAt(drag, target, node, input);
63
+ if (!row.node)
64
+ return null;
65
+ const rect = ownRow(row.node);
66
+ return this.at(drag, row, input, input.clientY < rect.top + rect.height / 2);
67
+ }
68
+ /**
69
+ * The editor's content column (`start`…`end`, the root's content box:
70
+ * where its blocks' boxes start and end), the width of the handle column
71
+ * left of it (the drag's handle, measured: `+`, grip and the gap to the
72
+ * block) and how far the drag reaches past them (`dropReach`, the
73
+ * `--edytor-drop-reach` the root inherits).
74
+ */
75
+ gutter(root) {
76
+ const style = root.ownerDocument.defaultView?.getComputedStyle(root);
77
+ const rect = root.getBoundingClientRect();
78
+ const px = (value) => parseFloat(value ?? '') || 0;
79
+ const start = rect.left + root.clientLeft + px(style?.paddingLeft);
80
+ const end = rect.right - px(style?.borderRightWidth) - px(style?.paddingRight);
81
+ const width = this.ctx.handle()?.isConnected
82
+ ? this.ctx.handle().getBoundingClientRect().width
83
+ : 0;
84
+ return { start, end, handles: width > 0 ? width : HANDLE_COLUMN, reach: dropReach(style) };
85
+ }
86
+ /** Whether `x` is in the handle column left of the editor's blocks (`gutter`): the page target's. */
87
+ inHandleColumn(x) {
88
+ const root = this.edytor.node;
89
+ return !!root && marginAt(x, this.gutter(root))?.zone === 'handles';
90
+ }
91
+ /**
92
+ * A placement in the editor's margins at the pointer (`dnd.reach`), within
93
+ * the editor's height, for the row the content's near edge shows at the
94
+ * pointer's height (`rowAt`: a nested block's own row; over a layout, the
95
+ * row of its first column on the left, of its last on the right, never
96
+ * another), by the zone the pointer is in (`marginAt`):
97
+ * - the handle column left of the blocks (`gutter`): that row's reorder
98
+ * (`reorder`): a drag straight down the handles reorders, row after
99
+ * row, gaps included (never a beside band);
100
+ * - the first `BESIDE_MARGIN` px past it on the left, and past the
101
+ * content's right edge: the beside band of that side (`beside`, as if
102
+ * the pointer were at that edge) when the document has a layout kind
103
+ * and the row offers one (a refused band shows nothing);
104
+ * - elsewhere within the reach (and there without a band): the reorder,
105
+ * on the left the handle column's, on the right the one the row's
106
+ * right edge offers (its halves as just inside the content, so nothing
107
+ * jumps as the pointer leaves it).
108
+ * `undefined` past the reach, above or below the editor, and inside the
109
+ * content (the blocks' own targets answer there).
110
+ */
111
+ margin(drag, { clientX: x, clientY: y }) {
112
+ const root = this.edytor.node;
113
+ if (!root)
114
+ return undefined;
115
+ const box = root.getBoundingClientRect();
116
+ if (y < box.top || y > box.bottom)
117
+ return undefined;
118
+ const gutter = this.gutter(root);
119
+ const zone = marginAt(x, gutter);
120
+ if (!zone)
121
+ return undefined;
122
+ const right = zone.side === 'right';
123
+ const band = zone.zone === 'beside' && this.layouts;
124
+ const edge = right ? gutter.end - 1 : gutter.start + 1;
125
+ const hits = root.ownerDocument.elementsFromPoint?.(edge, y) ?? [];
126
+ const hit = hits.find((at) => {
127
+ const block = at.closest('[data-edytor-block="true"]');
128
+ return block && root.contains(block) && this.isTarget(block);
129
+ });
130
+ const node = hit?.closest('[data-edytor-block="true"]');
131
+ const target = node && this.targetOf(node);
132
+ // Between two rows where the margin reorders (a margin, a layout's
133
+ // edge), the reorder shown stays, as a block's sticky slop keeps it.
134
+ const shown = !band && this.ctx.indicator.target === root.ownerDocument.body;
135
+ const held = shown ? this.ctx.indicator.placement : null;
136
+ const stay = held && !isBeside(held.position) ? held : undefined;
137
+ if (!node || !target)
138
+ return stay;
139
+ const { facade } = this.edytor;
140
+ let row = this.rowAt(drag, target, node, { clientX: edge, clientY: y });
141
+ // Over a layout's edge, its first or last column's row at that height.
142
+ if (facade.isLayout(row.id)) {
143
+ const items = row.children.filter((item) => item.node && this.isTarget(item.node));
144
+ const rect = (right ? items.at(-1) : items[0])?.node?.getBoundingClientRect();
145
+ if (!rect || rect.width === 0)
146
+ return undefined;
147
+ const inner = right ? rect.right - 1 : rect.left + 1;
148
+ row = this.rowAt(drag, target, node, { clientX: inner, clientY: y });
149
+ }
150
+ if (facade.isLayout(row.id) || !row.node)
151
+ return stay;
152
+ if (band) {
153
+ const aside = this.beside(drag, row, { clientX: right ? Infinity : -Infinity, clientY: y }, zone.side);
154
+ // A band the document refuses shows nothing; a row offering none (a
155
+ // nested row on the left, a layout that would stack) reorders.
156
+ if (aside !== undefined)
157
+ return aside ?? undefined;
158
+ }
159
+ const rect = ownRow(row.node);
160
+ if (right) {
161
+ const at = { clientX: Math.min(x, rect.right - 1), clientY: y };
162
+ return this.pick(drag, this.halves(drag, row, at, rect)) ?? undefined;
163
+ }
164
+ return this.reorder(drag, row, { clientX: x, clientY: y }) ?? undefined;
165
+ }
166
+ /**
167
+ * The halves of `row` (`zones`) at the pointer, the one it is in first:
168
+ * the top half of `rect` (its own row by default) before, the bottom one
169
+ * after; with `plain`, only before or after a block — never inside one.
170
+ */
171
+ halves(drag, row, input, rect, plain = false) {
172
+ const zones = this.zones(drag, row, input);
173
+ const [before, after] = [zones.before, zones.after].map((half) => plain ? half.filter((placement) => placement.position !== 'inside') : half);
174
+ return input.clientY < rect.top + rect.height / 2 ? [before, after] : [after, before];
175
+ }
176
+ /**
177
+ * The first placement of `halves` the document takes (a refused one gives
178
+ * way to the next, then to the other half's), `blocked` when the first
179
+ * half took none; `null` when none fits.
180
+ */
181
+ pick(drag, halves) {
182
+ const fits = drag.fits;
183
+ const placement = halves.flat().find(fits);
184
+ return placement ? { ...placement, blocked: !halves[0].some(fits) } : null;
185
+ }
186
+ /**
187
+ * The handle column's reorder over `row` at the pointer: its plain halves
188
+ * (`halves`, the pointer's x picking the level); `null` when neither half
189
+ * fits. Over an item of a container the dragged blocks do not fit in (a
190
+ * paragraph over a list's item: the document refuses every placement at
191
+ * the item's level), the container is the row: its whole box, the upper
192
+ * half before it, the lower half after it (round 4), so a drag down the
193
+ * handles meets the list as one row it can pass.
194
+ */
195
+ reorder(drag, row, input) {
196
+ const fits = drag.fits;
197
+ let halves = this.halves(drag, row, input, ownRow(row.node), true);
198
+ for (let at = row.parent; !halves[0].some(fits) && at?.node && !at.isRoot && at.isContainer; at = at.parent)
199
+ halves = this.halves(drag, at, input, at.node.getBoundingClientRect(), true);
200
+ return this.pick(drag, halves);
201
+ }
202
+ /**
203
+ * The block whose row the pointer is on over `node`: the last shown drop
204
+ * target in it whose row starts at or above the pointer (beside a nested
205
+ * block, over its ancestors' indent, the pointer is on that block's
206
+ * row), else `target`, over its own row (`emptied`). A layout's columns
207
+ * sit side by side: only the one under the pointer is measured (between
208
+ * two of them, the layout is the row: its gap).
209
+ */
210
+ rowAt(drag, target, node, { clientX, clientY }) {
211
+ const lift = (row) => this.emptied(drag, row);
212
+ if (clientY < getOwnRowBottom(node))
213
+ return lift(target);
214
+ const { facade } = this.edytor;
215
+ let row = target;
216
+ let aside = null;
217
+ // In document order, rows start lower and lower (within a column): measure
218
+ // none below the pointer, none a closed toggle hides (each read would force
219
+ // a layout), and nothing in a column the pointer is not over.
220
+ for (const inner of node.querySelectorAll('[data-edytor-block="true"]')) {
221
+ if (aside?.contains(inner))
222
+ continue;
223
+ const block = this.targetOf(inner);
224
+ if (!block || inner.closest(HIDDEN))
225
+ continue;
226
+ const rect = inner.getBoundingClientRect();
227
+ if (facade.isLayoutItem(block.id) && (clientX < rect.left || clientX > rect.right)) {
228
+ aside = inner;
229
+ continue;
230
+ }
231
+ if (rect.top > clientY)
232
+ break;
233
+ if (rect.height > 0)
234
+ row = block;
235
+ }
236
+ return lift(row);
237
+ }
238
+ /** Whether the document has a layout kind: only then are there beside placements. */
239
+ get layouts() {
240
+ for (const definition of this.edytor.blocks.values())
241
+ if (definition.layout)
242
+ return true;
243
+ return false;
244
+ }
245
+ /**
246
+ * The block a beside placement over `block` stands beside: the document's
247
+ * own resolution (`facade.besideAt`, `placeBeside`'s): a list item's list,
248
+ * a code line's code block, a toggle's child itself, an item itself.
249
+ */
250
+ besideOf(block) {
251
+ return this.edytor.idToBlock.get(this.edytor.facade.besideAt(block.id)) ?? block;
252
+ }
253
+ /** The item (and its layout) a beside placement at `outer` (`besideOf`) adds a column beside. */
254
+ layoutOf(outer) {
255
+ const { facade } = this.edytor;
256
+ const item = facade.isLayoutItem(outer.id)
257
+ ? outer
258
+ : outer.parent && !outer.parent.isRoot && facade.isLayoutItem(outer.parent.id)
259
+ ? outer.parent
260
+ : null;
261
+ return item ? { item, layout: item.parent ?? null } : null;
262
+ }
263
+ /**
264
+ * Whether `x` is over a column other than one holding `block`: a sticky
265
+ * target never holds the pointer across a column boundary.
266
+ */
267
+ overOtherColumn(block, x) {
268
+ const { facade } = this.edytor;
269
+ for (let at = block; at && !at.isRoot; at = at.parent) {
270
+ if (!facade.isLayoutItem(at.id))
271
+ continue;
272
+ const item = at;
273
+ const over = item.parent?.children.some((other) => {
274
+ const rect = other !== item ? other.node?.getBoundingClientRect() : undefined;
275
+ return rect !== undefined && rect.width > 0 && x >= rect.left && x <= rect.right;
276
+ });
277
+ if (over)
278
+ return true;
279
+ }
280
+ return false;
281
+ }
282
+ /**
283
+ * Notion's beside bands over `row` (`docs/columns-plan.md`, "View layer"), only while the
284
+ * pointer is within its own row's height, the document has a layout kind
285
+ * and the layout the drop makes or grows does not stack (`stacks`):
286
+ * - right: the row's last 15% (at least 32px), and the slop past it;
287
+ * - left: the slop left of the row (its sticky margin, left of its text
288
+ * column), only for a row whose parent is the root or a column (a
289
+ * list's item: its list's) — a nested row keeps the pointer's x for its
290
+ * levels (`zones`) — and only
291
+ * inside the editor (a column's gap): left of the editor's blocks is the
292
+ * handle column, which reorders (`margin`);
293
+ * - over a layout's gap (the row is the layout): right of the column
294
+ * before it, a new column between.
295
+ * `undefined` outside the bands (the hitbox's halves stand), else the
296
+ * placement, or `null` when the document refuses it: a refused band shows
297
+ * nothing.
298
+ */
299
+ beside(drag, row, { clientX: x, clientY: y }, band) {
300
+ if (!row.node || !this.layouts)
301
+ return undefined;
302
+ if (this.carrier(drag, row))
303
+ return undefined;
304
+ const { facade } = this.edytor;
305
+ let placement;
306
+ if (facade.isLayout(row.id)) {
307
+ const rect = row.node.getBoundingClientRect();
308
+ if (y < rect.top || y > rect.bottom || stacks(rect.width))
309
+ return undefined;
310
+ const items = row.children.filter((item) => item.node && this.isTarget(item.node));
311
+ for (const [index, item] of items.entries()) {
312
+ const next = items[index + 1]?.node?.getBoundingClientRect();
313
+ const own = item.node.getBoundingClientRect();
314
+ if (next && x >= own.right && x <= next.left)
315
+ placement = { target: item, node: item.node, position: 'right' };
316
+ }
317
+ }
318
+ else {
319
+ const rect = ownRow(row.node);
320
+ if (y < rect.top || y > rect.bottom)
321
+ return undefined;
322
+ const outer = this.besideOf(row);
323
+ const width = (this.layoutOf(outer)?.layout ?? outer).node?.getBoundingClientRect().width;
324
+ if (width === undefined || stacks(width))
325
+ return undefined;
326
+ // A container's item (a list's) stands at its container's level, as the
327
+ // document resolves it (`besideAt`): left of a root list's item is left of the list.
328
+ let at = row;
329
+ while (at.parent &&
330
+ !at.parent.isRoot &&
331
+ at.parent.isContainer &&
332
+ !facade.isLayoutItem(at.parent.id))
333
+ at = at.parent;
334
+ const parent = at.parent;
335
+ const level = !parent || parent.isRoot || facade.isLayoutItem(parent.id);
336
+ if (band === 'right' ||
337
+ (!band && x >= rect.right - Math.max(RIGHT_BAND_MIN, rect.width * RIGHT_BAND)))
338
+ placement = { target: row, node: row.node, position: 'right' };
339
+ else if (level &&
340
+ (band === 'left' ||
341
+ (!band && x < rect.left && x >= rect.left - SLOP_X && x >= this.inside(rect.left))))
342
+ placement = { target: row, node: row.node, position: 'left' };
343
+ }
344
+ if (!placement)
345
+ return undefined;
346
+ return drag.fits(placement) ? placement : null;
347
+ }
348
+ /** Where the editor's blocks start (`gutter`), or `fallback` without a host. */
349
+ inside(fallback) {
350
+ const root = this.edytor.node;
351
+ return root ? this.gutter(root).start : fallback;
352
+ }
353
+ /** The children a block shows: none for a closed toggle's, or a container's items. */
354
+ shown(block) {
355
+ return block.isContainer
356
+ ? []
357
+ : block.children.filter((child) => child.node && this.isTarget(child.node) && !hidden(child));
358
+ }
359
+ /**
360
+ * Over a dragged block, the parent it leaves when that parent shows no
361
+ * other child: the gap under the parent's own row, which reparents as
362
+ * the parent's lower half does (`zones`). Else `row`.
363
+ */
364
+ emptied(drag, row) {
365
+ const group = drag.group;
366
+ const parent = this.carrier(drag, row)?.parent;
367
+ if (!parent?.node || parent.isRoot || !this.isTarget(parent.node))
368
+ return row;
369
+ const shown = this.shown(parent);
370
+ return shown.length && shown.every((child) => group.includes(child)) ? parent : row;
371
+ }
372
+ /**
373
+ * The placements over `row`, each half's in preference order (a refused
374
+ * one gives way to the next, then to the other half's):
375
+ * - the top half: before it;
376
+ * - the bottom half of a block whose children show (not a closed toggle):
377
+ * its first child's slot. Pragmatic drag and drop's tree rule: an
378
+ * expanded item offers no "after" on its own row;
379
+ * - else, after it at the level whose text column is nearest the pointer:
380
+ * the last block of a nested group reparents to any ancestor it ends,
381
+ * down to the root. Past one nesting step right of its text start,
382
+ * inside it (its last child) first. A block every shown child of which
383
+ * is dragged is not expanded: its levels, never inside it when the drag
384
+ * moves only its children (they would stay where they are).
385
+ * None over a dragged block's own row or its subtree: released there, the
386
+ * drag changes nothing (its levels would outdent it) — unless it empties
387
+ * its parent's shown children (`emptied`): that parent's row. Over the
388
+ * hint of the row's empty body (`body.hint`: an open toggle's, a
389
+ * callout's), inside it first, either half.
390
+ */
391
+ zones(drag, row, { clientX, clientY }) {
392
+ if (this.carrier(drag, row))
393
+ return { before: [], after: [] };
394
+ const group = drag.group;
395
+ const at = (target, position) => target?.node ? [{ target, node: target.node, position }] : [];
396
+ const before = at(row, 'before');
397
+ const shown = this.shown(row);
398
+ const first = shown.find((child) => !group.includes(child));
399
+ if (first)
400
+ return { before, after: at(first, 'before') };
401
+ // A group moved out from under its parent leaves the block before it last.
402
+ const next = (block) => {
403
+ let next = block.nextBlock;
404
+ while (next && group.includes(next))
405
+ next = next.nextBlock;
406
+ return next;
407
+ };
408
+ const levels = [row];
409
+ for (let level = row; !next(level) && level.parent?.node && !level.parent.isRoot;)
410
+ levels.push((level = level.parent));
411
+ const distance = (level) => Math.abs(column(level) - clientX);
412
+ const after = levels
413
+ .sort((a, b) => distance(a) - distance(b))
414
+ .flatMap((level) => at(level, 'after'));
415
+ const stays = shown.length > 0 && group.every((moved) => moved.parent === row);
416
+ const inside = stays ? [] : at(row, 'inside');
417
+ if (overEmptyBody(row.node, clientY))
418
+ return { before: [...inside, ...before], after: [...inside, ...after] };
419
+ const nests = clientX > column(row) + nestIndent(row.node);
420
+ return { before, after: nests ? [...inside, ...after] : [...after, ...inside] };
421
+ }
422
+ /** The dragged block that is `row` or holds it: its row offers nothing (it moves with the drag). */
423
+ carrier(drag, row) {
424
+ return drag.group.find((moved) => moved === row || row.isChildOf(moved));
425
+ }
426
+ }
@@ -1,22 +1,4 @@
1
- import type * as ElementAdapter from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
2
- import type * as CustomPreview from '@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview';
3
- import type * as ListItem from '@atlaskit/pragmatic-drag-and-drop-hitbox/list-item';
4
- import type * as AutoScroll from '@atlaskit/pragmatic-drag-and-drop-auto-scroll/element';
5
- export declare const draggable: typeof ElementAdapter.draggable, dropTargetForElements: (args: import("@atlaskit/pragmatic-drag-and-drop/dist/types/internal-types").DropTargetArgs<import("@atlaskit/pragmatic-drag-and-drop/dist/types/internal-types").ElementDragType>) => import("@atlaskit/pragmatic-drag-and-drop/dist/types/internal-types").CleanupFn;
6
- export declare const setCustomNativeDragPreview: typeof CustomPreview.setCustomNativeDragPreview;
7
- /** The list-item hitbox (reorder-before / reorder-after / combine, each available, not-available or blocked). */
8
- export declare const attachInstruction: typeof ListItem.attachInstruction, extractInstruction: typeof ListItem.extractInstruction;
9
- export type { Availability, Instruction } from '@atlaskit/pragmatic-drag-and-drop-hitbox/list-item';
10
- type AutoScrollApi = {
11
- autoScroll: typeof AutoScroll.autoScrollForElements;
12
- autoScrollWindow: typeof AutoScroll.autoScrollWindowForElements;
13
- };
14
- /**
15
- * Atlassian's auto-scroll for element drags (registered scroll containers, and
16
- * the window), bound to this module's adapter. The package's own element entry
17
- * binds it to the core required by its bare path, which a browser bundle
18
- * resolves to the core's ES build: a second adapter whose monitor never sees
19
- * the drags this adapter starts, so nothing would scroll. Created on first use:
20
- * creating it registers a monitor whose frame loop runs on every element drag.
21
- */
22
- export declare const autoScrollApi: () => AutoScrollApi;
1
+ export { draggable, dropTargetForElements } from './vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js';
2
+ export type { ElementDropTargetEventPayloadMap } from './vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js';
3
+ export { setCustomNativeDragPreview } from './vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js';
4
+ export { autoScrollForElements as autoScroll, autoScrollWindowForElements as autoScrollWindow } from './vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js';
@@ -1,26 +1,7 @@
1
- // Atlassian's typed directory entry points are not loadable by Node ESM after
2
- // SvelteKit externalizes them for SSR. Their published CommonJS files are
3
- // loadable there; reconnect that runtime to the public declarations here.
4
- // @ts-expect-error The published CommonJS entry has no adjacent declaration.
5
- import * as adapterRuntime from '@atlaskit/pragmatic-drag-and-drop/dist/cjs/entry-point/element/adapter.js';
6
- // @ts-expect-error The published CommonJS entry has no adjacent declaration.
7
- import * as previewRuntime from '@atlaskit/pragmatic-drag-and-drop/dist/cjs/entry-point/element/set-custom-native-drag-preview.js';
8
- // @ts-expect-error The published CommonJS entry has no adjacent declaration.
9
- import * as listItemRuntime from '@atlaskit/pragmatic-drag-and-drop-hitbox/dist/cjs/list-item.js';
10
- // @ts-expect-error The published CommonJS module has no adjacent declaration.
11
- import * as autoScrollRuntime from '@atlaskit/pragmatic-drag-and-drop-auto-scroll/dist/cjs/over-element/make-api.js';
12
- const adapter = adapterRuntime;
13
- export const { draggable, dropTargetForElements } = adapter;
14
- export const { setCustomNativeDragPreview } = previewRuntime;
15
- /** The list-item hitbox (reorder-before / reorder-after / combine, each available, not-available or blocked). */
16
- export const { attachInstruction, extractInstruction } = listItemRuntime;
17
- let autoScrollApiOf;
18
- /**
19
- * Atlassian's auto-scroll for element drags (registered scroll containers, and
20
- * the window), bound to this module's adapter. The package's own element entry
21
- * binds it to the core required by its bare path, which a browser bundle
22
- * resolves to the core's ES build: a second adapter whose monitor never sees
23
- * the drags this adapter starts, so nothing would scroll. Created on first use:
24
- * creating it registers a monitor whose frame loop runs on every element drag.
25
- */
26
- export const autoScrollApi = () => (autoScrollApiOf ??= autoScrollRuntime.makeApi({ monitor: adapter.monitorForElements }));
1
+ // Atlassian's Pragmatic drag and drop, forked in `vendor/pragmatic` (its own
2
+ // ES2019 build, `UPSTREAM.md`): the element adapter, the custom native drag
3
+ // preview and the element auto-scroll, all on one core,
4
+ // so the auto-scroll's monitor sees the drags this adapter starts.
5
+ export { draggable, dropTargetForElements } from './vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js';
6
+ export { setCustomNativeDragPreview } from './vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js';
7
+ export { autoScrollForElements as autoScroll, autoScrollWindowForElements as autoScrollWindow } from './vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js';
@@ -0,0 +1,14 @@
1
+ import type { Edytor } from '../edytor.svelte.js';
2
+ /**
3
+ * A resize drag from its press (the image's handles, a table column's and
4
+ * a layout gap's bands): the press's default and propagation stop; a
5
+ * `pointerdown` tracks its pointer (captured, on the document), a lone
6
+ * `mousedown` (`isLonePress`: WebKit's first press after a native drag)
7
+ * tracks the mouse on the window. `move` takes each move's client x, then
8
+ * the overlay measures again; `end` takes the release's x, or `null` when
9
+ * the drag ends without one (Escape, a cancel, the answered cancel, the view
10
+ * no longer permitting a write), and nothing is to be written. After a
11
+ * release the editor takes the keys (Notion: Mod+Z right after). Answers the
12
+ * cancel (for the view turning readonly mid-drag).
13
+ */
14
+ export declare const trackDrag: (edytor: Edytor, press: PointerEvent | MouseEvent, move: (x: number) => void, end: (x: number | null) => void) => (() => void);
@@ -0,0 +1,55 @@
1
+ import { takeKeys } from '../events/onFocus.js';
2
+ /**
3
+ * A resize drag from its press (the image's handles, a table column's and
4
+ * a layout gap's bands): the press's default and propagation stop; a
5
+ * `pointerdown` tracks its pointer (captured, on the document), a lone
6
+ * `mousedown` (`isLonePress`: WebKit's first press after a native drag)
7
+ * tracks the mouse on the window. `move` takes each move's client x, then
8
+ * the overlay measures again; `end` takes the release's x, or `null` when
9
+ * the drag ends without one (Escape, a cancel, the answered cancel, the view
10
+ * no longer permitting a write), and nothing is to be written. After a
11
+ * release the editor takes the keys (Notion: Mod+Z right after). Answers the
12
+ * cancel (for the view turning readonly mid-drag).
13
+ */
14
+ export const trackDrag = (edytor, press, move, end) => {
15
+ press.preventDefault();
16
+ press.stopPropagation();
17
+ const target = press.currentTarget;
18
+ const pointer = press.type === 'pointerdown';
19
+ if (pointer)
20
+ target?.setPointerCapture?.(press.pointerId);
21
+ const document = target?.ownerDocument ?? edytor.node?.ownerDocument;
22
+ const tracked = pointer ? document : document?.defaultView;
23
+ const [moves, ups] = pointer ? ['pointermove', 'pointerup'] : ['mousemove', 'mouseup'];
24
+ const moved = (event) => {
25
+ if (!edytor.dispatcher.permits())
26
+ return finish(event);
27
+ move(event.clientX);
28
+ edytor.overlay.invalidate();
29
+ };
30
+ const finish = (event) => {
31
+ tracked?.removeEventListener(moves, moved);
32
+ tracked?.removeEventListener(ups, finish);
33
+ tracked?.removeEventListener('pointercancel', finish);
34
+ document?.removeEventListener('keydown', escape, true);
35
+ const released = event.type === ups;
36
+ end(released ? event.clientX : null);
37
+ edytor.overlay.invalidate();
38
+ if (released)
39
+ takeKeys(edytor);
40
+ };
41
+ const escape = (event) => {
42
+ if (event.key !== 'Escape')
43
+ return;
44
+ event.preventDefault();
45
+ event.stopPropagation();
46
+ finish(event);
47
+ };
48
+ tracked?.addEventListener(moves, moved);
49
+ tracked?.addEventListener(ups, finish);
50
+ if (pointer)
51
+ tracked?.addEventListener('pointercancel', finish);
52
+ document?.addEventListener('keydown', escape, true);
53
+ edytor.overlay.invalidate();
54
+ return () => finish(new Event('cancel'));
55
+ };