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
@@ -3,12 +3,14 @@ import { pasteFlow } from '../clipboard/insertClipboardFragment.js';
3
3
  import { jsonBlockToSpec } from '../utils/json.js';
4
4
  import { id as mint } from '../utils.js';
5
5
  /**
6
- * The view's uploads of pasted and dropped files (`media.files`), one per
7
- * view: session state, never in the document. The kinds given an `upload`
8
- * register here; a paste or a drop (a drop replays the paste hooks) of
9
- * files the kinds take places one empty block per file, each of the kind
10
- * that takes it (`fallback` last), in the clipboard's order, as one paste
11
- * (one command, one undo step), and each block shows its upload (`of`).
6
+ * The view's uploads (`media.files`), one per view, the uploads plugin's:
7
+ * its uploader (`upload`, an empty block's Upload too) and the uploads of
8
+ * pasted and dropped files, session state, never in the document. A kind
9
+ * takes files by its record's `upload`; a paste or a drop (a drop replays
10
+ * the paste hooks) of files the kinds take places one empty block per
11
+ * file, each of the kind that takes it (`fallback` last), in the
12
+ * clipboard's order, as one paste (one command, one undo step), and each
13
+ * block shows its upload (`of`).
12
14
  * The data an upload answers fills the block outside the history
13
15
  * (`dispatcher.outside`), so the paste stays the one step that undoes it.
14
16
  * A failed upload, or an answer that is no source, leaves the block empty
@@ -20,31 +22,32 @@ import { id as mint } from '../utils.js';
20
22
  */
