edytor 1.0.0-rc.3 → 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 (642) 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 +27 -137
  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.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 +19 -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/comments/client.d.ts +2 -2
  49. package/dist/collaboration/comments/client.js +1 -1
  50. package/dist/collaboration/history/index.d.ts +5 -5
  51. package/dist/collaboration/history/index.js +5 -5
  52. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  53. package/dist/collaboration/history/panel.svelte.js +223 -0
  54. package/dist/collaboration/providers.d.ts +12 -3
  55. package/dist/collaboration/providers.js +5 -4
  56. package/dist/components/Block.svelte +39 -55
  57. package/dist/components/Block.svelte.d.ts +7 -5
  58. package/dist/components/Content.svelte +1 -5
  59. package/dist/components/Edytor.svelte +53 -96
  60. package/dist/components/Edytor.svelte.d.ts +8 -12
  61. package/dist/components/Ranges.svelte +96 -0
  62. package/dist/components/Ranges.svelte.d.ts +19 -0
  63. package/dist/components/Suggestion.svelte +3 -2
  64. package/dist/components/Text.svelte +2 -5
  65. package/dist/components/Text.svelte.d.ts +1 -1
  66. package/dist/crdt/admission.d.ts +2 -9
  67. package/dist/crdt/admission.js +3 -9
  68. package/dist/crdt/attribution/attribution.d.ts +11 -72
  69. package/dist/crdt/attribution/attribution.js +5 -52
  70. package/dist/crdt/attribution/block.d.ts +0 -78
  71. package/dist/crdt/attribution/block.js +1 -144
  72. package/dist/crdt/data.d.ts +8 -13
  73. package/dist/crdt/data.js +30 -70
  74. package/dist/crdt/doc/anchors.js +4 -4
  75. package/dist/crdt/doc/content.d.ts +5 -1
  76. package/dist/crdt/doc/content.js +3 -1
  77. package/dist/crdt/doc/delete.d.ts +1 -0
  78. package/dist/crdt/doc/funnel.d.ts +0 -23
  79. package/dist/crdt/doc/funnel.js +34 -85
  80. package/dist/crdt/doc/gate.d.ts +8 -9
  81. package/dist/crdt/doc/gate.js +7 -17
  82. package/dist/crdt/doc/history.d.ts +87 -14
  83. package/dist/crdt/doc/history.js +334 -149
  84. package/dist/crdt/doc/layout.d.ts +0 -1
  85. package/dist/crdt/doc/layout.js +2 -3
  86. package/dist/crdt/doc/meta.d.ts +4 -4
  87. package/dist/crdt/doc/meta.js +10 -21
  88. package/dist/crdt/doc/moves.d.ts +4 -4
  89. package/dist/crdt/doc/moves.js +5 -5
  90. package/dist/crdt/doc/plan.d.ts +2 -0
  91. package/dist/crdt/doc/plan.js +2 -0
  92. package/dist/crdt/doc/reads.d.ts +1 -5
  93. package/dist/crdt/doc/reads.js +38 -49
  94. package/dist/crdt/doc/seed.d.ts +15 -6
  95. package/dist/crdt/doc/seed.js +27 -26
  96. package/dist/crdt/doc/split-merge.d.ts +1 -3
  97. package/dist/crdt/doc/split-merge.js +4 -5
  98. package/dist/crdt/doc/steps.d.ts +3 -7
  99. package/dist/crdt/doc/steps.js +20 -9
  100. package/dist/crdt/doc/types.d.ts +0 -10
  101. package/dist/crdt/document.d.ts +24 -115
  102. package/dist/crdt/document.js +207 -305
  103. package/dist/crdt/edytor-doc.d.ts +671 -90
  104. package/dist/crdt/edytor-doc.js +73 -149
  105. package/dist/crdt/engine-api.d.ts +15 -47
  106. package/dist/crdt/engine.d.ts +7 -17
  107. package/dist/crdt/engine.js +9 -19
  108. package/dist/crdt/flow.d.ts +9 -37
  109. package/dist/crdt/flow.js +260 -238
  110. package/dist/crdt/index.d.ts +26 -85
  111. package/dist/crdt/index.js +21 -47
  112. package/dist/crdt/operations.d.ts +24 -33
  113. package/dist/crdt/operations.js +7 -17
  114. package/dist/crdt/placement/display.d.ts +0 -2
  115. package/dist/crdt/placement/display.js +0 -15
  116. package/dist/crdt/placement/model.d.ts +160 -12
  117. package/dist/crdt/placement/model.js +413 -414
  118. package/dist/crdt/placement/rank.d.ts +1 -5
  119. package/dist/crdt/placement/rank.js +28 -38
  120. package/dist/crdt/protocol.d.ts +4 -5
  121. package/dist/crdt/protocol.js +3 -4
  122. package/dist/crdt/protocols/awareness.d.ts +3 -7
  123. package/dist/crdt/protocols/awareness.js +17 -33
  124. package/dist/crdt/protocols/envelope.d.ts +9 -29
  125. package/dist/crdt/protocols/envelope.js +8 -25
  126. package/dist/crdt/protocols/sync.d.ts +15 -30
  127. package/dist/crdt/protocols/sync.js +27 -89
  128. package/dist/crdt/providers/bound.d.ts +3 -1
  129. package/dist/crdt/providers/bound.js +3 -1
  130. package/dist/crdt/providers/container.d.ts +11 -17
  131. package/dist/crdt/providers/container.js +39 -27
  132. package/dist/crdt/providers/index.d.ts +34 -6
  133. package/dist/crdt/providers/index.js +106 -111
  134. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  135. package/dist/crdt/providers/indexeddb.js +29 -90
  136. package/dist/crdt/providers/room.d.ts +58 -2
  137. package/dist/crdt/providers/room.js +38 -21
  138. package/dist/crdt/providers/websocket.d.ts +1 -1
  139. package/dist/crdt/providers/websocket.js +3 -4
  140. package/dist/crdt/purge.d.ts +2 -2
  141. package/dist/crdt/purge.js +69 -6
  142. package/dist/crdt/rangeDelete.d.ts +4 -42
  143. package/dist/crdt/rangeDelete.js +7 -6
  144. package/dist/crdt/restore.d.ts +21 -1
  145. package/dist/crdt/restore.js +54 -59
  146. package/dist/crdt/schema.d.ts +2 -2
  147. package/dist/crdt/schema.js +4 -5
  148. package/dist/crdt/semantics.d.ts +10 -15
  149. package/dist/crdt/semantics.js +22 -21
  150. package/dist/crdt/storage.d.ts +7 -13
  151. package/dist/crdt/storage.js +10 -24
  152. package/dist/crdt/structs.d.ts +42 -47
  153. package/dist/crdt/structs.js +76 -67
  154. package/dist/crdt/tables.d.ts +9 -0
  155. package/dist/crdt/tables.js +20 -0
  156. package/dist/crdt/text/delete-index.d.ts +0 -13
  157. package/dist/crdt/text/delete-index.js +7 -14
  158. package/dist/crdt/text/deletes.d.ts +9 -22
  159. package/dist/crdt/text/deletes.js +11 -74
  160. package/dist/crdt/text/index/cache.js +3 -3
  161. package/dist/crdt/text/index/fold.d.ts +1 -2
  162. package/dist/crdt/text/index/fold.js +15 -10
  163. package/dist/crdt/text/index/layout.d.ts +0 -10
  164. package/dist/crdt/text/index/layout.js +6 -20
  165. package/dist/crdt/text/index/records.js +2 -1
  166. package/dist/crdt/text/index/report.js +5 -6
  167. package/dist/crdt/text/index/shared.d.ts +11 -4
  168. package/dist/crdt/text/index/shared.js +8 -7
  169. package/dist/crdt/text/index/state.d.ts +3 -33
  170. package/dist/crdt/text/index/state.js +2 -4
  171. package/dist/crdt/text/model.d.ts +82 -2
  172. package/dist/crdt/text/model.js +344 -354
  173. package/dist/crdt/text/rows.d.ts +0 -2
  174. package/dist/crdt/text/rows.js +0 -11
  175. package/dist/crdt/text/runs.d.ts +6 -3
  176. package/dist/crdt/text/runs.js +132 -137
  177. package/dist/crdt/text/streams.d.ts +1 -1
  178. package/dist/crdt/text/streams.js +1 -1
  179. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  180. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  181. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  182. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  183. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  184. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  185. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  186. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  187. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  188. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  189. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  190. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  191. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  192. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  193. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  194. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  195. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  196. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  197. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  198. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  199. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  200. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  201. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  202. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  203. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  204. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  205. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  206. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  207. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  208. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  209. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  210. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  211. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  212. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  213. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  214. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  215. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  216. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  217. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  218. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  219. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  220. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  221. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  222. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  223. package/dist/dnd/autoScroll.js +1 -2
  224. package/dist/dnd/pragmatic.d.ts +4 -22
  225. package/dist/dnd/pragmatic.js +7 -26
  226. package/dist/dnd/track.d.ts +14 -0
  227. package/dist/dnd/track.js +55 -0
  228. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  229. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  230. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  231. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  232. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  233. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  234. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  235. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  236. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  237. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  238. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  239. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  240. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  241. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  242. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  243. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  254. 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
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  265. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  293. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  294. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  295. package/dist/edytor.svelte.d.ts +34 -64
  296. package/dist/edytor.svelte.js +116 -180
  297. package/dist/events/beforeInputCommands.d.ts +6 -11
  298. package/dist/events/beforeInputCommands.js +185 -181
  299. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  300. package/dist/events/beforeInputDeleteCommands.js +153 -204
  301. package/dist/events/domTextOffset.d.ts +9 -9
  302. package/dist/events/domTextOffset.js +20 -48
  303. package/dist/events/events.utils.d.ts +0 -2
  304. package/dist/events/events.utils.js +0 -4
  305. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  306. package/dist/events/nativeInteractiveControl.js +28 -56
  307. package/dist/events/onBeforeInput.d.ts +6 -1
  308. package/dist/events/onBeforeInput.js +207 -331
  309. package/dist/events/onCopy.js +1 -5
  310. package/dist/events/onDrop.d.ts +1 -1
  311. package/dist/events/onDrop.js +27 -69
  312. package/dist/events/onFocus.d.ts +9 -4
  313. package/dist/events/onFocus.js +45 -67
  314. package/dist/events/onInput.d.ts +8 -4
  315. package/dist/events/onInput.js +34 -147
  316. package/dist/events/onKeyDown.js +55 -122
  317. package/dist/events/onPaste.d.ts +13 -1
  318. package/dist/events/onPaste.js +46 -76
  319. package/dist/index.d.ts +10 -14
  320. package/dist/index.js +3 -3
  321. package/dist/kinds.d.ts +4 -6
  322. package/dist/kinds.js +28 -27
  323. package/dist/labels.d.ts +81 -320
  324. package/dist/labels.js +180 -408
  325. package/dist/plugins/Chrome.svelte +29 -0
  326. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  327. package/dist/plugins/Control.svelte +23 -0
  328. package/dist/plugins/Control.svelte.d.ts +30 -0
  329. package/dist/plugins/anchored.svelte.d.ts +47 -0
  330. package/dist/plugins/anchored.svelte.js +73 -0
  331. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  332. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  333. package/dist/plugins/bands.svelte.d.ts +57 -0
  334. package/dist/plugins/bands.svelte.js +95 -0
  335. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -154
  336. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  337. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +39 -94
  338. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +190 -247
  339. package/dist/plugins/blockHandles/BlockHandles.svelte +27 -17
  340. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  341. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +25 -39
  342. package/dist/plugins/blockHandles/blockHandlesPlugin.js +129 -185
  343. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  344. package/dist/plugins/blockHandles/dragPreview.js +18 -16
  345. package/dist/plugins/blockHandles/dropIndicator.js +52 -60
  346. package/dist/plugins/blockHandles/geometry.d.ts +2 -1
  347. package/dist/plugins/blockHandles/geometry.js +6 -6
  348. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +28 -38
  349. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +116 -183
  350. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  351. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  352. package/dist/plugins/brand.d.ts +8 -0
  353. package/dist/plugins/brand.js +8 -0
  354. package/dist/plugins/chrome.d.ts +45 -38
  355. package/dist/plugins/chrome.js +59 -36
  356. package/dist/plugins/code/CodeHeader.svelte +3 -35
  357. package/dist/plugins/code/CodePlugin.svelte +50 -53
  358. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  359. package/dist/plugins/code/LanguageMenu.svelte +16 -125
  360. package/dist/plugins/code/LanguageMenu.svelte.d.ts +2 -1
  361. package/dist/plugins/code/code.css +5 -117
  362. package/dist/plugins/code/header.svelte.d.ts +2 -11
  363. package/dist/plugins/code/header.svelte.js +11 -38
  364. package/dist/plugins/code/languageMenu.svelte.d.ts +12 -32
  365. package/dist/plugins/code/languageMenu.svelte.js +30 -160
  366. package/dist/plugins/code/languages.d.ts +9 -19
  367. package/dist/plugins/code/languages.js +39 -126
  368. package/dist/plugins/columns/ColumnResize.svelte +13 -25
  369. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  370. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  371. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  372. package/dist/plugins/columns/columns.css +7 -26
  373. package/dist/plugins/columns/resize.svelte.d.ts +14 -51
  374. package/dist/plugins/columns/resize.svelte.js +70 -164
  375. package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
  376. package/dist/plugins/comments/CommentsController.svelte.js +14 -25
  377. package/dist/plugins/comments/CommentsSidebar.svelte +82 -431
  378. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +4 -2
  379. package/dist/plugins/comments/commentsPlugin.d.ts +25 -9
  380. package/dist/plugins/comments/commentsPlugin.js +12 -10
  381. package/dist/plugins/equation/EquationEditor.svelte +16 -130
  382. package/dist/plugins/equation/EquationEditor.svelte.d.ts +1 -2
  383. package/dist/plugins/equation/EquationPlugin.svelte +109 -165
  384. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +2 -2
  385. package/dist/plugins/equation/EquationView.svelte +20 -11
  386. package/dist/plugins/equation/equation.svelte.d.ts +37 -24
  387. package/dist/plugins/equation/equation.svelte.js +20 -94
  388. package/dist/plugins/equation/katex.js +6 -9
  389. package/dist/plugins/find/FindController.svelte.d.ts +8 -13
  390. package/dist/plugins/find/FindController.svelte.js +34 -55
  391. package/dist/plugins/find/findPlugin.d.ts +4 -8
  392. package/dist/plugins/find/findPlugin.js +29 -9
  393. package/dist/plugins/image/ImageChrome.svelte +6 -167
  394. package/dist/plugins/image/ImageChrome.svelte.d.ts +0 -2
  395. package/dist/plugins/image/ImagePlugin.svelte +45 -134
  396. package/dist/plugins/image/ImagePlugin.svelte.d.ts +1 -42
  397. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  398. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  399. package/dist/plugins/image/controls.svelte.d.ts +6 -36
  400. package/dist/plugins/image/controls.svelte.js +43 -212
  401. package/dist/plugins/image/image.d.ts +0 -5
  402. package/dist/plugins/image/image.js +0 -3
  403. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  404. package/dist/plugins/image/toolbar.svelte.js +145 -0
  405. package/dist/plugins/index.d.ts +31 -26
  406. package/dist/plugins/index.js +29 -22
  407. package/dist/plugins/list.svelte.d.ts +128 -0
  408. package/dist/plugins/list.svelte.js +217 -0
  409. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  410. package/dist/plugins/markdownShortcuts.js +6 -5
  411. package/dist/plugins/marquee/MarqueeBox.svelte +3 -20
  412. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +1 -1
  413. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +0 -2
  414. package/dist/plugins/marquee/MarqueeController.svelte.js +20 -23
  415. package/dist/plugins/marquee/marquee.js +4 -21
  416. package/dist/plugins/marquee/marqueePlugin.d.ts +4 -3
  417. package/dist/plugins/marquee/marqueePlugin.js +16 -15
  418. package/dist/plugins/media/AudioPlugin.svelte +3 -90
  419. package/dist/plugins/media/AudioPlugin.svelte.d.ts +1 -4
  420. package/dist/plugins/media/BookmarkPlugin.svelte +113 -120
  421. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +10 -15
  422. package/dist/plugins/media/EmbedPlugin.svelte +82 -86
  423. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +11 -17
  424. package/dist/plugins/media/EmptySlot.svelte +44 -0
  425. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  426. package/dist/plugins/media/FilePlugin.svelte +35 -113
  427. package/dist/plugins/media/FilePlugin.svelte.d.ts +12 -4
  428. package/dist/plugins/media/MediaEmpty.svelte +51 -90
  429. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  430. package/dist/plugins/media/SourceBlock.svelte +164 -0
  431. package/dist/plugins/media/SourceBlock.svelte.d.ts +33 -0
  432. package/dist/plugins/media/VideoPlugin.svelte +4 -99
  433. package/dist/plugins/media/VideoPlugin.svelte.d.ts +2 -5
  434. package/dist/plugins/media/empty.svelte.d.ts +36 -44
  435. package/dist/plugins/media/empty.svelte.js +41 -45
  436. package/dist/plugins/media/media.d.ts +90 -44
  437. package/dist/plugins/media/media.js +77 -99
  438. package/dist/plugins/media/urlPaste.svelte.d.ts +6 -37
  439. package/dist/plugins/media/urlPaste.svelte.js +32 -102
  440. package/dist/plugins/mention/MentionPlugin.svelte +42 -123
  441. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +6 -25
  442. package/dist/plugins/page/PageLink.svelte +54 -38
  443. package/dist/plugins/page/PagePlugin.svelte +20 -18
  444. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  445. package/dist/plugins/page/page.d.ts +35 -9
  446. package/dist/plugins/page/page.js +3 -4
  447. package/dist/plugins/pageLink/PageLinkPlugin.svelte +47 -107
  448. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +6 -25
  449. package/dist/plugins/planned.d.ts +10 -0
  450. package/dist/plugins/planned.js +12 -0
  451. package/dist/plugins/richtext/CalloutIcon.svelte +13 -26
  452. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  453. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  454. package/dist/plugins/richtext/EmptyBody.svelte +13 -20
  455. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  456. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  457. package/dist/plugins/richtext/RichTextPlugin.svelte +161 -177
  458. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +33 -34
  459. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  460. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  461. package/dist/plugins/richtext/body.js +2 -2
  462. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +50 -55
  463. package/dist/plugins/richtext/calloutIcons.svelte.js +86 -174
  464. package/dist/plugins/richtext/callouts.d.ts +15 -0
  465. package/dist/plugins/richtext/callouts.js +23 -0
  466. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  467. package/dist/plugins/richtext/controls.svelte.js +126 -0
  468. package/dist/plugins/richtext/richTextOperations.js +37 -28
  469. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +2 -14
  470. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +34 -71
  471. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +9 -26
  472. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  473. package/dist/plugins/suggestions/SuggestionBars.svelte +27 -84
  474. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  475. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -18
  476. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  477. package/dist/plugins/table/TableChrome.svelte +40 -124
  478. package/dist/plugins/table/TablePlugin.svelte +106 -168
  479. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  480. package/dist/plugins/table/chrome.svelte.d.ts +38 -141
  481. package/dist/plugins/table/chrome.svelte.js +339 -589
  482. package/dist/plugins/table/ops.d.ts +47 -0
  483. package/dist/plugins/table/ops.js +233 -0
  484. package/dist/plugins/table/table.css +16 -152
  485. package/dist/plugins/table/table.d.ts +15 -14
  486. package/dist/plugins/table/table.js +22 -16
  487. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  488. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  489. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  490. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  491. package/dist/plugins/toc/toc.d.ts +41 -10
  492. package/dist/plugins/toc/toc.js +2 -3
  493. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +4 -68
  494. package/dist/plugins/toolbar/ToolbarController.svelte.js +63 -89
  495. package/dist/plugins/toolbar/toolbarPlugin.d.ts +8 -18
  496. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  497. package/dist/plugins/triggers/TriggerController.svelte.d.ts +4 -68
  498. package/dist/plugins/triggers/TriggerController.svelte.js +48 -129
  499. package/dist/plugins/triggers/place.d.ts +0 -9
  500. package/dist/plugins/triggers/place.js +1 -17
  501. package/dist/plugins/triggers/triggers.d.ts +31 -9
  502. package/dist/plugins/triggers/triggers.js +82 -62
  503. package/dist/plugins/uploads.svelte.d.ts +38 -20
  504. package/dist/plugins/uploads.svelte.js +39 -32
  505. package/dist/plugins.d.ts +154 -59
  506. package/dist/selection/domSelection.d.ts +13 -4
  507. package/dist/selection/domSelection.js +110 -183
  508. package/dist/selection/pointer.svelte.d.ts +8 -10
  509. package/dist/selection/pointer.svelte.js +32 -73
  510. package/dist/selection/replaceSelection.d.ts +21 -22
  511. package/dist/selection/replaceSelection.js +60 -69
  512. package/dist/selection/selection.svelte.d.ts +5 -73
  513. package/dist/selection/selection.svelte.js +224 -542
  514. package/dist/selection/selection.utils.d.ts +34 -11
  515. package/dist/selection/selection.utils.js +128 -247
  516. package/dist/selection/visibility.d.ts +3 -8
  517. package/dist/selection/visibility.js +7 -5
  518. package/dist/session/announcer.svelte.d.ts +2 -1
  519. package/dist/session/announcer.svelte.js +7 -3
  520. package/dist/session/attempt.d.ts +33 -39
  521. package/dist/session/attempt.js +61 -55
  522. package/dist/session/bindings.js +108 -139
  523. package/dist/session/commands.d.ts +47 -22
  524. package/dist/session/commands.js +206 -208
  525. package/dist/session/composition.svelte.d.ts +2 -4
  526. package/dist/session/composition.svelte.js +55 -65
  527. package/dist/session/editing/text.d.ts +6 -0
  528. package/dist/session/editing/text.js +17 -3
  529. package/dist/session/handles.d.ts +10 -1
  530. package/dist/session/handles.js +28 -0
  531. package/dist/session/history.d.ts +0 -4
  532. package/dist/session/history.js +15 -21
  533. package/dist/session/inputRules.js +75 -84
  534. package/dist/session/keymap.d.ts +1 -6
  535. package/dist/session/keymap.js +17 -20
  536. package/dist/session/moves.d.ts +10 -10
  537. package/dist/session/moves.js +31 -59
  538. package/dist/session/navigation.d.ts +3 -2
  539. package/dist/session/navigation.js +127 -168
  540. package/dist/session/ports.d.ts +2 -7
  541. package/dist/session/selection.d.ts +4 -3
  542. package/dist/session/selection.js +5 -0
  543. package/dist/session/suggestions.svelte.d.ts +1 -1
  544. package/dist/session/suggestions.svelte.js +42 -47
  545. package/dist/session/virtual.d.ts +3 -3
  546. package/dist/session/virtual.js +18 -40
  547. package/dist/surface/attributes.d.ts +1 -0
  548. package/dist/surface/attributes.js +3 -26
  549. package/dist/surface/cells.d.ts +5 -0
  550. package/dist/surface/cells.js +5 -0
  551. package/dist/surface/lines.d.ts +2 -2
  552. package/dist/surface/lines.js +1 -1
  553. package/dist/surface/observer.svelte.d.ts +3 -20
  554. package/dist/surface/observer.svelte.js +52 -72
  555. package/dist/surface/overlay.d.ts +41 -3
  556. package/dist/surface/overlay.js +92 -37
  557. package/dist/surface/pin.svelte.d.ts +5 -0
  558. package/dist/surface/pin.svelte.js +5 -0
  559. package/dist/surface/projector.svelte.d.ts +4 -6
  560. package/dist/surface/projector.svelte.js +42 -69
  561. package/dist/text/text.svelte.d.ts +14 -40
  562. package/dist/text/text.svelte.js +35 -51
  563. package/dist/text/wordBoundary.d.ts +19 -0
  564. package/dist/text/wordBoundary.js +29 -44
  565. package/dist/themes/notion.css +263 -106
  566. package/dist/utils/json.d.ts +3 -1
  567. package/dist/utils/json.js +52 -51
  568. package/dist/utils/listen.d.ts +8 -0
  569. package/dist/utils/listen.js +19 -0
  570. package/package.json +4 -5
  571. package/dist/block/block.utils.d.ts +0 -340
  572. package/dist/block/block.utils.js +0 -356
  573. package/dist/collaboration/history/HistoryPanel.svelte +0 -554
  574. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  575. package/dist/collaboration/history/panel.d.ts +0 -61
  576. package/dist/collaboration/history/panel.js +0 -3
  577. package/dist/components/SuggestionRanges.svelte +0 -58
  578. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  579. package/dist/crdt/doc/table.d.ts +0 -21
  580. package/dist/crdt/doc/table.js +0 -288
  581. package/dist/crdt/migration/generation.d.ts +0 -58
  582. package/dist/crdt/migration/generation.js +0 -70
  583. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  584. package/dist/crdt/migration/legacy-schema.js +0 -151
  585. package/dist/crdt/migration/migrate.d.ts +0 -56
  586. package/dist/crdt/migration/migrate.js +0 -227
  587. package/dist/crdt/nodes.d.ts +0 -121
  588. package/dist/crdt/nodes.js +0 -56
  589. package/dist/crdt/text/index/checks.d.ts +0 -15
  590. package/dist/crdt/text/index/checks.js +0 -156
  591. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  592. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  593. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  594. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  595. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  596. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  597. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  598. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  599. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  600. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  601. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  602. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  603. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  604. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  605. package/dist/edytor.utils.d.ts +0 -50
  606. package/dist/edytor.utils.js +0 -67
  607. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -335
  608. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  609. package/dist/plugins/find/FindBar.svelte +0 -170
  610. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  611. package/dist/plugins/find/FindHighlights.svelte +0 -75
  612. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  613. package/dist/plugins/icons.d.ts +0 -2
  614. package/dist/plugins/icons.js +0 -63
  615. package/dist/plugins/image/ImageEmpty.svelte +0 -93
  616. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -15
  617. package/dist/plugins/image/empty.svelte.d.ts +0 -56
  618. package/dist/plugins/image/empty.svelte.js +0 -83
  619. package/dist/plugins/keepInView.d.ts +0 -4
  620. package/dist/plugins/keepInView.js +0 -6
  621. package/dist/plugins/media/UrlPasteMenu.svelte +0 -92
  622. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -9
  623. package/dist/plugins/richtext/CalloutIconMenu.svelte +0 -98
  624. package/dist/plugins/richtext/CalloutIconMenu.svelte.d.ts +0 -9
  625. package/dist/plugins/richtext/labels.d.ts +0 -9
  626. package/dist/plugins/richtext/labels.js +0 -7
  627. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -276
  628. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  629. package/dist/plugins/table/dragPreview.d.ts +0 -29
  630. package/dist/plugins/table/dragPreview.js +0 -103
  631. package/dist/plugins/toolbar/LinkCard.svelte +0 -122
  632. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -9
  633. package/dist/plugins/toolbar/Toolbar.svelte +0 -349
  634. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  635. package/dist/plugins/triggers/TriggerMenu.svelte +0 -135
  636. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  637. package/dist/session/props.d.ts +0 -28
  638. package/dist/session/props.js +0 -162
  639. package/dist/text/deltas.d.ts +0 -22
  640. package/dist/text/deltas.js +0 -46
  641. package/dist/text/text.utils.d.ts +0 -45
  642. package/dist/text/text.utils.js +0 -199
