edytor 1.0.0-rc.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. package/README.md +65 -25
  2. package/dist/block/block.svelte.d.ts +10 -85
  3. package/dist/block/block.svelte.js +47 -141
  4. package/dist/block/colors.d.ts +0 -9
  5. package/dist/block/colors.js +1 -18
  6. package/dist/block/contentRange.d.ts +5 -1
  7. package/dist/block/contentRange.js +15 -16
  8. package/dist/block/inlineBlock.svelte.d.ts +8 -10
  9. package/dist/block/inlineBlock.svelte.js +14 -22
  10. package/dist/clipboard/createClipboardFragment.js +22 -64
  11. package/dist/clipboard/fragmentData.js +17 -42
  12. package/dist/clipboard/htmlFlow.d.ts +6 -1
  13. package/dist/clipboard/htmlFlow.js +26 -13
  14. package/dist/clipboard/insertClipboardFragment.js +5 -4
  15. package/dist/clipboard/moveText.js +16 -8
  16. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  17. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  18. package/dist/cloudflare/DocumentRoom.d.ts +22 -17
  19. package/dist/cloudflare/DocumentRoom.js +10 -5
  20. package/dist/cloudflare/index.d.ts +1 -1
  21. package/dist/cloudflare/index.js +1 -1
  22. package/dist/cloudflare/move.d.ts +1 -18
  23. package/dist/cloudflare/move.js +2 -48
  24. package/dist/cloudflare/room/admission.d.ts +1 -60
  25. package/dist/cloudflare/room/admission.js +25 -29
  26. package/dist/cloudflare/room/comments.d.ts +1 -3
  27. package/dist/cloudflare/room/comments.js +6 -6
  28. package/dist/cloudflare/room/context.d.ts +20 -82
  29. package/dist/cloudflare/room/context.js +8 -8
  30. package/dist/cloudflare/room/forged.d.ts +1 -1
  31. package/dist/cloudflare/room/forged.js +2 -12
  32. package/dist/cloudflare/room/frames.d.ts +1 -1
  33. package/dist/cloudflare/room/frames.js +1 -1
  34. package/dist/cloudflare/room/history.d.ts +1 -25
  35. package/dist/cloudflare/room/history.js +39 -54
  36. package/dist/cloudflare/room/moves.d.ts +1 -13
  37. package/dist/cloudflare/room/moves.js +33 -57
  38. package/dist/cloudflare/room/presence.d.ts +1 -11
  39. package/dist/cloudflare/room/presence.js +4 -4
  40. package/dist/cloudflare/room/purge.d.ts +1 -2
  41. package/dist/cloudflare/room/purge.js +2 -2
  42. package/dist/cloudflare/room/replicas.d.ts +1 -7
  43. package/dist/cloudflare/room/replicas.js +2 -2
  44. package/dist/cloudflare/room/storage.d.ts +9 -30
  45. package/dist/cloudflare/room/storage.js +52 -104
  46. package/dist/cloudflare/room/updates.d.ts +4 -4
  47. package/dist/cloudflare/room/updates.js +17 -24
  48. package/dist/cloudflare/room/validation.d.ts +1 -5
  49. package/dist/cloudflare/room/validation.js +16 -37
  50. package/dist/collaboration/RemoteSelections.svelte +13 -17
  51. package/dist/collaboration/comments/client.d.ts +2 -2
  52. package/dist/collaboration/comments/client.js +1 -1
  53. package/dist/collaboration/history/index.d.ts +5 -5
  54. package/dist/collaboration/history/index.js +5 -5
  55. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  56. package/dist/collaboration/history/panel.svelte.js +223 -0
  57. package/dist/collaboration/providers.d.ts +12 -3
  58. package/dist/collaboration/providers.js +5 -4
  59. package/dist/components/Block.svelte +160 -119
  60. package/dist/components/Block.svelte.d.ts +8 -3
  61. package/dist/components/Content.svelte +91 -44
  62. package/dist/components/CustomMark.svelte +46 -0
  63. package/dist/components/CustomMark.svelte.d.ts +11 -0
  64. package/dist/components/Edytor.svelte +80 -95
  65. package/dist/components/Edytor.svelte.d.ts +8 -12
  66. package/dist/components/InlineBlock.svelte +4 -9
  67. package/dist/components/Mark.svelte +46 -35
  68. package/dist/components/Mark.svelte.d.ts +7 -0
  69. package/dist/components/Ranges.svelte +96 -0
  70. package/dist/components/Ranges.svelte.d.ts +19 -0
  71. package/dist/components/Suggestion.svelte +3 -2
  72. package/dist/components/Text.svelte +48 -14
  73. package/dist/components/Text.svelte.d.ts +1 -1
  74. package/dist/crdt/admission.d.ts +2 -9
  75. package/dist/crdt/admission.js +3 -9
  76. package/dist/crdt/attribution/attribution.d.ts +11 -72
  77. package/dist/crdt/attribution/attribution.js +5 -52
  78. package/dist/crdt/attribution/block.d.ts +0 -78
  79. package/dist/crdt/attribution/block.js +1 -144
  80. package/dist/crdt/data.d.ts +8 -13
  81. package/dist/crdt/data.js +30 -70
  82. package/dist/crdt/doc/anchors.js +4 -4
  83. package/dist/crdt/doc/content.d.ts +5 -1
  84. package/dist/crdt/doc/content.js +3 -1
  85. package/dist/crdt/doc/delete.d.ts +1 -0
  86. package/dist/crdt/doc/funnel.d.ts +0 -23
  87. package/dist/crdt/doc/funnel.js +34 -85
  88. package/dist/crdt/doc/gate.d.ts +8 -9
  89. package/dist/crdt/doc/gate.js +7 -17
  90. package/dist/crdt/doc/history.d.ts +87 -14
  91. package/dist/crdt/doc/history.js +334 -149
  92. package/dist/crdt/doc/layout.d.ts +0 -1
  93. package/dist/crdt/doc/layout.js +2 -3
  94. package/dist/crdt/doc/meta.d.ts +4 -4
  95. package/dist/crdt/doc/meta.js +10 -21
  96. package/dist/crdt/doc/moves.d.ts +4 -4
  97. package/dist/crdt/doc/moves.js +5 -5
  98. package/dist/crdt/doc/plan.d.ts +2 -0
  99. package/dist/crdt/doc/plan.js +2 -0
  100. package/dist/crdt/doc/reads.d.ts +1 -5
  101. package/dist/crdt/doc/reads.js +38 -49
  102. package/dist/crdt/doc/seed.d.ts +15 -6
  103. package/dist/crdt/doc/seed.js +27 -26
  104. package/dist/crdt/doc/split-merge.d.ts +1 -3
  105. package/dist/crdt/doc/split-merge.js +4 -5
  106. package/dist/crdt/doc/steps.d.ts +3 -7
  107. package/dist/crdt/doc/steps.js +20 -9
  108. package/dist/crdt/doc/types.d.ts +0 -10
  109. package/dist/crdt/document.d.ts +24 -115
  110. package/dist/crdt/document.js +207 -305
  111. package/dist/crdt/edytor-doc.d.ts +671 -90
  112. package/dist/crdt/edytor-doc.js +73 -149
  113. package/dist/crdt/engine-api.d.ts +15 -47
  114. package/dist/crdt/engine.d.ts +7 -17
  115. package/dist/crdt/engine.js +9 -19
  116. package/dist/crdt/flow.d.ts +9 -37
  117. package/dist/crdt/flow.js +260 -238
  118. package/dist/crdt/index.d.ts +26 -85
  119. package/dist/crdt/index.js +21 -47
  120. package/dist/crdt/operations.d.ts +24 -33
  121. package/dist/crdt/operations.js +7 -17
  122. package/dist/crdt/placement/display.d.ts +0 -2
  123. package/dist/crdt/placement/display.js +0 -15
  124. package/dist/crdt/placement/model.d.ts +160 -12
  125. package/dist/crdt/placement/model.js +413 -414
  126. package/dist/crdt/placement/rank.d.ts +1 -5
  127. package/dist/crdt/placement/rank.js +28 -38
  128. package/dist/crdt/protocol.d.ts +4 -5
  129. package/dist/crdt/protocol.js +3 -4
  130. package/dist/crdt/protocols/awareness.d.ts +3 -7
  131. package/dist/crdt/protocols/awareness.js +17 -33
  132. package/dist/crdt/protocols/envelope.d.ts +9 -29
  133. package/dist/crdt/protocols/envelope.js +8 -25
  134. package/dist/crdt/protocols/sync.d.ts +15 -30
  135. package/dist/crdt/protocols/sync.js +27 -89
  136. package/dist/crdt/providers/bound.d.ts +3 -1
  137. package/dist/crdt/providers/bound.js +3 -1
  138. package/dist/crdt/providers/container.d.ts +11 -17
  139. package/dist/crdt/providers/container.js +39 -27
  140. package/dist/crdt/providers/index.d.ts +34 -6
  141. package/dist/crdt/providers/index.js +106 -111
  142. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  143. package/dist/crdt/providers/indexeddb.js +29 -90
  144. package/dist/crdt/providers/room.d.ts +58 -2
  145. package/dist/crdt/providers/room.js +38 -21
  146. package/dist/crdt/providers/websocket.d.ts +1 -1
  147. package/dist/crdt/providers/websocket.js +3 -4
  148. package/dist/crdt/purge.d.ts +2 -2
  149. package/dist/crdt/purge.js +69 -6
  150. package/dist/crdt/rangeDelete.d.ts +4 -42
  151. package/dist/crdt/rangeDelete.js +7 -6
  152. package/dist/crdt/restore.d.ts +21 -1
  153. package/dist/crdt/restore.js +54 -59
  154. package/dist/crdt/schema.d.ts +2 -2
  155. package/dist/crdt/schema.js +4 -5
  156. package/dist/crdt/semantics.d.ts +10 -15
  157. package/dist/crdt/semantics.js +22 -21
  158. package/dist/crdt/storage.d.ts +7 -13
  159. package/dist/crdt/storage.js +10 -24
  160. package/dist/crdt/structs.d.ts +42 -47
  161. package/dist/crdt/structs.js +76 -67
  162. package/dist/crdt/tables.d.ts +9 -0
  163. package/dist/crdt/tables.js +20 -0
  164. package/dist/crdt/text/delete-index.d.ts +0 -13
  165. package/dist/crdt/text/delete-index.js +7 -14
  166. package/dist/crdt/text/deletes.d.ts +9 -22
  167. package/dist/crdt/text/deletes.js +11 -74
  168. package/dist/crdt/text/index/cache.js +3 -3
  169. package/dist/crdt/text/index/fold.d.ts +1 -2
  170. package/dist/crdt/text/index/fold.js +15 -10
  171. package/dist/crdt/text/index/layout.d.ts +0 -10
  172. package/dist/crdt/text/index/layout.js +6 -20
  173. package/dist/crdt/text/index/records.js +2 -1
  174. package/dist/crdt/text/index/report.js +5 -6
  175. package/dist/crdt/text/index/shared.d.ts +11 -4
  176. package/dist/crdt/text/index/shared.js +8 -7
  177. package/dist/crdt/text/index/state.d.ts +3 -33
  178. package/dist/crdt/text/index/state.js +2 -4
  179. package/dist/crdt/text/model.d.ts +82 -2
  180. package/dist/crdt/text/model.js +344 -354
  181. package/dist/crdt/text/rows.d.ts +0 -2
  182. package/dist/crdt/text/rows.js +0 -11
  183. package/dist/crdt/text/runs.d.ts +6 -3
  184. package/dist/crdt/text/runs.js +132 -137
  185. package/dist/crdt/text/streams.d.ts +1 -1
  186. package/dist/crdt/text/streams.js +1 -1
  187. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  188. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  189. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  190. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  191. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  192. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  193. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  194. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  195. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  196. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  197. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  198. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  199. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  200. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  201. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  202. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  203. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  204. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  205. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  206. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  207. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  208. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  209. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  210. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  211. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  212. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  213. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  214. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  215. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  216. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  217. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  218. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  219. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  220. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  221. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  222. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  223. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  224. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  225. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  226. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  227. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  228. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  229. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  230. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  231. package/dist/{plugins/blockHandles → dnd}/autoScroll.d.ts +2 -1
  232. package/dist/{plugins/blockHandles → dnd}/autoScroll.js +3 -3
  233. package/dist/dnd/pragmatic.d.ts +4 -22
  234. package/dist/dnd/pragmatic.js +7 -26
  235. package/dist/dnd/track.d.ts +14 -0
  236. package/dist/dnd/track.js +55 -0
  237. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  238. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  239. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  240. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  241. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  242. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  243. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  254. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +36 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  265. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  293. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  294. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  295. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  296. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  297. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  298. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  299. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  300. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  301. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  302. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  303. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  304. package/dist/edytor.svelte.d.ts +34 -64
  305. package/dist/edytor.svelte.js +118 -180
  306. package/dist/events/beforeInputCommands.d.ts +6 -11
  307. package/dist/events/beforeInputCommands.js +189 -184
  308. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  309. package/dist/events/beforeInputDeleteCommands.js +153 -204
  310. package/dist/events/domTextOffset.d.ts +9 -9
  311. package/dist/events/domTextOffset.js +20 -48
  312. package/dist/events/events.utils.d.ts +0 -2
  313. package/dist/events/events.utils.js +0 -4
  314. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  315. package/dist/events/nativeInteractiveControl.js +28 -56
  316. package/dist/events/onBeforeInput.d.ts +6 -1
  317. package/dist/events/onBeforeInput.js +207 -331
  318. package/dist/events/onCopy.js +1 -5
  319. package/dist/events/onDrop.d.ts +7 -1
  320. package/dist/events/onDrop.js +33 -72
  321. package/dist/events/onFocus.d.ts +9 -4
  322. package/dist/events/onFocus.js +92 -72
  323. package/dist/events/onInput.d.ts +8 -4
  324. package/dist/events/onInput.js +34 -147
  325. package/dist/events/onKeyDown.js +55 -122
  326. package/dist/events/onPaste.d.ts +13 -1
  327. package/dist/events/onPaste.js +46 -76
  328. package/dist/index.d.ts +10 -13
  329. package/dist/index.js +3 -3
  330. package/dist/kinds.d.ts +4 -6
  331. package/dist/kinds.js +28 -27
  332. package/dist/labels.d.ts +91 -314
  333. package/dist/labels.js +180 -396
  334. package/dist/plugins/Chrome.svelte +29 -0
  335. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  336. package/dist/plugins/Control.svelte +23 -0
  337. package/dist/plugins/Control.svelte.d.ts +30 -0
  338. package/dist/plugins/anchored.svelte.d.ts +47 -0
  339. package/dist/plugins/anchored.svelte.js +73 -0
  340. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  341. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  342. package/dist/plugins/bands.svelte.d.ts +57 -0
  343. package/dist/plugins/bands.svelte.js +95 -0
  344. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -151
  345. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  346. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +63 -97
  347. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +247 -268
  348. package/dist/plugins/blockHandles/BlockHandles.svelte +46 -29
  349. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  350. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +29 -23
  351. package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -162
  352. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  353. package/dist/plugins/blockHandles/dragPreview.js +20 -17
  354. package/dist/plugins/blockHandles/dropIndicator.js +52 -60
  355. package/dist/plugins/blockHandles/geometry.d.ts +46 -1
  356. package/dist/plugins/blockHandles/geometry.js +51 -4
  357. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +59 -28
  358. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +180 -105
  359. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  360. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  361. package/dist/plugins/brand.d.ts +8 -0
  362. package/dist/plugins/brand.js +8 -0
  363. package/dist/plugins/chrome.d.ts +79 -0
  364. package/dist/plugins/chrome.js +87 -0
  365. package/dist/plugins/code/CodeHeader.svelte +12 -58
  366. package/dist/plugins/code/CodeHeader.svelte.d.ts +1 -0
  367. package/dist/plugins/code/CodePlugin.svelte +75 -56
  368. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  369. package/dist/plugins/code/LanguageMenu.svelte +25 -0
  370. package/dist/plugins/code/LanguageMenu.svelte.d.ts +9 -0
  371. package/dist/plugins/code/code.css +5 -100
  372. package/dist/plugins/code/header.svelte.d.ts +47 -0
  373. package/dist/plugins/code/header.svelte.js +141 -0
  374. package/dist/plugins/code/languageMenu.svelte.d.ts +84 -0
  375. package/dist/plugins/code/languageMenu.svelte.js +199 -0
  376. package/dist/plugins/code/languages.d.ts +21 -10
  377. package/dist/plugins/code/languages.js +39 -126
  378. package/dist/plugins/columns/ColumnResize.svelte +13 -25
  379. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  380. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  381. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  382. package/dist/plugins/columns/columns.css +7 -26
  383. package/dist/plugins/columns/resize.svelte.d.ts +14 -51
  384. package/dist/plugins/columns/resize.svelte.js +70 -164
  385. package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
  386. package/dist/plugins/comments/CommentsController.svelte.js +14 -25
  387. package/dist/plugins/comments/CommentsSidebar.svelte +82 -430
  388. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +6 -7
  389. package/dist/plugins/comments/commentsPlugin.d.ts +31 -10
  390. package/dist/plugins/comments/commentsPlugin.js +12 -10
  391. package/dist/plugins/equation/EquationEditor.svelte +18 -129
  392. package/dist/plugins/equation/EquationEditor.svelte.d.ts +2 -1
  393. package/dist/plugins/equation/EquationPlugin.svelte +123 -168
  394. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +5 -3
  395. package/dist/plugins/equation/EquationView.svelte +20 -11
  396. package/dist/plugins/equation/equation.svelte.d.ts +74 -36
  397. package/dist/plugins/equation/equation.svelte.js +74 -66
  398. package/dist/plugins/equation/importUrl.d.ts +6 -0
  399. package/dist/plugins/equation/importUrl.js +6 -0
  400. package/dist/plugins/equation/katex.d.ts +8 -0
  401. package/dist/plugins/equation/katex.js +77 -0
  402. package/dist/plugins/find/FindController.svelte.d.ts +8 -13
  403. package/dist/plugins/find/FindController.svelte.js +34 -55
  404. package/dist/plugins/find/findPlugin.d.ts +4 -8
  405. package/dist/plugins/find/findPlugin.js +29 -9
  406. package/dist/plugins/image/ImageChrome.svelte +5 -151
  407. package/dist/plugins/image/ImagePlugin.svelte +49 -117
  408. package/dist/plugins/image/ImagePlugin.svelte.d.ts +1 -24
  409. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  410. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  411. package/dist/plugins/image/controls.svelte.d.ts +6 -57
  412. package/dist/plugins/image/controls.svelte.js +51 -174
  413. package/dist/plugins/image/image.d.ts +0 -5
  414. package/dist/plugins/image/image.js +0 -3
  415. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  416. package/dist/plugins/image/toolbar.svelte.js +145 -0
  417. package/dist/plugins/index.d.ts +39 -24
  418. package/dist/plugins/index.js +30 -22
  419. package/dist/plugins/list.svelte.d.ts +128 -0
  420. package/dist/plugins/list.svelte.js +217 -0
  421. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  422. package/dist/plugins/markdownShortcuts.js +6 -5
  423. package/dist/plugins/marquee/MarqueeBox.svelte +15 -0
  424. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +9 -0
  425. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +46 -0
  426. package/dist/plugins/marquee/MarqueeController.svelte.js +243 -0
  427. package/dist/plugins/marquee/marquee.d.ts +33 -0
  428. package/dist/plugins/marquee/marquee.js +89 -0
  429. package/dist/plugins/marquee/marqueePlugin.d.ts +32 -0
  430. package/dist/plugins/marquee/marqueePlugin.js +68 -0
  431. package/dist/plugins/media/AudioPlugin.svelte +3 -88
  432. package/dist/plugins/media/AudioPlugin.svelte.d.ts +1 -4
  433. package/dist/plugins/media/BookmarkPlugin.svelte +124 -112
  434. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +20 -7
  435. package/dist/plugins/media/EmbedPlugin.svelte +93 -77
  436. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +21 -9
  437. package/dist/plugins/media/EmptySlot.svelte +44 -0
  438. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  439. package/dist/plugins/media/FilePlugin.svelte +35 -111
  440. package/dist/plugins/media/FilePlugin.svelte.d.ts +12 -4
  441. package/dist/plugins/media/MediaEmpty.svelte +55 -112
  442. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  443. package/dist/plugins/media/SourceBlock.svelte +164 -0
  444. package/dist/plugins/media/SourceBlock.svelte.d.ts +33 -0
  445. package/dist/plugins/media/VideoPlugin.svelte +4 -97
  446. package/dist/plugins/media/VideoPlugin.svelte.d.ts +2 -5
  447. package/dist/plugins/media/empty.svelte.d.ts +69 -0
  448. package/dist/plugins/media/empty.svelte.js +111 -0
  449. package/dist/plugins/media/media.d.ts +93 -30
  450. package/dist/plugins/media/media.js +79 -86
  451. package/dist/plugins/media/urlPaste.svelte.d.ts +9 -32
  452. package/dist/plugins/media/urlPaste.svelte.js +46 -75
  453. package/dist/plugins/mention/MentionPlugin.svelte +47 -124
  454. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +11 -23
  455. package/dist/plugins/page/PageLink.svelte +54 -38
  456. package/dist/plugins/page/PagePlugin.svelte +20 -18
  457. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  458. package/dist/plugins/page/page.d.ts +35 -9
  459. package/dist/plugins/page/page.js +3 -4
  460. package/dist/plugins/pageLink/PageLinkPlugin.svelte +52 -108
  461. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +11 -23
  462. package/dist/plugins/planned.d.ts +10 -0
  463. package/dist/plugins/planned.js +12 -0
  464. package/dist/plugins/richtext/CalloutIcon.svelte +25 -0
  465. package/dist/plugins/richtext/CalloutIcon.svelte.d.ts +9 -0
  466. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  467. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  468. package/dist/plugins/richtext/EmptyBody.svelte +25 -0
  469. package/dist/plugins/richtext/EmptyBody.svelte.d.ts +8 -0
  470. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  471. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  472. package/dist/plugins/richtext/RichTextPlugin.svelte +272 -148
  473. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +37 -18
  474. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  475. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  476. package/dist/plugins/richtext/body.d.ts +9 -0
  477. package/dist/plugins/richtext/body.js +16 -0
  478. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +97 -0
  479. package/dist/plugins/richtext/calloutIcons.svelte.js +214 -0
  480. package/dist/plugins/richtext/callouts.d.ts +15 -0
  481. package/dist/plugins/richtext/callouts.js +23 -0
  482. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  483. package/dist/plugins/richtext/controls.svelte.js +126 -0
  484. package/dist/plugins/richtext/richTextOperations.js +37 -28
  485. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +18 -11
  486. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +93 -35
  487. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +11 -24
  488. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  489. package/dist/plugins/suggestions/SuggestionBars.svelte +32 -84
  490. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  491. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -16
  492. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  493. package/dist/plugins/table/TableChrome.svelte +96 -127
  494. package/dist/plugins/table/TableChrome.svelte.d.ts +5 -1
  495. package/dist/plugins/table/TablePlugin.svelte +116 -171
  496. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  497. package/dist/plugins/table/chrome.svelte.d.ts +110 -117
  498. package/dist/plugins/table/chrome.svelte.js +643 -289
  499. package/dist/plugins/table/ops.d.ts +47 -0
  500. package/dist/plugins/table/ops.js +233 -0
  501. package/dist/plugins/table/table.css +55 -134
  502. package/dist/plugins/table/table.d.ts +26 -7
  503. package/dist/plugins/table/table.js +23 -49
  504. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  505. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  506. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  507. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  508. package/dist/plugins/toc/toc.d.ts +41 -10
  509. package/dist/plugins/toc/toc.js +2 -3
  510. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +29 -66
  511. package/dist/plugins/toolbar/ToolbarController.svelte.js +151 -76
  512. package/dist/plugins/toolbar/toolbarPlugin.d.ts +14 -13
  513. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  514. package/dist/plugins/triggers/TriggerController.svelte.d.ts +6 -45
  515. package/dist/plugins/triggers/TriggerController.svelte.js +51 -96
  516. package/dist/plugins/triggers/place.d.ts +0 -9
  517. package/dist/plugins/triggers/place.js +1 -17
  518. package/dist/plugins/triggers/triggers.d.ts +31 -9
  519. package/dist/plugins/triggers/triggers.js +82 -62
  520. package/dist/plugins/uploads.svelte.d.ts +38 -20
  521. package/dist/plugins/uploads.svelte.js +39 -32
  522. package/dist/plugins.d.ts +167 -60
  523. package/dist/selection/domSelection.d.ts +13 -4
  524. package/dist/selection/domSelection.js +110 -183
  525. package/dist/selection/pointer.svelte.d.ts +12 -10
  526. package/dist/selection/pointer.svelte.js +154 -71
  527. package/dist/selection/replaceSelection.d.ts +21 -22
  528. package/dist/selection/replaceSelection.js +60 -69
  529. package/dist/selection/selection.svelte.d.ts +5 -73
  530. package/dist/selection/selection.svelte.js +263 -542
  531. package/dist/selection/selection.utils.d.ts +34 -11
  532. package/dist/selection/selection.utils.js +128 -247
  533. package/dist/selection/visibility.d.ts +11 -8
  534. package/dist/selection/visibility.js +23 -8
  535. package/dist/session/announcer.svelte.d.ts +2 -1
  536. package/dist/session/announcer.svelte.js +7 -3
  537. package/dist/session/attempt.d.ts +33 -39
  538. package/dist/session/attempt.js +61 -53
  539. package/dist/session/bindings.js +108 -139
  540. package/dist/session/commands.d.ts +47 -22
  541. package/dist/session/commands.js +206 -208
  542. package/dist/session/composition.svelte.d.ts +2 -4
  543. package/dist/session/composition.svelte.js +55 -65
  544. package/dist/session/editing/text.d.ts +6 -0
  545. package/dist/session/editing/text.js +17 -3
  546. package/dist/session/handles.d.ts +10 -1
  547. package/dist/session/handles.js +28 -0
  548. package/dist/session/history.d.ts +0 -4
  549. package/dist/session/history.js +15 -21
  550. package/dist/session/inputRules.js +75 -84
  551. package/dist/session/keymap.d.ts +1 -6
  552. package/dist/session/keymap.js +17 -20
  553. package/dist/session/moves.d.ts +10 -10
  554. package/dist/session/moves.js +31 -59
  555. package/dist/session/navigation.d.ts +18 -3
  556. package/dist/session/navigation.js +194 -153
  557. package/dist/session/ports.d.ts +7 -0
  558. package/dist/session/selection.d.ts +4 -3
  559. package/dist/session/selection.js +8 -0
  560. package/dist/session/suggestions.svelte.d.ts +1 -1
  561. package/dist/session/suggestions.svelte.js +64 -47
  562. package/dist/session/virtual.d.ts +3 -3
  563. package/dist/session/virtual.js +18 -40
  564. package/dist/surface/attributes.d.ts +1 -0
  565. package/dist/surface/attributes.js +3 -26
  566. package/dist/surface/cells.d.ts +5 -0
  567. package/dist/surface/cells.js +5 -0
  568. package/dist/surface/lines.d.ts +32 -0
  569. package/dist/surface/lines.js +43 -0
  570. package/dist/surface/observer.svelte.d.ts +3 -20
  571. package/dist/surface/observer.svelte.js +73 -77
  572. package/dist/surface/overlay.d.ts +48 -6
  573. package/dist/surface/overlay.js +133 -23
  574. package/dist/surface/pin.svelte.d.ts +5 -0
  575. package/dist/surface/pin.svelte.js +5 -0
  576. package/dist/surface/projector.svelte.d.ts +4 -6
  577. package/dist/surface/projector.svelte.js +42 -69
  578. package/dist/text/text.svelte.d.ts +14 -40
  579. package/dist/text/text.svelte.js +35 -51
  580. package/dist/text/wordBoundary.d.ts +19 -0
  581. package/dist/text/wordBoundary.js +29 -44
  582. package/dist/themes/notion.css +315 -126
  583. package/dist/utils/json.d.ts +3 -1
  584. package/dist/utils/json.js +52 -51
  585. package/dist/utils/listen.d.ts +8 -0
  586. package/dist/utils/listen.js +19 -0
  587. package/package.json +4 -5
  588. package/dist/block/block.utils.d.ts +0 -340
  589. package/dist/block/block.utils.js +0 -356
  590. package/dist/collaboration/history/HistoryPanel.svelte +0 -525
  591. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  592. package/dist/collaboration/history/panel.d.ts +0 -43
  593. package/dist/collaboration/history/panel.js +0 -3
  594. package/dist/components/SuggestionRanges.svelte +0 -58
  595. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  596. package/dist/crdt/doc/table.d.ts +0 -21
  597. package/dist/crdt/doc/table.js +0 -288
  598. package/dist/crdt/migration/generation.d.ts +0 -58
  599. package/dist/crdt/migration/generation.js +0 -70
  600. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  601. package/dist/crdt/migration/legacy-schema.js +0 -151
  602. package/dist/crdt/migration/migrate.d.ts +0 -56
  603. package/dist/crdt/migration/migrate.js +0 -227
  604. package/dist/crdt/nodes.d.ts +0 -121
  605. package/dist/crdt/nodes.js +0 -56
  606. package/dist/crdt/text/index/checks.d.ts +0 -15
  607. package/dist/crdt/text/index/checks.js +0 -156
  608. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  609. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  610. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  611. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  612. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  613. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  614. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  615. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  616. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  617. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  618. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  619. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  620. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  621. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  622. package/dist/edytor.utils.d.ts +0 -50
  623. package/dist/edytor.utils.js +0 -67
  624. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -447
  625. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  626. package/dist/plugins/find/FindBar.svelte +0 -170
  627. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  628. package/dist/plugins/find/FindHighlights.svelte +0 -75
  629. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  630. package/dist/plugins/icons.d.ts +0 -2
  631. package/dist/plugins/icons.js +0 -63
  632. package/dist/plugins/image/ImageEmpty.svelte +0 -116
  633. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -12
  634. package/dist/plugins/keepInView.d.ts +0 -4
  635. package/dist/plugins/keepInView.js +0 -6
  636. package/dist/plugins/media/UrlPasteMenu.svelte +0 -83
  637. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -7
  638. package/dist/plugins/richtext/labels.d.ts +0 -5
  639. package/dist/plugins/richtext/labels.js +0 -3
  640. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -360
  641. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  642. package/dist/plugins/toolbar/LinkCard.svelte +0 -118
  643. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -7
  644. package/dist/plugins/toolbar/Toolbar.svelte +0 -400
  645. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  646. package/dist/plugins/triggers/TriggerMenu.svelte +0 -144
  647. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  648. package/dist/session/props.d.ts +0 -28
  649. package/dist/session/props.js +0 -162
  650. package/dist/text/deltas.d.ts +0 -22
  651. package/dist/text/deltas.js +0 -46
  652. package/dist/text/text.utils.d.ts +0 -45
  653. package/dist/text/text.utils.js +0 -199