21
23
  export class FileUploads {
22
24
  edytor;
23
- #kinds = [];
25
+ upload;
24
26
  #uploads = new SvelteMap();
25
- constructor(edytor) {
27
+ constructor(edytor,
28
+ /** The view's uploader. */
29
+ upload) {
26
30
  this.edytor = edytor;
31
+ this.upload = upload;
32
+ }
33
+ /** The kinds that take files (their records' `upload`), in registration order. */
34
+ get #kinds() {
35
+ return [...this.edytor.blocks].flatMap(([type, { upload }]) => upload ? [{ type, ...upload }] : []);
27
36
  }
28
- /** Take files for `kind` (the first registration of a type wins, as its definition). */
29
- register = (kind) => {
30
- if (!this.#kinds.some(({ type }) => type === kind.type))
31
- this.#kinds.push(kind);
32
- };
33
37
  /** The kind that takes `file`, if any. */
34
- kindOf = (file) => this.#kinds.find((kind) => !kind.fallback && kind.accepts(file)) ??
38
+ #kindOf = (file) => this.#kinds.find((kind) => !kind.fallback && kind.accepts(file)) ??
35
39
  this.#kinds.find((kind) => kind.fallback && kind.accepts(file));
36
40
  /** The upload of block `id` in this view (reactive), if any. */
37
41
  of = (id) => this.#uploads.get(id);
38
42
  /**
39
- * The paste hook of every kind that registered (the first one asked
40
- * claims for them all): the files a kind takes, unless the HTML beside
41
- * them shows text (an office app puts a picture of copied text on the
43
+ * The paste hook: the files a kind takes, unless the HTML beside them
44
+ * shows text (an office app puts a picture of copied text on the
42
45
  * clipboard).
43
46
  */
44
47
  paste = ({ e, prevent }) => {
45
- if (this.edytor.readonly || !this.#kinds.length)
48
+ if (this.edytor.readonly)
46
49
  return;
47
- const files = Array.from(e.clipboardData?.files ?? []).filter((file) => this.kindOf(file));
50
+ const files = Array.from(e.clipboardData?.files ?? []).filter((file) => this.#kindOf(file));
48
51
  if (files.length && !showsText(e.clipboardData?.getData('text/html')))
49
52
  prevent(() => this.insert(files));
50
53
  };
@@ -52,7 +55,7 @@ export class FileUploads {
52
55
  insert = (files) => {
53
56
  const { edytor } = this;
54
57
  const placed = files.flatMap((file) => {
55
- const kind = this.kindOf(file);
58
+ const kind = this.#kindOf(file);
56
59
  return kind ? [{ file, kind, id: mint('b') }] : [];
57
60
  });
58
61
  if (!placed.length)
@@ -89,7 +92,7 @@ export class FileUploads {
89
92
  const block = this.edytor.idToBlock.get(id);
90
93
  if (!block?.isInTree || this.edytor.destroyed)
91
94
  return;
92
- const kind = this.#kinds.find(({ type }) => type === block.type);
95
+ const kind = block.definition.upload;
93
96
  if (!kind || kind.filled(block.data))
94
97
  return this.#uploads.delete(id);
95
98
  this.#write(id, upload.data);
@@ -112,7 +115,7 @@ export class FileUploads {
112
115
  };
113
116
  let data;
114
117
  try {
115
- data = kind.data(file, await kind.upload(file, report));
118
+ data = kind.data(file, await this.upload(file, report));
116
119
  }
117
120
  catch {
118
121
  data = null;
@@ -136,8 +139,7 @@ export class FileUploads {
136
139
  /** The data's write, outside the history; refused (readonly), it is held for the next show. */
137
140
  #write = (id, data) => {
138
141
  const { edytor } = this;
139
- const block = edytor.idToBlock.get(id);
140
- edytor.dispatcher.outside(() => block.patchData({ ops: Object.entries(data).map(([key, value]) => ({ path: [key], value })) }));
142
+ edytor.dispatcher.outside(() => edytor.patchData(id, Object.entries(data).map(([key, value]) => ({ path: [key], value }))));
141
143
  if (edytor.dispatcher.last?.status === 'applied')
142
144
  this.#uploads.delete(id);
143
145
  else
@@ -149,12 +151,17 @@ const showsText = (html) => !!html &&
149
151
  typeof DOMParser !== 'undefined' &&
150
152
  !!new DOMParser().parseFromString(html, 'text/html').body.textContent?.trim();
151
153
  const views = new WeakMap();
152
- /** The view's file uploads (made at the first ask; `undefined` with no view). */
153
- export const fileUploads = (edytor) => {
154
- if (!edytor)
155
- return undefined;
156
- let uploads = views.get(edytor);
157
- if (!uploads)
158
- views.set(edytor, (uploads = new FileUploads(edytor)));
159
- return uploads;
154
+ /** The view's uploads, when it lists the uploads plugin. */
155
+ export const fileUploads = (edytor) => edytor && views.get(edytor);
156
+ /**
157
+ * File uploads (Notion's): the view's one uploader, for every kind whose
158
+ * record takes files (`upload`: the image, file, video and audio kinds).
159
+ * Without it, only links are embedded. The first listed claims the view.
160
+ */
161
+ export const createUploadsPlugin = ({ upload }) => (edytor) => {
162
+ if (!edytor || views.has(edytor))
163
+ return {};
164
+ const uploads = new FileUploads(edytor, upload);
165
+ views.set(edytor, uploads);
166
+ return { onPaste: uploads.paste, onEdytorAttached: () => uploads.destroy };
160
167
  };
package/dist/plugins.d.ts CHANGED
@@ -6,13 +6,15 @@ import type { Text } from './text/text.svelte.js';
6
6
  import type { TextTransform } from './surface/cells.js';
7
7
  import type { SerializableContent } from './utils/json.js';
8
8
  import type { HotKey, HotKeyCombination } from './session/keymap.js';
9
- import type { TextOperations } from './text/text.utils.js';
10
- import type { BlockOperations } from './block/block.utils.js';
9
+ import type { DocumentWrites } from './crdt/operations.js';
10
+ import type { ResolvedAt } from './session/suggestions.svelte.js';
11
11
  import type { EdytorSelection } from './selection/selection.svelte.js';
12
12
  import type { InlineBlock } from './block/inlineBlock.svelte.js';
13
13
  import type { DocChange, PlanEffect } from './crdt/edytor-doc.js';
14
14
  import type { MarkEdge } from './session/editing/text.js';
15
15
  import type { Prevent } from './utils.js';
16
+ import type { TriggerMenuController } from './plugins/triggers/TriggerController.svelte.js';
17
+ import type { KindUpload } from './plugins/uploads.svelte.js';
16
18
  /** What a placeholder function receives: the empty block's declared values. */
17
19
  export type PlaceholderView = {
18
20
  type: string;
@@ -20,8 +22,8 @@ export type PlaceholderView = {
20
22
  focused: boolean;
21
23
  empty: boolean;
22
24
  };
23
- /** An empty block's placeholder text: one string, or one per block (`null`: none). */
24
- export type Placeholder = string | ((view: PlaceholderView) => string | null);
25
+ /** An empty block's placeholder text: one string, or one per block of the view (`null`: none). */
26
+ export type Placeholder = string | ((view: PlaceholderView, edytor: Edytor) => string | null);
25
27
  /**
26
28
  * Represents the payload for mark snippets with generic serializable content.
27
29
  * @template D - The type of serializable content
@@ -40,12 +42,12 @@ export type { Prevent };
40
42
  export type BlockView<D = Record<string, any>> = {
41
43
  readonly id: string;
42
44
  readonly type: string;
43
- readonly data: D;
45
+ readonly data: Readonly<D>;
44
46
  readonly selected: boolean;
45
47
  readonly focused: boolean;
46
48
  /**
47
- * The block's id-only handle (its getters, reactive in a template, and
48
- * its commands); `undefined` in a suggestion's preview, which is no block
49
+ * The block's id-only, read-only handle (its getters, reactive in a
50
+ * template); `undefined` in a suggestion's preview, which is no block
49
51
  * of the document.
50
52
  */
51
53
  readonly handle: Block | undefined;
@@ -67,11 +69,119 @@ export type BlockSnippetPayload<D = Record<string, any>> = {
67
69
  children: Snippet | null;
68
70
  };
69
71
  /**
70
- * Represents the payload for change operations on blocks and text.
71
- * Combines both text operations and block operations with prevention capability.
72
+ * The view's commands that are no single document write, each one prepared
73
+ * plan of them, with their payloads: a hook sees each by its name, then its
74
+ * planned steps as the writes they perform.
72
75
  */
73
- export type ChangePayload = {
76
+ export interface Commands {
77
+ /** A suggestion placed in the document (`edytor.suggestions`, `suggestion.accept()`). */
78
+ acceptSuggestion: {
79
+ suggestion: {
80
+ id: string;
81
+ at: ResolvedAt;
82
+ content: readonly JSONBlock[];
83
+ };
84
+ };
85
+ /**
86
+ * Find and replace (`plugins/find`): each match's text replaced by
87
+ * `replacement`, one plan, one undo step.
88
+ */
89
+ replaceMatches: {
90
+ matches: {
91
+ block: string;
92
+ offset: number;
93
+ length: number;
94
+ }[];
95
+ replacement: string;
96
+ };
97
+ /**
98
+ * A comment thread's anchor (`plugins/comments`): its `comment:<thread>`
99
+ * mark over each run of the text it was made on, one plan, one undo step.
100
+ */
101
+ addComment: {
102
+ thread: string;
103
+ runs: {
104
+ block: string;
105
+ offset: number;
106
+ length: number;
107
+ }[];
108
+ };
109
+ /**
110
+ * A text range dragged inside the editor and dropped at `to` (block
111
+ * offsets): its content placed at `to`, then the range deleted — or,
112
+ * with `copy` (Alt), only placed. Both are prepared before any write:
113
+ * hooks see the placement's planned steps and the deletion's, and a
114
+ * veto or a refusal of either writes nothing.
115
+ */
116
+ moveText: {
117
+ from: {
118
+ start: {
119
+ block: string;
120
+ offset: number;
121
+ };
122
+ end: {
123
+ block: string;
124
+ offset: number;
125
+ };
126
+ };
127
+ to: {
128
+ block: string;
129
+ offset: number;
130
+ };
131
+ copy: boolean;
132
+ };
133
+ /**
134
+ * A closing marker typed after marked-up text (`**bold**`): the mark
135
+ * set, the markers removed; `value` typed at `start` of the text.
136
+ */
137
+ inlineMarkdown: {
138
+ value: string;
139
+ start: number;
140
+ end: number;
141
+ };
142
+ /** A divider at the caret: its steps are the conversion, insertion or split it plans. */
143
+ insertDivider: Record<string, never>;
144
+ /** A table's row at `index`, one empty cell per column (`table.insert-row`). */
145
+ insertTableRow: {
146
+ index: number;
147
+ };
148
+ /** A table's rows, with their cells (`table.delete-row`). */
149
+ deleteTableRows: {
150
+ rows: Block[];
151
+ };
152
+ /** A table's column at `index`, an empty cell in every row (`table.insert-column`). */
153
+ insertTableColumn: {
154
+ index: number;
155
+ width?: number;
156
+ };
157
+ /** A table's column, by id or position, with its cells (`table.delete-column`). */
158
+ deleteTableColumn: {
159
+ column: string | number;
160
+ };
161
+ /** A table's column moved to position `to` (`table.move-column`). */
162
+ moveTableColumn: {
163
+ column: string | number;
164
+ to: number;
165
+ };
166
+ /** A table's rows moved to position `to` among its rows (`table.move-row`). */
167
+ moveTableRows: {
168
+ rows: Block[];
169
+ to: number;
170
+ };
171
+ /** The cell a row shows none of in `column`, created (`table.pad`). */
172
+ fillTableCell: {
173
+ row: string;
174
+ column: string | number;
175
+ };
176
+ }
177
+ /** A change a hook sees: its operation, its payload, the block (and text) it is about. */
178
+ type Change<K, P> = {
179
+ operation: K;
180
+ payload: P;
181
+ /** The block the operation names first (the root for none). */
74
182
  block: Block;
183
+ /** The text segment at the offset a text write names. */
184
+ text?: Text;
75
185
  /**
76
186
  * Veto the operation (and, with `cb`, run that in its place): records the
77
187
  * veto and returns, so the hook runs to its end; the first call decides.
@@ -79,21 +189,22 @@ export type ChangePayload = {
79
189
  prevent: Prevent;
80
190
  /**
81
191
  * The prepared command's effect (blocks created, removed, merged, moved,
82
- * retyped, text ranges written), on a command that is one document plan — a hook can refuse a command by what it would do.
192
+ * retyped, text ranges written) — a hook can refuse a command by what it
193
+ * would do. Its planned steps are shown after it, each as the write it
194
+ * performs.
83
195
  */
84
196
  effect?: PlanEffect;
85
- } & ({
86
- [K in keyof TextOperations]: {
87
- operation: K;
88
- text: Text;
89
- payload: TextOperations[K];
90
- };
91
- }[keyof TextOperations] | {
92
- [K in keyof BlockOperations]: {
93
- operation: K;
94
- payload: BlockOperations[K];
95
- };
96
- }[keyof BlockOperations]);
197
+ };
198
+ /**
199
+ * What `onBeforeOperation` receives: a document write under its name with
200
+ * its arguments (`payload`: `Parameters<DocumentWrites[K]>`), or a view
201
+ * command with its payload (`Commands`); `operation` narrows `payload`.
202
+ */
203
+ export type ChangePayload = {
204
+ [K in keyof DocumentWrites]: Change<K, Parameters<DocumentWrites[K]>>;
205
+ }[keyof DocumentWrites] | {
206
+ [K in keyof Commands]: Change<K, Commands[K]>;
207
+ }[keyof Commands];
97
208
  /**
98
209
  * What `onAfterOperation` receives: a {@link ChangePayload} without
99
210
  * `prevent` (the operation already ran). The `Omit` distributes over the
@@ -171,20 +282,6 @@ export type TriggerContext = TextRuleContext & {
171
282
  /** The text typed after the trigger's `char`. */
172
283
  query: string;
173
284
  };
174
- /** One row of a trigger's menu, for an `item` snippet. */
175
- export type TriggerItemPayload<T = unknown> = {
176
- item: T;
177
- /** The row's label (`label(item)`). */
178
- label: string;
179
- /** The row's element id: set it (`id={row.id}`) so the editor names the highlighted row. */
180
- id: string;
181
- /** It is the keyboard's row. */
182
- selected: boolean;
183
- /** Pick it. */
184
- pick: () => void;
185
- /** Make it the keyboard's row (hover). */
186
- select: () => void;
187
- };
188
285
  /**
189
286
  * A character typed at a text's start or after whitespace opens a menu at
190
287
  * the caret (`@` for people, `[[` for pages); the text typed after it is
@@ -208,14 +305,13 @@ export type Trigger<T = any> = {
208
305
  label?: (item: T) => string;
209
306
  /** A row's key, which keeps its markup across queries: default its `id`, else its label. Two rows may share one. */
210
307
  key?: (item: T) => string;
211
- /** Replace each row's markup. */
212
- item?: Snippet<[TriggerItemPayload<T>]>;
213
- /** The menu's accessible name (default: the view's `labels.triggerMenu`, `Suggestions`). */
214
- name?: string;
215
- /** The text shown when no row matches (default: the view's `labels.noResults`, `No results`). */
216
- empty?: string;
217
- /** The text shown while a search is pending and no row is shown (default: the view's `labels.searching`, `Searching…`). */
218
- searching?: string;
308
+ /**
309
+ * The menu's markup and its words; it renders while `controller.isOpen`,
310
+ * placed at the caret (without it, nothing shows). Its keys stay the
311
+ * editor's; keep its ARIA with `{@attach controller.popup}` on the list
312
+ * (name it with `aria-label`) and `{...controller.option(index)}` on each row.
313
+ */
314
+ menu?: Snippet<[TriggerMenuController<T>]>;
219
315
  /** Whether the menu may open in `block` (default: a block that is not void and not in a code block). */
220
316
  enabled?: (block: Block) => boolean;
221
317
  };
@@ -228,10 +324,6 @@ export type PluginDefinitions = {
228
324
  inlineBlocks?: Record<string, InlineBlockDefinition | Snippet<[InlineBlockSnippetPayload<any>]>>;
229
325
  hotkeys?: Partial<Record<HotKeyCombination, HotKey>>;
230
326
  commands?: EditorCommand[];
231
- /** Text typed at the caret that a rule replaces (markdown, `:smile:` → 😄). */
232
- inputRules?: InputRule[];
233
- /** Characters that open a menu of rows at the caret (`@` mentions). */
234
- triggers?: Trigger[];
235
327
  };
236
328
  /**
237
329
  * Plugin factory function type that creates plugin definitions and operations.
@@ -244,9 +336,8 @@ export type PluginOperations = {
244
336
  /** Called before an operation is executed */
245
337
  onBeforeOperation?: <C extends ChangePayload>(payload: C) => C['payload'] | void;
246
338
  /**
247
- * Called after an operation is executed: `dispatcher.last.status` is set
248
- * (its `value`, what a handle mutator returns, is recorded after this
249
- * hook); `operation` narrows `payload`.
339
+ * Called after an operation is executed: `dispatcher.last.status` is set;
340
+ * `operation` narrows `payload`.
250
341
  */
251
342
  onAfterOperation?: (payload: AfterOperationPayload) => void;
252
343
  /** Called when the editor value changes: the same `JSONDoc` shape `<Edytor value>` takes. */
@@ -401,6 +492,12 @@ export type BlockDefinition = {
401
492
  * Adopted by the document; checked in development against the snippet.
402
493
  */
403
494
  rendersContent?: boolean;
495
+ /**
496
+ * The files the kind takes (the image's `image/*`, the file block's any):
497
+ * with the uploads plugin listed, an empty block's Upload sends one and a
498
+ * pasted or dropped file becomes a block of this kind (`media.files`).
499
+ */
500
+ upload?: KindUpload;
404
501
  /**
405
502
  * A list-like kind (Notion's bullets, numbers, to-dos, toggles): Enter at
406
503
  * the start or end of a non-empty block opens another block of this kind
@@ -412,10 +509,18 @@ export type BlockDefinition = {
412
509
  /**
413
510
  * A container kind (Notion's toggles, callouts, quotes): its content is a
414
511
  * header over its children. Enter at the end of a header with children
415
- * opens a first child of `defaultChild`; a closed `details` header (the
512
+ * opens a first child of `defaultChild`, as at the end of an open
513
+ * `details` header without children; a closed `details` header (the
416
514
  * browser owns `open`) opens a sibling after instead, children untouched.
417
515
  */
418
516
  container?: boolean;
517
+ /**
518
+ * A container whose children are a body that shows even while it is
519
+ * empty (Notion's callout: a title over its content): Enter at the end of
520
+ * its header opens its first child, as an open toggle's does, and a paste
521
+ * there leads that body. Needs `container`.
522
+ */
523
+ body?: boolean;
419
524
  /**
420
525
  * The type a new child of this block takes by default (Enter inside a
421
526
  * child, a split, an island merged out into it). Adopted by the
@@ -482,17 +587,19 @@ export type BlockDefinition = {
482
587
  block: Block;
483
588
  }) => void;
484
589
  /** Normalize block content
485
- * Called at the end of the transaction of each operation on the block: the
486
- * block is an id-only handle whose reads show the operation's writes.
487
- * If you return a function, it runs in the same transaction.
590
+ * Called at the end of the transaction of each operation that wrote the
591
+ * block's content: the block is an id-only handle whose reads show the
592
+ * operation's writes. If you return a function, it runs in the same
593
+ * transaction (its writes are the view's operations).
488
594
  */
489
595
  normalizeContent?: (payload: {
490
596
  block: Block;
491
597
  }) => (() => void) | void;
492
598
  /** Normalize block children
493
- * Called at the end of the transaction of each operation on the block: the
494
- * block is an id-only handle whose reads show the operation's writes.
495
- * If you return a function, it runs in the same transaction.
599
+ * Called at the end of the transaction of each operation that changed the
600
+ * block's children: the block is an id-only handle whose reads show the
601
+ * operation's writes. If you return a function, it runs in the same
602
+ * transaction (its writes are the view's operations).
496
603
  */
497
604
  normalizeChildren?: (payload: {
498
605
  block: Block;
@@ -502,7 +609,7 @@ export type BlockDefinition = {
502
609
  export type InlineBlockView<D = Record<string, any>> = {
503
610
  readonly id: string;
504
611
  readonly type: string;
505
- readonly data: D;
612
+ readonly data: Readonly<D>;
506
613
  readonly selected: boolean;
507
614
  /** The atom's id-only handle; a suggested atom has none. */
508
615
  readonly handle: InlineBlock | undefined;
@@ -1,13 +1,22 @@
1
- export type DomSelectionSnapshot = Pick<Selection, 'anchorNode' | 'anchorOffset' | 'direction' | 'focusNode' | 'focusOffset' | 'isCollapsed' | 'rangeCount' | 'toString'> & {
1
+ export type DomSelectionSnapshot = Pick<Selection, 'anchorNode' | 'anchorOffset' | 'focusNode' | 'focusOffset' | 'isCollapsed' | 'rangeCount'> & {
2
2
  getRangeAt: (index: number) => Range;
3
- nativeSelection: Selection | null;
4
- type?: string;
5
3
  };
6
4
  export declare const getDomSelection: (node?: Node | null) => Selection | null;
7
5
  export declare const getActiveElement: (node?: Node | null) => Element | null;
8
6
  export declare const clearDomSelection: (node?: Node | null) => void;
7
+ /**
8
+ * The caret point under (`x`, `y`): `caretPositionFromPoint` (Firefox,
9
+ * Chromium 128, Safari 26.2), else `caretRangeFromPoint` (the supported
10
+ * Chromium and Safari before those).
11
+ */
12
+ export declare const caretAtPoint: (doc: Document, x: number, y: number) => {
13
+ node: Node;
14
+ offset: number;
15
+ } | null;
16
+ /** A range in `node`'s document (a node always has one). */
9
17
  export declare const createDomRange: (node: Node) => Range;
10
- export declare const createDomSelectionSnapshotFromRange: (range: Range, nativeSelection?: Selection | null) => DomSelectionSnapshot;
18
+ /** A snapshot of one range, forward. */
19
+ export declare const createDomSelectionSnapshotFromRange: (range: Range) => DomSelectionSnapshot;
11
20
  /**
12
21
  * Scroll the caret into view after a programmatic selection write.
13
22
  *