@@ -0,0 +1,104 @@
1
+ import { bindAll } from '../../../bind-event-listener/index.js';
2
+ import { isSafari } from '../is-safari.js';
3
+
4
+ /* For "dragenter" events, the browser should set `relatedTarget` to the previous element.
5
+ * For external drag operations, our first "dragenter" event should have a `event.relatedTarget` of `null`.
6
+ *
7
+ * Unfortunately in Safari `event.relatedTarget` is *always* set to `null`
8
+ * Safari bug: https://bugs.webkit.org/show_bug.cgi?id=242627
9
+ * To work around this we count "dragenter" and "dragleave" events */
10
+ // Using symbols for event properties so we don't clash with
11
+ // anything on the `event` object
12
+ export const symbols = {
13
+ isLeavingWindow: Symbol('leaving'),
14
+ isEnteringWindow: Symbol('entering')
15
+ };
16
+ (function fixSafari() {
17
+ // Don't do anything when server side rendering
18
+ if (typeof window === 'undefined') {
19
+ return;
20
+ }
21
+
22
+ // rather than checking the userAgent for "jsdom" we can do this check
23
+ // so that the check will be removed completely in production code
24
+ if (process.env.NODE_ENV === 'test') {
25
+ return;
26
+ }
27
+ if (!isSafari()) {
28
+ return;
29
+ }
30
+ function getInitialState() {
31
+ return {
32
+ enterCount: 0,
33
+ isOverWindow: false
34
+ };
35
+ }
36
+ let state = getInitialState();
37
+ function resetState() {
38
+ state = getInitialState();
39
+ }
40
+
41
+ // These event listeners are bound _forever_ and _never_ removed
42
+ // We don't bother cleaning up these event listeners (for now)
43
+ // as this workaround is only for Safari
44
+
45
+ // This is how the event count works:
46
+ //
47
+ // lift (+1 enterCount)
48
+ // - dragstart(draggable) [enterCount: 0]
49
+ // - dragenter(draggable) [enterCount: 1]
50
+ // leaving draggable (+0 enterCount)
51
+ // - dragenter(document.body) [enterCount: 2]
52
+ // - dragleave(draggable) [enterCount: 1]
53
+ // leaving window (-1 enterCount)
54
+ // - dragleave(document.body) [enterCount: 0] {leaving the window}
55
+
56
+ // Things to note:
57
+ // - dragenter and dragleave bubble
58
+ // - the first dragenter when entering a window might not be on `window`
59
+ // - it could be on an element that is pressed up against the window
60
+ // - (so we cannot rely on `event.target` values)
61
+
62
+ bindAll(window, [{
63
+ type: 'dragstart',
64
+ listener: () => {
65
+ state.enterCount = 0;
66
+ // drag start occurs in the source window
67
+ state.isOverWindow = true;
68
+ // When a drag first starts it will also trigger a "dragenter" on the draggable element
69
+ }
70
+ }, {
71
+ type: 'drop',
72
+ listener: resetState
73
+ }, {
74
+ type: 'dragend',
75
+ listener: resetState
76
+ }, {
77
+ type: 'dragenter',
78
+ listener: event => {
79
+ if (!state.isOverWindow && state.enterCount === 0) {
80
+ // Patching the `event` object
81
+ // The `event` object is shared with all event listeners for the event
82
+ event[symbols.isEnteringWindow] = true;
83
+ }
84
+ state.isOverWindow = true;
85
+ state.enterCount++;
86
+ }
87
+ }, {
88
+ type: 'dragleave',
89
+ listener: event => {
90
+ state.enterCount--;
91
+ if (state.isOverWindow && state.enterCount === 0) {
92
+ // Patching the `event` object as it is shared with all event listeners
93
+ // The `event` object is shared with all event listeners for the event
94
+ event[symbols.isLeavingWindow] = true;
95
+ state.isOverWindow = false;
96
+ }
97
+ }
98
+ }],
99
+ // using `capture: true` so that adding event listeners
100
+ // in bubble phase will have the correct symbols
101
+ {
102
+ capture: true
103
+ });
104
+ })();
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Does the `EventTarget` look like a `Node` based on "duck typing".
3
+ *
4
+ * Helpful when the `Node` might be outside of the current document
5
+ * so we cannot to an `target instanceof Node` check.
6
+ */
7
+ function isNodeLike(target) {
8
+ return 'nodeName' in target;
9
+ }
10
+
11
+ /**
12
+ * Is an `EventTarget` a `Node` from another `window`?
13
+ */
14
+ export function isFromAnotherWindow(eventTarget) {
15
+ return isNodeLike(eventTarget) && eventTarget.ownerDocument !== document;
16
+ }
@@ -0,0 +1,12 @@
1
+ import { isSafari } from '../is-safari.js';
2
+ import { symbols } from './count-events-for-safari.js';
3
+
4
+ // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
5
+ export function isLeavingWindowInSafari({
6
+ dragLeave
7
+ }) {
8
+ if (!isSafari()) {
9
+ return false;
10
+ }
11
+ return dragLeave.hasOwnProperty(symbols.isLeavingWindow);
12
+ }
@@ -0,0 +1,55 @@
1
+ import { isFirefox } from '../is-firefox.js';
2
+ import { isSafari } from '../is-safari.js';
3
+ import { isFromAnotherWindow } from './is-from-another-window.js';
4
+ import { isLeavingWindowInSafari } from './is-leaving-window-in-safari.js';
5
+ export function isLeavingWindow({
6
+ dragLeave
7
+ }) {
8
+ const {
9
+ type,
10
+ relatedTarget
11
+ } = dragLeave;
12
+ if (type !== 'dragleave') {
13
+ return false;
14
+ }
15
+ if (isSafari()) {
16
+ return isLeavingWindowInSafari({
17
+ dragLeave
18
+ });
19
+ }
20
+
21
+ // Standard check: if going to `null` we are leaving the `window`
22
+ if (relatedTarget == null) {
23
+ return true;
24
+ }
25
+
26
+ /**
27
+ * 🦊 Exception: `iframe` in Firefox (`125.0`)
28
+ *
29
+ * Case 1: parent `window` → child `iframe`
30
+ * `dragLeave.relatedTarget` is element _inside_ the child `iframe`
31
+ * (foreign element)
32
+ *
33
+ * Case 2: child `iframe` → parent `window`
34
+ * `dragLeave.relatedTarget` is the `iframe` in the parent `window`
35
+ * (foreign element)
36
+ */
37
+
38
+ if (isFirefox()) {
39
+ return isFromAnotherWindow(relatedTarget);
40
+ }
41
+
42
+ /**
43
+ * 🌏 Exception: `iframe` in Chrome (`124.0`)
44
+ *
45
+ * Case 1: parent `window` → child `iframe`
46
+ * `dragLeave.relatedTarget` is the `iframe` in the parent `window`
47
+ *
48
+ * Case 2: child `iframe` → parent `window`
49
+ * `dragLeave.relatedTarget` is `null` *(standard check)*
50
+ */
51
+
52
+ // Case 2
53
+ // Using `instanceof` check as the element will be in the same `window`
54
+ return relatedTarget instanceof HTMLIFrameElement;
55
+ }
@@ -0,0 +1,48 @@
1
+ export function getBindingsForBrokenDrags({
2
+ onDragEnd
3
+ }) {
4
+ return [
5
+ // ## Detecting drag ending for removed draggables
6
+ //
7
+ // If a draggable element is removed during a drag and the user drops:
8
+ // 1. if over a valid drop target: we get a "drop" event to know the drag is finished
9
+ // 2. if not over a valid drop target (or cancelled): we get nothing
10
+ // The "dragend" event will not fire on the source draggable if it has been
11
+ // removed from the DOM.
12
+ // So we need to figure out if a drag operation has finished by looking at other events
13
+ // We can do this by looking at other events
14
+
15
+ // ### First detection: "pointermove" events
16
+
17
+ // 1. "pointermove" events cannot fire during a drag and drop operation
18
+ // according to the spec. So if we get a "pointermove" it means that
19
+ // the drag and drop operations has finished. So if we get a "pointermove"
20
+ // we know that the drag is over
21
+ // 2. 🦊😤 Drag and drop operations are _supposed_ to suppress
22
+ // other pointer events. However, firefox will allow a few
23
+ // pointer event to get through after a drag starts.
24
+ // The most I've seen is 3
25
+ {
26
+ type: 'pointermove',
27
+ listener: (() => {
28
+ let callCount = 0;
29
+ return function listener() {
30
+ // Using 20 as it is far bigger than the most observed (3)
31
+ if (callCount < 20) {
32
+ callCount++;
33
+ return;
34
+ }
35
+ onDragEnd();
36
+ };
37
+ })()
38
+ },
39
+ // ### Second detection: "pointerdown" events
40
+
41
+ // If we receive this event then we know that a drag operation has finished
42
+ // and potentially another one is about to start.
43
+ // Note: `pointerdown` fires on all browsers / platforms before "dragstart"
44
+ {
45
+ type: 'pointerdown',
46
+ listener: onDragEnd
47
+ }];
48
+ }
@@ -0,0 +1,14 @@
1
+ export function getInput(event) {
2
+ return {
3
+ altKey: event.altKey,
4
+ button: event.button,
5
+ buttons: event.buttons,
6
+ ctrlKey: event.ctrlKey,
7
+ metaKey: event.metaKey,
8
+ shiftKey: event.shiftKey,
9
+ clientX: event.clientX,
10
+ clientY: event.clientY,
11
+ pageX: event.pageX,
12
+ pageY: event.pageY
13
+ };
14
+ }
@@ -0,0 +1,13 @@
1
+ import { once } from '../public-utils/once.js';
2
+
3
+ // using `cache` as our `isFirefox()` result will not change in a browser
4
+
5
+ /**
6
+ * Returns `true` if a `Firefox` browser
7
+ * */
8
+ export const isFirefox = once(function isFirefox() {
9
+ if (process.env.NODE_ENV === 'test') {
10
+ return false;
11
+ }
12
+ return navigator.userAgent.includes('Firefox');
13
+ });
@@ -0,0 +1,19 @@
1
+ import { once } from '../public-utils/once.js';
2
+
3
+ // using `cache` as our `isSafari()` result will not change in a browser
4
+
5
+ /**
6
+ * Returns `true` if a `Safari` browser.
7
+ * Returns `true` if the browser is running on iOS (they are all Safari).
8
+ *
9
+ * Use `isSafariOnIOS` if you want to check if something is Safari + iOS
10
+ * */
11
+ export const isSafari = once(function isSafari() {
12
+ if (process.env.NODE_ENV === 'test') {
13
+ return false;
14
+ }
15
+ const {
16
+ userAgent
17
+ } = navigator;
18
+ return userAgent.includes('AppleWebKit') && !userAgent.includes('Chrome');
19
+ });
@@ -0,0 +1,3 @@
1
+ // Maximum possible z-index
2
+ // https://stackoverflow.com/questions/491052/minimum-and-maximum-value-of-z-index
3
+ export const maxZIndex = 2147483647;
@@ -0,0 +1,6 @@
1
+ // Why we put the media types in their own files:
2
+ //
3
+ // - we are not putting them all in one file as not all adapters need all types
4
+ // - we are not putting them in the external helpers as some things just need the
5
+ // types and not the external functions code
6
+ export const textMediaType = 'text/plain';
@@ -0,0 +1,6 @@
1
+ // Why we put the media types in their own files:
2
+ //
3
+ // - we are not putting them all in one file as not all adapters need all types
4
+ // - we are not putting them in the external helpers as some things just need the
5
+ // types and not the external functions code
6
+ export const URLMediaType = 'text/uri-list';
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Resets user agent styles for `[popover]` elements.
3
+ *
4
+ * Browsers apply these defaults to popovers (per the WHATWG HTML spec rendering section):
5
+ * - `inset: 0` + `margin: auto` → centers the popover in the viewport
6
+ * - `border: solid` → visible border
7
+ * - `padding: 0.25em` → internal spacing
8
+ * - `overflow: auto` → scrollbars when content overflows
9
+ * - `color: CanvasText` + `background-color: Canvas` → system theme colors
10
+ *
11
+ * This object neutralizes those defaults so the popover behaves like a plain
12
+ * positioned `<div>`, matching the sizing of the legacy (non-popover)
13
+ * fallback container exactly.
14
+ *
15
+ * **Width and height (`auto`)**
16
+ *
17
+ * `width` and `height` override the spec user agent value of `fit-content`
18
+ * with `auto`.
19
+ *
20
+ * _Why?_
21
+ *
22
+ * - When a `[popover]` is sized with `fit-content` and contains a flex
23
+ * container, Safari collapses any flex item that uses `overflow: auto`
24
+ * to `0px`.
25
+ * - Setting the popover's `width` and `height` to `auto` skips the `fit-content`
26
+ * pass and avoids the bug in Safari
27
+ * - Chromium and Firefox tolerate `fit-content` here, but `auto` is safe
28
+ * everywhere and matches our non-popover path
29
+ */
30
+ export const popoverResetUserAgentStyles = {
31
+ inset: 'unset',
32
+ border: 'none',
33
+ padding: 0,
34
+ margin: 0,
35
+ overflow: 'visible',
36
+ color: 'inherit',
37
+ background: 'transparent',
38
+ width: 'auto',
39
+ height: 'auto'
40
+ };
@@ -0,0 +1,16 @@
1
+ import { once } from '../public-utils/once.js';
2
+
3
+ // Using `once` as the value won't change in a browser
4
+
5
+ /**
6
+ * Returns `true` if the browser supports the Popover API (top-layer).
7
+ *
8
+ * When supported, elements with `popover="manual"` can be promoted to the
9
+ * browser's top layer via `element.showPopover()`, which is more reliable
10
+ * than `z-index` for ensuring an element renders above everything else.
11
+ *
12
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Popover_API
13
+ */
14
+ export const supportsPopover = once(function supportsPopover() {
15
+ return typeof HTMLElement !== 'undefined' && typeof HTMLElement.prototype.showPopover === 'function';
16
+ });
@@ -0,0 +1,11 @@
1
+ Copyright 2023 Atlassian Pty Ltd
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
4
+ compliance with the License. You may obtain a copy of the License at
5
+
6
+ http://www.apache.org/licenses/LICENSE-2.0
7
+
8
+ Unless required by applicable law or agreed to in writing, software distributed under the License is
9
+ distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
10
+ implied. See the License for the specific language governing permissions and limitations under the
11
+ License.
@@ -0,0 +1,4 @@
1
+ import type { ElementDragType, CleanupFn } from '../../pragmatic-drag-and-drop/entry-point/types.js';
2
+ import type { ElementAutoScrollArgs, WindowAutoScrollArgs } from '../internal-types.js';
3
+ export declare const autoScrollForElements: (args: ElementAutoScrollArgs<ElementDragType>) => CleanupFn;
4
+ export declare const autoScrollWindowForElements: (args?: WindowAutoScrollArgs<ElementDragType>) => CleanupFn;
@@ -0,0 +1,8 @@
1
+ import { monitorForElements } from '../../pragmatic-drag-and-drop/adapter/element-adapter.js';
2
+ import { makeApi } from '../over-element/make-api.js';
3
+ const api = makeApi({
4
+ monitor: monitorForElements
5
+ });
6
+ export const autoScrollForElements = api.autoScroll;
7
+ // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
8
+ export const autoScrollWindowForElements = api.autoScrollWindow;
@@ -0,0 +1,50 @@
1
+ import type { AllDragTypes, Input } from '../pragmatic-drag-and-drop/entry-point/types.js';
2
+ export type ElementGetFeedbackArgs<DragType extends AllDragTypes> = {
3
+ /**
4
+ * The users _current_ input
5
+ */
6
+ input: Input;
7
+ /**
8
+ * The data associated with the entity being dragged
9
+ */
10
+ source: DragType['payload'];
11
+ /**
12
+ * The element trying to be scrolled
13
+ */
14
+ element: Element;
15
+ };
16
+ export type WindowGetFeedbackArgs<DragType extends AllDragTypes> = Omit<ElementGetFeedbackArgs<DragType>, 'element'>;
17
+ export type Spacing = {
18
+ top: number;
19
+ right: number;
20
+ bottom: number;
21
+ left: number;
22
+ };
23
+ export type Edge = keyof Spacing;
24
+ export type EngagementHistoryEntry = {
25
+ timeOfEngagementStart: number;
26
+ };
27
+ export type InternalConfig = {
28
+ startHitboxAtPercentageRemainingOfElement: Spacing;
29
+ maxScrollAtPercentageRemainingOfHitbox: Spacing;
30
+ maxPixelScrollPerSecond: number;
31
+ timeDampeningDurationMs: number;
32
+ maxMainAxisHitboxSize: number;
33
+ };
34
+ export type PublicConfig = Partial<{
35
+ maxScrollSpeed: 'standard' | 'fast';
36
+ }>;
37
+ export type ElementAutoScrollArgs<DragType extends AllDragTypes> = {
38
+ element: Element;
39
+ canScroll?: (args: ElementGetFeedbackArgs<DragType>) => boolean;
40
+ getAllowedAxis?: (args: ElementGetFeedbackArgs<DragType>) => AllowedAxis;
41
+ getConfiguration?: (args: ElementGetFeedbackArgs<DragType>) => PublicConfig;
42
+ };
43
+ export type WindowAutoScrollArgs<DragType extends AllDragTypes> = {
44
+ canScroll?: (args: WindowGetFeedbackArgs<DragType>) => boolean;
45
+ getAllowedAxis?: (args: WindowGetFeedbackArgs<DragType>) => AllowedAxis;
46
+ getConfiguration?: (args: WindowGetFeedbackArgs<DragType>) => PublicConfig;
47
+ };
48
+ export type Side = 'start' | 'end';
49
+ export type Axis = 'vertical' | 'horizontal';
50
+ export type AllowedAxis = Axis | 'all';
@@ -0,0 +1,9 @@
1
+ export const dataAttribute = 'data-auto-scrollable';
2
+ // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
3
+ export const selector = `[${dataAttribute}="true"]`;
4
+
5
+ // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
6
+ export function addScrollableAttribute(element) {
7
+ element.setAttribute(dataAttribute, 'true');
8
+ return () => element.removeAttribute(dataAttribute);
9
+ }
@@ -0,0 +1,117 @@
1
+ import { canScrollOnEdge } from '../shared/can-scroll-on-edge.js';
2
+ import { edgeAxisLookup, edges } from '../shared/edges.js';
3
+ import { getOverElementHitbox } from '../shared/get-over-element-hitbox.js';
4
+ import { getScrollChange } from '../shared/get-scroll-change.js';
5
+ import { isAxisAllowed } from '../shared/is-axis-allowed.js';
6
+ import { isWithin } from '../shared/is-within.js';
7
+ function getRectDefault(element) {
8
+ return element.getBoundingClientRect();
9
+ }
10
+ export function getScrollBy({
11
+ element,
12
+ input,
13
+ timeSinceLastFrame,
14
+ engagement,
15
+ config,
16
+ allowedAxis,
17
+ getRect = getRectDefault
18
+ }) {
19
+ const client = {
20
+ x: input.clientX,
21
+ y: input.clientY
22
+ };
23
+ const clientRect = getRect(element);
24
+ const scrollableEdges = edges.reduce((map, edge) => {
25
+ const hitbox = getOverElementHitbox[edge]({
26
+ clientRect,
27
+ config
28
+ });
29
+ const axis = edgeAxisLookup[edge];
30
+
31
+ // Note: changing the allowed axis during a drag will not
32
+ // reset time dampening. It was decided it would be too
33
+ // complex to implement initially, and we can add it
34
+ // later if needed.
35
+ if (!isAxisAllowed(axis, allowedAxis)) {
36
+ return map;
37
+ }
38
+ if (!isWithin({
39
+ client,
40
+ clientRect: hitbox
41
+ })) {
42
+ return map;
43
+ }
44
+ if (!canScrollOnEdge[edge](element)) {
45
+ return map;
46
+ }
47
+ map.set(edge, {
48
+ edge,
49
+ hitbox
50
+ });
51
+ return map;
52
+ }, new Map());
53
+ const left = (() => {
54
+ const axis = 'horizontal';
55
+ const leftEdge = scrollableEdges.get('left');
56
+ if (leftEdge) {
57
+ return getScrollChange({
58
+ client,
59
+ edge: leftEdge.edge,
60
+ hitbox: leftEdge.hitbox,
61
+ axis,
62
+ timeSinceLastFrame,
63
+ engagement,
64
+ isDistanceDampeningEnabled: true,
65
+ config
66
+ });
67
+ }
68
+ const rightEdge = scrollableEdges.get('right');
69
+ if (rightEdge) {
70
+ return getScrollChange({
71
+ client,
72
+ edge: rightEdge.edge,
73
+ hitbox: rightEdge.hitbox,
74
+ axis,
75
+ timeSinceLastFrame,
76
+ engagement,
77
+ isDistanceDampeningEnabled: true,
78
+ config
79
+ });
80
+ }
81
+ return 0;
82
+ })();
83
+ const top = (() => {
84
+ const axis = 'vertical';
85
+ const bottomEdge = scrollableEdges.get('bottom');
86
+ if (bottomEdge) {
87
+ return getScrollChange({
88
+ client,
89
+ edge: bottomEdge.edge,
90
+ hitbox: bottomEdge.hitbox,
91
+ axis,
92
+ timeSinceLastFrame,
93
+ engagement,
94
+ isDistanceDampeningEnabled: true,
95
+ config
96
+ });
97
+ }
98
+ const topEdge = scrollableEdges.get('top');
99
+ if (topEdge) {
100
+ return getScrollChange({
101
+ client,
102
+ edge: topEdge.edge,
103
+ hitbox: topEdge.hitbox,
104
+ axis,
105
+ timeSinceLastFrame,
106
+ engagement,
107
+ isDistanceDampeningEnabled: true,
108
+ config
109
+ });
110
+ }
111
+ return 0;
112
+ })();
113
+ return {
114
+ left,
115
+ top
116
+ };
117
+ }
@@ -0,0 +1,90 @@
1
+ import { combine } from '../../pragmatic-drag-and-drop/public-utils/combine.js';
2
+ import { once } from '../../pragmatic-drag-and-drop/public-utils/once.js';
3
+ import { getScheduler } from '../shared/scheduler.js';
4
+ import { addScrollableAttribute } from './data-attributes.js';
5
+ import { tryScroll } from './try-scroll.js';
6
+ export function makeApi({
7
+ monitor
8
+ }) {
9
+ const elementRegistry = new Map();
10
+ const windowRegistry = new Set();
11
+ function autoScroll(args) {
12
+ // Warn during development if trying to add auto scroll to an element
13
+ // that is not scrollable.
14
+ // Note: this can produce a false positive when a scroll container is not
15
+ // scrollable initially, but becomes scrollable during a drag.
16
+ // I thought of adding the warning as I think it would be a more common pitfall
17
+ // to accidentally register auto scrolling on the wrong element
18
+ // If requested, we could provide a mechanism to opt out of this warning
19
+ if (process.env.NODE_ENV !== 'production') {
20
+ const {
21
+ overflowX,
22
+ overflowY
23
+ } = window.getComputedStyle(args.element);
24
+ const isScrollable = overflowX === 'auto' || overflowX === 'scroll' || overflowY === 'auto' || overflowY === 'scroll';
25
+ if (!isScrollable) {
26
+ // eslint-disable-next-line no-console
27
+ console.warn('Auto scrolling has been attached to an element that appears not to be scrollable', {
28
+ element: args.element,
29
+ overflowX,
30
+ overflowY
31
+ });
32
+ }
33
+ }
34
+
35
+ // Warn if there is an existing registration
36
+ if (process.env.NODE_ENV !== 'production') {
37
+ const existing = elementRegistry.get(args.element);
38
+ if (existing) {
39
+ // eslint-disable-next-line no-console
40
+ console.warn('You have already registered autoScrolling on the same element', {
41
+ existing,
42
+ proposed: args
43
+ });
44
+ }
45
+ }
46
+ elementRegistry.set(args.element, args);
47
+ const cleanup = combine(addScrollableAttribute(args.element), () => elementRegistry.delete(args.element));
48
+ return once(cleanup);
49
+ }
50
+ function autoScrollWindow(args = {}) {
51
+ // Putting `args` in a unique object so that
52
+ // each call will create a unique entry, even if a consumer
53
+ // shares the `args` object between calls.
54
+ // Just being safe here.
55
+ const unique = {
56
+ ...args
57
+ };
58
+ windowRegistry.add(unique);
59
+ function cleanup() {
60
+ windowRegistry.delete(unique);
61
+ }
62
+ return once(cleanup);
63
+ }
64
+ function findEntry(element) {
65
+ var _elementRegistry$get;
66
+ return (_elementRegistry$get = elementRegistry.get(element)) !== null && _elementRegistry$get !== void 0 ? _elementRegistry$get : null;
67
+ }
68
+ function getWindowScrollEntries() {
69
+ return Array.from(windowRegistry);
70
+ }
71
+ function onFrame({
72
+ latestArgs,
73
+ underUsersPointer,
74
+ timeSinceLastFrame
75
+ }) {
76
+ tryScroll({
77
+ input: latestArgs.location.current.input,
78
+ source: latestArgs.source,
79
+ findEntry,
80
+ underUsersPointer,
81
+ timeSinceLastFrame,
82
+ getWindowScrollEntries
83
+ });
84
+ }
85
+ getScheduler(monitor).onFrame(onFrame);
86
+ return {
87
+ autoScroll,
88
+ autoScrollWindow
89
+ };
90
+ }