@@ -0,0 +1,333 @@
1
+ import { bind, bindAll } from '../../bind-event-listener/index.js';
2
+ import { maxZIndex } from '../util/max-z-index.js';
3
+ import { popoverResetUserAgentStyles } from '../util/popover-reset-styles.js';
4
+ import { supportsPopover } from '../util/supports-popover.js';
5
+ import { honeyPotDataAttribute } from './honey-pot-data-attribute.js';
6
+ const honeyPotSize = 2;
7
+ const halfHoneyPotSize = honeyPotSize / 2;
8
+
9
+ /**
10
+ * `clientX` and `clientY` can be in sub pixels (eg `2.332`)
11
+ * However, browser hitbox testing is commonly do to the closest pixel.
12
+ *
13
+ * → https://issues.chromium.org/issues/40940531
14
+ *
15
+ * To be sure that the honey pot will be over the `client` position,
16
+ * we `.floor()` `clientX` and`clientY` and then make it `2px` in size.
17
+ **/
18
+ function floorToClosestPixel(point) {
19
+ return {
20
+ x: Math.floor(point.x),
21
+ y: Math.floor(point.y)
22
+ };
23
+ }
24
+
25
+ /**
26
+ * We want to make sure the honey pot sits around the users position.
27
+ * This seemed to be the most resilient while testing.
28
+ */
29
+ function pullBackByHalfHoneyPotSize(point) {
30
+ return {
31
+ x: point.x - halfHoneyPotSize,
32
+ y: point.y - halfHoneyPotSize
33
+ };
34
+ }
35
+
36
+ /**
37
+ * Prevent the honey pot from changing the window size.
38
+ * This is super unlikely to occur, but just being safe.
39
+ */
40
+ function preventGoingBackwardsOffScreen(point) {
41
+ return {
42
+ x: Math.max(point.x, 0),
43
+ y: Math.max(point.y, 0)
44
+ };
45
+ }
46
+
47
+ /**
48
+ * Prevent the honey pot from changing the window size.
49
+ * This is super unlikely to occur, but just being safe.
50
+ */
51
+ function preventGoingForwardsOffScreen(point) {
52
+ return {
53
+ x: Math.min(point.x, window.innerWidth - honeyPotSize),
54
+ y: Math.min(point.y, window.innerHeight - honeyPotSize)
55
+ };
56
+ }
57
+
58
+ /**
59
+ * Create a `2x2` `DOMRect` around the `client` position
60
+ */
61
+ function getHoneyPotRectFor({
62
+ client
63
+ }) {
64
+ const point = preventGoingForwardsOffScreen(preventGoingBackwardsOffScreen(pullBackByHalfHoneyPotSize(floorToClosestPixel(client))));
65
+
66
+ // When debugging, it is helpful to
67
+ // make this element a bit bigger
68
+ return DOMRect.fromRect({
69
+ x: point.x,
70
+ y: point.y,
71
+ width: honeyPotSize,
72
+ height: honeyPotSize
73
+ });
74
+ }
75
+ function getRectStyles({
76
+ clientRect
77
+ }) {
78
+ return {
79
+ left: `${clientRect.left}px`,
80
+ top: `${clientRect.top}px`,
81
+ width: `${clientRect.width}px`,
82
+ height: `${clientRect.height}px`
83
+ };
84
+ }
85
+ function isWithin({
86
+ client,
87
+ clientRect
88
+ }) {
89
+ return (
90
+ // is within horizontal bounds
91
+ client.x >= clientRect.x && client.x <= clientRect.x + clientRect.width &&
92
+ // is within vertical bounds
93
+ client.y >= clientRect.y && client.y <= clientRect.y + clientRect.height
94
+ );
95
+ }
96
+ /**
97
+ * The honey pot fix is designed to get around a painful bug in all browsers.
98
+ *
99
+ * [Overview](https://www.youtube.com/watch?v=udE9qbFTeQg)
100
+ *
101
+ * **Background**
102
+ *
103
+ * When a drag starts, browsers incorrectly think that the users pointer is
104
+ * still depressed where the drag started. Any element that goes under this position
105
+ * will be entered into, causing `"mouseenter"` events and `":hover"` styles to be applied.
106
+ *
107
+ * _This is a violation of the spec_
108
+ *
109
+ * > "From the moment that the user agent is to initiate the drag-and-drop operation,
110
+ * > until the end of the drag-and-drop operation, device input events
111
+ * > (e.g. mouse and keyboard events) must be suppressed."
112
+ * >
113
+ * > - https://html.spec.whatwg.org/multipage/dnd.html#drag-and-drop-processing-model
114
+ *
115
+ * _Some impacts_
116
+ *
117
+ * - `":hover"` styles being applied where they shouldn't (looks messy)
118
+ * - components such as tooltips responding to `"mouseenter"` can show during a drag,
119
+ * and on an element the user isn't even over
120
+ *
121
+ * Bug: https://issues.chromium.org/issues/41129937
122
+ *
123
+ * **Honey pot fix**
124
+ *
125
+ * 1. Create an element where the browser thinks the depressed pointer is
126
+ * to absorb the incorrect pointer events
127
+ * 2. Remove that element when it is no longer needed
128
+ */
129
+ function mountHoneyPot({
130
+ initial
131
+ }) {
132
+ const element = document.createElement('div');
133
+ element.setAttribute(honeyPotDataAttribute, 'true');
134
+
135
+ // Using popover="manual" to place the element in the browser's top layer.
136
+ // This ensures the honey pot is visually on top of everything else,
137
+ // including elements using z-index and other stacking contexts.
138
+ // "manual" means no light dismiss — we manage the lifecycle ourselves.
139
+ // Falls back to position:fixed + maxZIndex when the popover API is not available.
140
+ if (supportsPopover()) {
141
+ element.setAttribute('popover', 'manual');
142
+ }
143
+
144
+ // can shift during the drag thanks to Firefox
145
+ let clientRect = getHoneyPotRectFor({
146
+ client: initial
147
+ });
148
+ Object.assign(element.style, {
149
+ position: 'fixed',
150
+ ...(supportsPopover() ?
151
+ // needs to come first as it has 'inset: unset' which
152
+ // needs to be overridden by our top / left values
153
+ popoverResetUserAgentStyles : {
154
+ // Fallback: using maximum possible z-index so that this element
155
+ // will always be on top of other positioned content.
156
+ zIndex: maxZIndex
157
+ }),
158
+ // Setting a background color explicitly to avoid any inherited styles.
159
+ // Looks like this could be `opacity: 0`, but worried that _might_
160
+ // cause the element to be ignored on some platforms.
161
+ // When debugging, set backgroundColor to something like "red".
162
+ backgroundColor: 'transparent',
163
+ // Being explicit to avoid inheriting styles
164
+ padding: 0,
165
+ margin: 0,
166
+ boxSizing: 'border-box',
167
+ // We want this element to absorb pointer events,
168
+ // it's kind of the whole point 😉
169
+ pointerEvents: 'auto',
170
+ ...getRectStyles({
171
+ clientRect
172
+ })
173
+ });
174
+ document.body.appendChild(element);
175
+ if (supportsPopover()) {
176
+ element.showPopover();
177
+ }
178
+
179
+ /**
180
+ * 🦊 In firefox we can get `"pointermove"` events after the drag
181
+ * has started, which is a spec violation.
182
+ * The final `"pointermove"` will reveal where the "depressed" position
183
+ * is for our honey pot fix.
184
+ */
185
+ const unbindPointerMove = bind(window, {
186
+ type: 'pointermove',
187
+ listener(event) {
188
+ const client = {
189
+ x: event.clientX,
190
+ y: event.clientY
191
+ };
192
+ clientRect = getHoneyPotRectFor({
193
+ client
194
+ });
195
+ Object.assign(element.style, getRectStyles({
196
+ clientRect
197
+ }));
198
+ },
199
+ // using capture so we are less likely to be impacted by event stopping
200
+ options: {
201
+ capture: true
202
+ }
203
+ });
204
+ return function finish({
205
+ current
206
+ }) {
207
+ // Don't need this any more
208
+ unbindPointerMove();
209
+
210
+ // If the user is hover the honey pot, we remove it
211
+ // so that the user can continue to interact with the page normally.
212
+ if (isWithin({
213
+ client: current,
214
+ clientRect
215
+ })) {
216
+ element.remove();
217
+ return;
218
+ }
219
+ function cleanup() {
220
+ unbindPostDragEvents();
221
+ element.remove();
222
+ }
223
+ const unbindPostDragEvents = bindAll(window, [{
224
+ type: 'pointerdown',
225
+ listener: cleanup
226
+ }, {
227
+ type: 'pointermove',
228
+ listener: cleanup
229
+ }, {
230
+ type: 'focusin',
231
+ listener: cleanup
232
+ }, {
233
+ type: 'focusout',
234
+ listener: cleanup
235
+ },
236
+ // a 'pointerdown' should happen before 'dragstart', but just being super safe
237
+ {
238
+ type: 'dragstart',
239
+ listener: cleanup
240
+ },
241
+ // if the user has dragged something out of the window
242
+ // and then is dragging something back into the window
243
+ // the first events we will see are "dragenter" (and then "dragover").
244
+ // So if we see any of these we need to clear the post drag fix.
245
+ {
246
+ type: 'dragenter',
247
+ listener: cleanup
248
+ }, {
249
+ type: 'dragover',
250
+ listener: cleanup
251
+ }
252
+
253
+ // Not adding a "wheel" event listener, as "wheel" by itself does not
254
+ // resolve the bug.
255
+ ], {
256
+ // Using `capture` so less likely to be impacted by other code stopping events
257
+ capture: true
258
+ });
259
+ };
260
+ }
261
+ export function makeHoneyPotFix() {
262
+ let latestPointerMove = null;
263
+ function bindEvents() {
264
+ // For sanity, only collecting this value from when events are first bound.
265
+ // This prevents the case where a super old "pointermove" could be used
266
+ // from a prior interaction.
267
+ latestPointerMove = null;
268
+ return bind(window, {
269
+ type: 'pointermove',
270
+ listener(event) {
271
+ latestPointerMove = {
272
+ x: event.clientX,
273
+ y: event.clientY
274
+ };
275
+ },
276
+ // listening for pointer move in capture phase
277
+ // so we are less likely to be impacted by events being stopped.
278
+ options: {
279
+ capture: true
280
+ }
281
+ });
282
+ }
283
+ function getOnPostDispatch() {
284
+ let finish = null;
285
+ return function onPostEvent({
286
+ eventName,
287
+ payload
288
+ }) {
289
+ // We are adding the honey pot `onDragStart` so we don't
290
+ // impact the creation of the native drag preview.
291
+ if (eventName === 'onDragStart') {
292
+ var _latestPointerMove;
293
+ const {
294
+ input
295
+ } = payload.location.initial;
296
+
297
+ // Sometimes there will be no latest "pointermove" (eg iOS).
298
+ // In which case, we use the start position of the drag.
299
+ const initial = (_latestPointerMove = latestPointerMove) !== null && _latestPointerMove !== void 0 ? _latestPointerMove : {
300
+ x: input.clientX,
301
+ y: input.clientY
302
+ };
303
+
304
+ // Don't need to defensively call `finish()` as `onDrop` from
305
+ // one interaction is guaranteed to be called before `onDragStart`
306
+ // of the next.
307
+ finish = mountHoneyPot({
308
+ initial
309
+ });
310
+ }
311
+ if (eventName === 'onDrop') {
312
+ var _finish;
313
+ const {
314
+ input
315
+ } = payload.location.current;
316
+ (_finish = finish) === null || _finish === void 0 ? void 0 : _finish({
317
+ current: {
318
+ x: input.clientX,
319
+ y: input.clientY
320
+ }
321
+ });
322
+ finish = null;
323
+ // this interaction is finished, we want to use
324
+ // the latest "pointermove" for each interaction
325
+ latestPointerMove = null;
326
+ }
327
+ };
328
+ }
329
+ return {
330
+ bindEvents,
331
+ getOnPostDispatch
332
+ };
333
+ }
@@ -0,0 +1,350 @@
1
+ export type CleanupFn = () => void;
2
+ /**
3
+ * Drop effects allowed to be passed to `getDropEffect()`.
4
+ * Cannot use `"none"` as a `dropEffect` for drop targets as
5
+ * it will opt out of accepting a drop for all nested drop targets.
6
+ * Please use `canDrop()` to disable dropping for this drop target.
7
+ */
8
+ export type DropTargetAllowedDropEffect = Exclude<DataTransfer['dropEffect'], 'none'>;
9
+ /**
10
+ * Information about a drop target
11
+ */
12
+ export type DropTargetRecord = {
13
+ /**
14
+ * The element the drop target is attached to
15
+ */
16
+ element: Element;
17
+ /**
18
+ * Data associated with the drop target
19
+ *
20
+ * (Collected by `getData()`)
21
+ */
22
+ data: Record<string | symbol, unknown>;
23
+ /**
24
+ * The drop effect for the drop target
25
+ *
26
+ * (Collected by `getDropEffect()`)
27
+ */
28
+ dropEffect: DropTargetAllowedDropEffect;
29
+ /**
30
+ * Whether or not the drop target is active due to _stickiness_
31
+ */
32
+ isActiveDueToStickiness: boolean;
33
+ };
34
+ export type Position = {
35
+ x: number;
36
+ y: number;
37
+ };
38
+ export type Serializable = {
39
+ [key: string]: number | string | Serializable | Serializable[];
40
+ };
41
+ export type Region = 'internal' | 'external';
42
+ export type ElementDragPayload = {
43
+ element: HTMLElement;
44
+ dragHandle: Element | null;
45
+ data: Record<string, unknown>;
46
+ };
47
+ export type ElementDragType = {
48
+ type: 'element';
49
+ startedFrom: 'internal';
50
+ payload: ElementDragPayload;
51
+ };
52
+ /**
53
+ * A convenance type to provide auto complete for common
54
+ * media types. This type will accept any `string`.
55
+ *
56
+ * For more information on media types, see:
57
+ *
58
+ * - {@link https://atlassian.design/components/pragmatic-drag-and-drop/core-package/adapters/external/custom-media}
59
+ * - {@link https://en.wikipedia.org/wiki/Media_type}
60
+ */
61
+ export type NativeMediaType = 'text/uri-list' | 'text/plain' | 'text/html' | 'Files' | (string & {});
62
+ export type ExternalDragPayload = {
63
+ /**
64
+ * The media types that are being dragged during a drag.
65
+ *
66
+ * @example
67
+ *
68
+ * console.log(source.types);
69
+ * // → ["text/plain", "text/html"]
70
+ */
71
+ types: NativeMediaType[];
72
+ /**
73
+ * The entities that are being dragged.
74
+ * Usually you will not be using these directly, but
75
+ * our helper functions can leverage them to extract
76
+ * particular kinds of data (eg files) that are being dragged
77
+ */
78
+ items: DataTransferItem[];
79
+ /**
80
+ * returns the data for a given media type.
81
+ *
82
+ * - `getStringData(mediaType)` will return `null` if there is no data for that media type
83
+ * - `getStringData(mediaType)` will return the empty string (`""`) if the empty string (`""`)
84
+ * was explicitly set as the data for a media type.
85
+ * - `getStringData(mediaType)` will return null if requesting files (ie `getStringData('Files')`).
86
+ * To access files, use `source.items`, or better still, `getFiles({source})`
87
+ *
88
+ * Generally we recommend folks use our helpers to read native data rather than `getStringData(mediaType)`
89
+ *
90
+ * @example
91
+ *
92
+ * ```ts
93
+ * // Using getStringData()
94
+ * const text: string | null = source.getStringData("text/plain");
95
+ *
96
+ * // Using our text helper
97
+ * const text: string | null = getText({source});
98
+ * ```
99
+ * */
100
+ getStringData: (mediaType: string) => string | null;
101
+ };
102
+ export type ExternalDragType = {
103
+ type: 'external';
104
+ startedFrom: 'external';
105
+ payload: ExternalDragPayload;
106
+ getDropPayload: (event: DragEvent) => ExternalDragType['payload'];
107
+ };
108
+ export type TextSelectionDragPayload = {
109
+ /**
110
+ * The `Text` node that is the user started the drag from.
111
+ * Note: the `Text` node does not include all text being dragged.
112
+ * Use the `plain` or `html` properties to get the full selection
113
+ */
114
+ target: Text;
115
+ /** The plain text of the selection */
116
+ plain: string;
117
+ /** the HTML of the selection */
118
+ HTML: string;
119
+ };
120
+ export type TextSelectionDragType = {
121
+ type: 'text-selection';
122
+ startedFrom: 'internal';
123
+ payload: TextSelectionDragPayload;
124
+ };
125
+ export type AllDragTypes = ElementDragType | ExternalDragType | TextSelectionDragType;
126
+ export type AdapterAPI<DragType extends AllDragTypes> = {
127
+ canStart: (event: DragEvent) => boolean;
128
+ start: (args: {
129
+ event: DragEvent;
130
+ dragType: DragType;
131
+ }) => void;
132
+ };
133
+ export type Input = {
134
+ altKey: boolean;
135
+ button: number;
136
+ buttons: number;
137
+ ctrlKey: boolean;
138
+ metaKey: boolean;
139
+ shiftKey: boolean;
140
+ clientX: number;
141
+ clientY: number;
142
+ pageX: number;
143
+ pageY: number;
144
+ };
145
+ export type DragLocation = {
146
+ /**
147
+ * A users input at a point in time
148
+ */
149
+ input: Input;
150
+ /**
151
+ * A _bubble_ ordered (innermost upwards) list of active drop targets
152
+ *
153
+ * @example
154
+ * [grandChildRecord, childRecord, parentRecord]
155
+ *
156
+ */
157
+ dropTargets: DropTargetRecord[];
158
+ };
159
+ export type DragLocationHistory = {
160
+ /**
161
+ * Where the drag operation started
162
+ */
163
+ initial: DragLocation;
164
+ /**
165
+ * Where the user currently is
166
+ */
167
+ current: DragLocation;
168
+ /**
169
+ * Where the user was previously.
170
+ * `previous` points to what `current` was in the last dispatched event
171
+ *
172
+ * `previous` is particularly useful for `onDropTargetChange`
173
+ * (and the derived `onDragEnter` and `onDragLeave`)
174
+ * as you can know what the delta of the change
175
+ *
176
+ * Exception: `onGenerateDragPreview` and `onDragStart` will have the
177
+ * same `current` and `previous` values. This is done so that the data
178
+ * received in `onDragStart` feels logical
179
+ * (`location.previous` should be `[]` in `onDragStart`)
180
+ */
181
+ previous: Pick<DragLocation, 'dropTargets'>;
182
+ };
183
+ /**
184
+ * The common data that is provided to all events
185
+ */
186
+ export type BaseEventPayload<DragType extends AllDragTypes> = {
187
+ /**
188
+ * Location history for the drag operation
189
+ */
190
+ location: DragLocationHistory;
191
+ /**
192
+ * Data associated with the entity that is being dragged
193
+ */
194
+ source: DragType['payload'];
195
+ };
196
+ export type EventPayloadMap<DragType extends AllDragTypes> = {
197
+ /**
198
+ * Drag is about to start.
199
+ * Make changes you want to see in the drag preview
200
+ *
201
+ * _Drag previews are not generated for external drag sources (eg files)_
202
+ */
203
+ onGenerateDragPreview: BaseEventPayload<DragType> & {
204
+ /**
205
+ * Allows you to use the native `setDragImage` function if you want
206
+ * Although, we recommend using alternative techniques (see element adapter docs)
207
+ */
208
+ nativeSetDragImage: DataTransfer['setDragImage'] | null;
209
+ };
210
+ /**
211
+ * A drag operation has started. You can make changes to the DOM and those changes won't be reflected in your _drag preview_
212
+ */
213
+ onDragStart: BaseEventPayload<DragType>;
214
+ /**
215
+ * A throttled update of where the the user is currently dragging. Useful if you want to create a high fidelity experience such as drawing.
216
+ */
217
+ onDrag: BaseEventPayload<DragType>;
218
+ /**
219
+ * The `onDropTargetChange` event fires when the `dropTarget` hierarchy changes during a drag.
220
+ */
221
+ onDropTargetChange: BaseEventPayload<DragType>;
222
+ /**
223
+ * The `onDrop` event occurs when a user has finished a drag and drop operation.
224
+ * The `onDrop` event will fire when the drag operation finishes, regardless of how the drag operation finished
225
+ * (eg due to an explicit drop, the drag being canceled, recovering from an error and so on). On the web platform
226
+ * we cannot distinguish between dropping on no drop targets and an explicit cancel, so we do not publish any
227
+ * information about _how_ the drag ended, only that it ended.
228
+ *
229
+ * The `location.current` property will accurately contain the final drop targets.
230
+ */
231
+ onDrop: BaseEventPayload<DragType>;
232
+ };
233
+ export type AllEvents<DragType extends AllDragTypes> = {
234
+ [EventName in keyof EventPayloadMap<DragType>]: (args: EventPayloadMap<DragType>[EventName]) => void;
235
+ };
236
+ export type MonitorGetFeedbackArgs<DragType extends AllDragTypes> = {
237
+ /**
238
+ * The users `initial` drag location
239
+ */
240
+ initial: DragLocation;
241
+ /**
242
+ * The data associated with the entity being dragged
243
+ */
244
+ source: DragType['payload'];
245
+ };
246
+ export type MonitorArgs<DragType extends AllDragTypes> = Partial<AllEvents<DragType>> & {
247
+ canMonitor?: (args: MonitorGetFeedbackArgs<DragType>) => boolean;
248
+ };
249
+ export type DropTargetGetFeedbackArgs<DragType extends AllDragTypes> = {
250
+ /**
251
+ * The users _current_ input
252
+ */
253
+ input: Input;
254
+ /**
255
+ * The data associated with the entity being dragged
256
+ */
257
+ source: DragType['payload'];
258
+ /**
259
+ * This drop target's element
260
+ */
261
+ element: Element;
262
+ };
263
+ export type DropTargetLocalizedData = {
264
+ /**
265
+ * A convenance pointer to this drop targets values
266
+ */
267
+ self: DropTargetRecord;
268
+ };
269
+ export type DropTargetEventBasePayload<DragType extends AllDragTypes> = BaseEventPayload<DragType> & DropTargetLocalizedData;
270
+ /**
271
+ * Mapping event names to the payloads for those events
272
+ */
273
+ export type DropTargetEventPayloadMap<DragType extends AllDragTypes> = {
274
+ [EventName in keyof EventPayloadMap<DragType>]: EventPayloadMap<DragType>[EventName] & DropTargetLocalizedData;
275
+ } & {
276
+ /**
277
+ * Derived from the `onDropTargetChange` event
278
+ * (`onDragEnter` is not it's own event that bubbles)
279
+ *
280
+ * `onDragEnter` is fired when _this_ drop target is entered into
281
+ * and not when any child drop targets change
282
+ */
283
+ onDragEnter: EventPayloadMap<DragType>['onDropTargetChange'] & DropTargetLocalizedData;
284
+ /**
285
+ * Derived from the `onDropTargetChange` event
286
+ * (`onDragLeave` is not it's own event that bubbles)
287
+ *
288
+ * `onDragLeave` is fired when _this_ drop target is exited from
289
+ * and not when any child drop targets change
290
+ */
291
+ onDragLeave: EventPayloadMap<DragType>['onDropTargetChange'] & DropTargetLocalizedData;
292
+ };
293
+ export type DropTargetArgs<DragType extends AllDragTypes> = {
294
+ /**
295
+ * The `element` that you want to attach drop target behaviour to.
296
+ * The `element` is the unique _key_ for a drop target
297
+ */
298
+ element: Element;
299
+ /**
300
+ * A function that returns `data` you want to attach to the drop target.
301
+ * `getData()` is called _repeatedly_ while the user is dragging over the drop target in order to power addons
302
+ */
303
+ getData?: (args: DropTargetGetFeedbackArgs<DragType>) => Record<string | symbol, unknown>;
304
+ /**
305
+ * Used to conditionally block dropping.
306
+ * By default a drop target can be dropped on.
307
+ *
308
+ * Return `false` if you want to block a drop.
309
+ *
310
+ * Blocking dropping on a drop target will not block
311
+ * dropping on child or parent drop targets.
312
+ * If you want child or parent drop targets to block dropping,
313
+ * then they will need to return `false` from their `canDrop()`
314
+ *
315
+ * `canDrop()` is called _repeatedly_ while a drop target
316
+ * is being dragged over to allow you to dynamically
317
+ * change your mind as to whether a drop target can be
318
+ * dropped on.
319
+ */
320
+ canDrop?: (args: DropTargetGetFeedbackArgs<DragType>) => boolean;
321
+ /**
322
+ * Optionally provide a _drop effect_ to be applied when
323
+ * this drop target is the innermost drop target being dragged over.
324
+ */
325
+ getDropEffect?: (args: DropTargetGetFeedbackArgs<DragType>) => DropTargetAllowedDropEffect;
326
+ /**
327
+ * Return `true` if you want your drop target to hold onto
328
+ * selection after the user is no longer dragging over this drop target.
329
+ *
330
+ * Stickiness defaults to `false`
331
+ *
332
+ * _For more details about the stickiness algorithm please refer to the docs_
333
+ */
334
+ getIsSticky?: (args: DropTargetGetFeedbackArgs<DragType>) => boolean;
335
+ } & {
336
+ [EventName in keyof DropTargetEventPayloadMap<DragType>]?: (args: DropTargetEventPayloadMap<DragType>[EventName]) => void;
337
+ };
338
+ export type DropTargetAPI<DragType extends AllDragTypes> = {
339
+ dropTargetForConsumers: (args: DropTargetArgs<DragType>) => CleanupFn;
340
+ dispatchEvent: <EventName extends keyof EventPayloadMap<DragType>>(args: {
341
+ eventName: EventName;
342
+ payload: EventPayloadMap<DragType>[EventName];
343
+ }) => void;
344
+ getIsOver: (args: {
345
+ source: DragType['payload'];
346
+ target: EventTarget | null;
347
+ input: Input;
348
+ current: DropTargetRecord[];
349
+ }) => DropTargetRecord[];
350
+ };