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
@@ -1,9 +1,25 @@
1
1
  import { getOwnRowBottom, isBeside, nestIndent, ownRow, ownTextRow } from './geometry.js';
2
- /** Notion's drop bar: 4px of translucent blue. */
3
- const DROP_INDICATOR_COLOR = 'rgba(35, 131, 226, 0.43)';
4
- /** The nest backdrop's theming variable (its defaults are in `BlockHandle.svelte`). */
5
- const BACKDROP_COLOR = '--edytor-drop-backdrop-color';
2
+ /** Notion's drop bar: 4px (its height in `BlockHandles.svelte`, its look the app's). */
6
3
  const BAR = 4;
4
+ /** Place `element` at `box`, relative to the layer (`origin`). */
5
+ const place = (element, box, origin) => Object.assign(element.style, {
6
+ left: `${box.left - origin.left}px`,
7
+ top: `${box.top - origin.top}px`,
8
+ width: `${box.width}px`,
9
+ ...(box.height === undefined ? {} : { height: `${box.height}px` })
10
+ });
11
+ /**
12
+ * The theme variable `name` as `from` (a block) inherits it, read now, and
13
+ * its write on an element of the overlay (which is not inside the editor):
14
+ * unset there without one.
15
+ */
16
+ const themed = (from, name) => {
17
+ const value = from.ownerDocument.defaultView
18
+ ?.getComputedStyle(from)
19
+ .getPropertyValue(name)
20
+ .trim();
21
+ return (element) => value ? element.style.setProperty(name, value) : element.style.removeProperty(name);
22
+ };
7
23
  /**
8
24
  * Notion's nest backdrop: a soft rounded tint over the future parent's own
9
25
  * row, drawn by the overlay layer under the drop line — never a style on the
@@ -76,17 +92,18 @@ export class DropIndicator {
76
92
  // How many blocks move, as data only: the bar shows no badge.
77
93
  if (count > 1)
78
94
  overlay.dataset.count = String(count);
79
- const color = document.defaultView
80
- ?.getComputedStyle(placement.node)
81
- .getPropertyValue('--edytor-drop-indicator-color')
82
- .trim();
83
- overlay.style.setProperty('--edytor-drop-indicator-color', color || DROP_INDICATOR_COLOR);
95
+ themed(placement.node, '--edytor-drop-indicator-color')(overlay);
84
96
  const layer = this.edytor.overlay.layer;
85
97
  layer?.append(overlay);
86
98
  this.#overlay = overlay;
87
99
  const measure = (origin) => {
88
- const writes = [this.#position(origin), this.#positionBackdrop(placement, origin)];
89
- return () => writes.forEach((write) => write?.());
100
+ const bar = this.#bar(placement);
101
+ const backdrop = this.#positionBackdrop(placement);
102
+ return () => {
103
+ if (bar)
104
+ place(overlay, bar, origin);
105
+ backdrop?.(origin);
106
+ };
90
107
  };
91
108
  // Placed at once (it must not show at the layer's origin for a frame), then per frame.
92
109
  if (layer)
@@ -117,12 +134,11 @@ export class DropIndicator {
117
134
  return parent;
118
135
  }
119
136
  /**
120
- * Layer-relative geometry of the nest backdrop (`backdrop`): the future
121
- * parent's box (`nestParent`, read per frame: a peer's change may change
122
- * it), down to where its first child begins; hidden when the placement
123
- * does not nest.
137
+ * The nest backdrop's write (`backdrop`): over the future parent's box
138
+ * (`nestParent`, read per frame: a peer's change may change it), down to
139
+ * where its first child begins; hidden when the placement does not nest.
124
140
  */
125
- #positionBackdrop(placement, origin) {
141
+ #positionBackdrop(placement) {
126
142
  const backdrop = this.#backdrop;
127
143
  if (!backdrop)
128
144
  return;
@@ -131,43 +147,28 @@ export class DropIndicator {
131
147
  if (!parent || !node?.isConnected)
132
148
  return () => delete backdrop.dataset.shown;
133
149
  const rect = ownRow(node);
134
- const color = node.ownerDocument.defaultView
135
- ?.getComputedStyle(node)
136
- .getPropertyValue(BACKDROP_COLOR)
137
- .trim();
138
- return () => {
150
+ const color = themed(node, '--edytor-drop-backdrop-color');
151
+ return (origin) => {
139
152
  backdrop.dataset.blockId = parent.id;
140
- if (color)
141
- backdrop.style.setProperty(BACKDROP_COLOR, color);
142
- else
143
- backdrop.style.removeProperty(BACKDROP_COLOR);
144
- Object.assign(backdrop.style, {
145
- left: `${rect.left - origin.left}px`,
146
- top: `${rect.top - origin.top}px`,
147
- width: `${rect.width}px`,
148
- height: `${rect.height}px`
149
- });
153
+ color(backdrop);
154
+ place(backdrop, rect, origin);
150
155
  backdrop.dataset.shown = 'true';
151
156
  };
152
157
  }
153
158
  /**
154
- * Layer-relative geometry of Notion's plain bar: centered between the
155
- * two siblings of the slot, or — inside the target — where the child lands,
156
- * indented to the child's column.
159
+ * Notion's plain bar: centered between the two siblings of the slot, or
160
+ * — inside the target — where the child lands, indented to the child's
161
+ * column; beside a block or a column, vertical (`#beside`).
157
162
  */
158
- #position(origin) {
159
- const placement = this.placement;
160
- const overlay = this.#overlay;
161
- if (!placement || !overlay)
162
- return;
163
+ #bar(placement) {
163
164
  if (isBeside(placement.position))
164
- return this.#positionBeside(placement, origin);
165
+ return this.#beside(placement);
165
166
  const rect = placement.node.getBoundingClientRect();
166
- const place = (left, width, center) => () => {
167
- overlay.style.left = `${left - origin.left}px`;
168
- overlay.style.width = `${width}px`;
169
- overlay.style.top = `${center - BAR / 2 - origin.top}px`;
170
- };
167
+ const at = (left, width, center) => ({
168
+ left,
169
+ width,
170
+ top: center - BAR / 2
171
+ });
171
172
  if (placement.position === 'inside') {
172
173
  // Where the child lands (the gap after the last visible child, else after
173
174
  // the target's own row), from the child's indent to the target's right edge.
@@ -180,7 +181,7 @@ export class DropIndicator {
180
181
  const end = shown ? shown.bottom : getOwnRowBottom(placement.node);
181
182
  const land = next && next.top >= end ? (end + next.top) / 2 : end + 4;
182
183
  const left = shown && lastNode ? ownTextRow(lastNode).left : row.left + nestIndent(placement.node);
183
- return place(left, Math.max(16, rect.right - left), land);
184
+ return at(left, Math.max(16, rect.right - left), land);
184
185
  }
185
186
  const siblings = placement.target.parent?.children;
186
187
  const index = placement.target.index + (placement.position === 'after' ? 1 : 0);
@@ -189,10 +190,9 @@ export class DropIndicator {
189
190
  if (previous && next && previous.bottom <= next.top) {
190
191
  const left = Math.min(previous.left, next.left);
191
192
  const width = Math.max(previous.right, next.right) - left;
192
- return place(left, width, (previous.bottom + next.top) / 2);
193
+ return at(left, width, (previous.bottom + next.top) / 2);
193
194
  }
194
- const edge = placement.position === 'before' ? rect.top : rect.bottom;
195
- return place(rect.left, rect.width, edge);
195
+ return at(rect.left, rect.width, placement.position === 'before' ? rect.top : rect.bottom);
196
196
  }
197
197
  /**
198
198
  * A beside placement's bar: vertical, 4px, at the edge of the block it
@@ -200,10 +200,9 @@ export class DropIndicator {
200
200
  * when it adds a column to a layout, the layout's height, in the middle
201
201
  * of the gap to the neighbouring column, else at the layout's edge.
202
202
  */
203
- #positionBeside(placement, origin) {
204
- const overlay = this.#overlay;
203
+ #beside(placement) {
205
204
  const outer = this.ctx.besideOf(placement.target);
206
- if (!overlay || !outer.node)
205
+ if (!outer.node)
207
206
  return;
208
207
  const right = placement.position === 'right';
209
208
  const at = this.ctx.layoutOf(outer);
@@ -224,14 +223,7 @@ export class DropIndicator {
224
223
  box = outer.node.getBoundingClientRect();
225
224
  edge = right ? box.right : box.left;
226
225
  }
227
- return () => {
228
- Object.assign(overlay.style, {
229
- left: `${edge - BAR / 2 - origin.left}px`,
230
- top: `${box.top - origin.top}px`,
231
- width: `${BAR}px`,
232
- height: `${box.height}px`
233
- });
234
- };
226
+ return { left: edge - BAR / 2, top: box.top, width: BAR, height: box.height };
235
227
  }
236
228
  /** Hide the bar (the backdrop fades out where it was) and forget the placement. */
237
229
  clear = () => {
@@ -14,7 +14,8 @@ export type DropPlacement = {
14
14
  blocked?: boolean;
15
15
  };
16
16
  export declare const isBeside: (position: BlockMovePosition) => position is "left" | "right";
17
- export declare const getOwnRowBottom: (node: HTMLElement) => number;
17
+ /** Where a block's own row ends: where its first shown child begins, else its box's (`rect`) bottom. */
18
+ export declare const getOwnRowBottom: (node: HTMLElement, rect?: DOMRect) => number;
18
19
  /** A block's own row: its box down to where its first child begins. */
19
20
  export declare const ownRow: (node: HTMLElement) => DOMRect;
20
21
  /** The first line of a block's own text (not a child's), or the block's box. */
@@ -26,3 +27,47 @@ export declare const ownTextRow: (node: HTMLElement) => DOMRect;
26
27
  */
27
28
  export declare const NEST_INDENT = 24;
28
29
  export declare const nestIndent: (node: HTMLElement) => number;
30
+ /**
31
+ * Whether `y` is over the hint of `node`'s empty body (`body.hint`, a kind's
32
+ * `data-edytor-empty-body` element: an open toggle's, a callout's): a drop
33
+ * there goes inside the block.
34
+ */
35
+ export declare const overEmptyBody: (node: HTMLElement, y: number) => boolean;
36
+ /**
37
+ * How far a block drag reaches past the editor's content column (`dnd.reach`):
38
+ * past the handle column on the left and past the content's right edge, in
39
+ * px, the `--edytor-drop-reach` the root inherits, else this default.
40
+ */
41
+ export declare const DROP_REACH = 240;
42
+ /**
43
+ * The beside bands' share of each margin, nearest the content: within it a
44
+ * document with a layout kind offers the band (a new column); past it, up
45
+ * to the reach, the row's reorder.
46
+ */
47
+ export declare const BESIDE_MARGIN = 120;
48
+ /** Which margin of a block drag a pointer is in, and what answers there (`marginAt`). */
49
+ export type DropMargin = {
50
+ side: 'left' | 'right';
51
+ /**
52
+ * `handles`: the handle column, the row's reorder; `beside`: a beside
53
+ * band's place (the reorder without a band to offer); `reorder`: the row's
54
+ * reorder.
55
+ */
56
+ zone: 'handles' | 'beside' | 'reorder';
57
+ };
58
+ /**
59
+ * Where `x` falls outside the editor's content column (`start`…`end`, its
60
+ * edges inside): left of it, the handle column (`handles` px wide) at any
61
+ * reach; past that column on the left, and past `end` on the right, the
62
+ * first `BESIDE_MARGIN` px (at most `reach`) a beside band's place, the rest
63
+ * of `reach` the reorder; `null` inside the content or past the reach
64
+ * (`dnd.reach`).
65
+ */
66
+ export declare const marginAt: (x: number, { start, end, handles, reach }: {
67
+ start: number;
68
+ end: number;
69
+ handles: number;
70
+ reach: number;
71
+ }) => DropMargin | null;
72
+ /** The drop reach a style gives: its `--edytor-drop-reach` in px (0 or more), else `DROP_REACH`. */
73
+ export declare const dropReach: (style: CSSStyleDeclaration | undefined) => number;
@@ -1,6 +1,6 @@
1
1
  export const isBeside = (position) => position === 'left' || position === 'right';
2
- export const getOwnRowBottom = (node) => {
3
- const rect = node.getBoundingClientRect();
2
+ /** Where a block's own row ends: where its first shown child begins, else its box's (`rect`) bottom. */
3
+ export const getOwnRowBottom = (node, rect = node.getBoundingClientRect()) => {
4
4
  // Block nodes wrap their children in the DOM; the parent's placement
5
5
  // bands belong to its own row, ending where the first child begins.
6
6
  const firstChild = node.querySelector('[data-edytor-block="true"]');
@@ -17,10 +17,11 @@ export const ownRow = (node) => {
17
17
  const rect = node.getBoundingClientRect();
18
18
  return new DOMRect(rect.left, rect.top, rect.width, Math.max(0, getOwnRowBottom(node) - rect.top));
19
19
  };
20
+ /** The first element matching `selector` in a block's own markup (not a child's). */
21
+ const own = (node, selector) => Array.from(node.querySelectorAll(selector)).find((element) => element.closest('[data-edytor-block="true"]') === node);
20
22
  /** The first line of a block's own text (not a child's), or the block's box. */
21
23
  export const ownTextRow = (node) => {
22
- const text = Array.from(node.querySelectorAll('[data-edytor-text="true"]')).find((element) => element.closest('[data-edytor-block="true"]') === node);
23
- const row = text?.getClientRects()[0];
24
+ const row = own(node, '[data-edytor-text="true"]')?.getClientRects()[0];
24
25
  return row && row.height > 0 ? row : node.getBoundingClientRect();
25
26
  };
26
27
  /**
@@ -36,3 +37,49 @@ export const nestIndent = (node) => {
36
37
  .trim();
37
38
  return value?.endsWith('px') ? parseFloat(value) : NEST_INDENT;
38
39
  };
40
+ /**
41
+ * Whether `y` is over the hint of `node`'s empty body (`body.hint`, a kind's
42
+ * `data-edytor-empty-body` element: an open toggle's, a callout's): a drop
43
+ * there goes inside the block.
44
+ */
45
+ export const overEmptyBody = (node, y) => {
46
+ const rect = own(node, '[data-edytor-empty-body]')?.getBoundingClientRect();
47
+ return !!rect && rect.height > 0 && y >= rect.top && y <= rect.bottom;
48
+ };
49
+ /**
50
+ * How far a block drag reaches past the editor's content column (`dnd.reach`):
51
+ * past the handle column on the left and past the content's right edge, in
52
+ * px, the `--edytor-drop-reach` the root inherits, else this default.
53
+ */
54
+ export const DROP_REACH = 240;
55
+ /**
56
+ * The beside bands' share of each margin, nearest the content: within it a
57
+ * document with a layout kind offers the band (a new column); past it, up
58
+ * to the reach, the row's reorder.
59
+ */
60
+ export const BESIDE_MARGIN = 120;
61
+ /**
62
+ * Where `x` falls outside the editor's content column (`start`…`end`, its
63
+ * edges inside): left of it, the handle column (`handles` px wide) at any
64
+ * reach; past that column on the left, and past `end` on the right, the
65
+ * first `BESIDE_MARGIN` px (at most `reach`) a beside band's place, the rest
66
+ * of `reach` the reorder; `null` inside the content or past the reach
67
+ * (`dnd.reach`).
68
+ */
69
+ export const marginAt = (x, { start, end, handles, reach }) => {
70
+ if (x >= start && x <= end)
71
+ return null;
72
+ if (x < start && x >= start - handles)
73
+ return { side: 'left', zone: 'handles' };
74
+ const side = x < start ? 'left' : 'right';
75
+ const out = side === 'left' ? start - handles - x : x - end;
76
+ if (out > reach)
77
+ return null;
78
+ return { side, zone: out <= Math.min(BESIDE_MARGIN, reach) ? 'beside' : 'reorder' };
79
+ };
80
+ /** The drop reach a style gives: its `--edytor-drop-reach` in px (0 or more), else `DROP_REACH`. */
81
+ export const dropReach = (style) => {
82
+ const value = style?.getPropertyValue('--edytor-drop-reach').trim();
83
+ const px = value?.endsWith('px') ? parseFloat(value) : NaN;
84
+ return Number.isFinite(px) && px >= 0 ? px : DROP_REACH;
85
+ };
@@ -1,22 +1,24 @@
1
1
  import type { Snippet } from 'svelte';
2
+ import type { Attachment } from 'svelte/attachments';
2
3
  import type { EditorCommand } from '../../plugins.js';
3
4
  import type { Block } from '../../block/block.svelte.js';
4
5
  import type { Edytor } from '../../edytor.svelte.js';
5
6
  import { type KindRow } from '../../kinds.js';
6
- import type { Popup } from '../../surface/popups.svelte.js';
7
- import { type BlockMenuLabels, type PartialLabels } from '../../labels.js';
8
7
  import { BLOCK_COLORS, type BlockColorField } from '../../block/colors.js';
9
8
  export type BlockMenuOptions = {
10
9
  /** A link to the block, for "Copy link to block" (the row is hidden without it). */
11
10
  linkTo?: (block: Block) => string;
12
11
  /**
13
- * Replace the menu; it renders while `controller.isOpen`, placed beside
14
- * the handle (mark your panel `data-edytor-block-menu` for placement).
15
- * The controller runs every action; `close()` returns the caret.
12
+ * The menu's markup and its words; it renders while `controller.isOpen`, placed beside
13
+ * the handle (mark your panel `data-edytor-block-menu` for placement;
14
+ * without it, nothing shows).
15
+ * The controller runs every action; `close()` returns the caret. Keep
16
+ * the keyboard and the ARIA with its attachments: `{@attach
17
+ * controller.keys}` on the field that holds the keyboard, `{@attach
18
+ * controller.popup}` on the menu, `{...controller.option(index)}` on each
19
+ * row, `{@attach controller.flyoutMenu}` on an open flyout.
16
20
  */
17
21
  menu?: Snippet<[BlockMenuController]>;
18
- /** The words the menu shows (its actions, search field, headings), over the English ones. */
19
- labels?: PartialLabels<'blockMenu'>;
20
22
  };
21
23
  export type BlockMenuAction = {
22
24
  id: string;
@@ -35,7 +37,7 @@ export type BlockMenuAction = {
35
37
  export type BlockMenuColor = {
36
38
  /** `color.<name>` or `background.<name>` (`color.default`, `background.default`). */
37
39
  id: string;
38
- /** Its words in the menu's labels (`colorText`, `colorBackground`): "Red text", "Red background", "Default text". */
40
+ /** Its words in the view's labels (`colorText`, `colorBackground`): "Red text", "Red background", "Default text". */
39
41
  label: string;
40
42
  field: BlockColorField;
41
43
  value: (typeof BLOCK_COLORS)[number] | null;
@@ -53,7 +55,7 @@ export declare const colorQueryRow: (row: BlockMenuColor) => {
53
55
  * listed once a query names them (`searchOnly`): each paints the caret's
54
56
  * block, as the block menu's Color does (`setBlockColor`).
55
57
  */
56
- export declare const colorCommands: (edytor: Edytor, labels: BlockMenuLabels) => EditorCommand[];
58
+ export declare const colorCommands: (edytor: Edytor) => EditorCommand[];
57
59
  export declare class BlockMenuController {
58
60
  #private;
59
61
  private edytor;
@@ -69,13 +71,12 @@ export declare class BlockMenuController {
69
71
  blocks: Block[];
70
72
  anchor: HTMLElement | null;
71
73
  query: string;
72
- selectedIndex: number;
74
+ /** The keyboard's row. */
75
+ index: number;
73
76
  /** The open flyout: the kinds (`turn`), the colours (`color`), or none. */
74
77
  flyout: false | "color" | "turn";
75
78
  /** The keyboard's row in the open flyout. */
76
79
  flyoutIndex: number;
77
- /** The words the menu shows (the plugin's `labels`): read them in a custom `menu`. */
78
- readonly labels: BlockMenuLabels;
79
80
  constructor(edytor: Edytor, options?: BlockMenuOptions);
80
81
  get isOpen(): boolean;
81
82
  /** The editor is readonly: the menu closes. */
@@ -85,8 +86,41 @@ export declare class BlockMenuController {
85
86
  get flyoutId(): string;
86
87
  /** A row's element id (page-unique; a flyout's with `flyout`), for `aria-activedescendant`. */
87
88
  rowId: (row: BlockMenuAction | KindRow | BlockMenuColor, flyout?: boolean) => string;
88
- /** Publish the open menu to the view's root (`edytor.popups`), or withdraw it with `null`. */
89
- publish: (popup: Popup | null) => void;
89
+ /**
90
+ * The menu element (`{@attach controller.popup}`, the one with the rows):
91
+ * it takes the menu's id, its `menu` role and name unless it has its
92
+ * own, keeps the focus where it is on a press (a field takes its own),
93
+ * and is published to the view's root (`edytor.popups`) while it is in
94
+ * the page, the grip that opened it told so.
95
+ */
96
+ popup: Attachment<HTMLElement>;
97
+ /**
98
+ * An open flyout (`{@attach controller.flyoutMenu}`, named by your
99
+ * markup): its id, `menu` role, the overlay's placement beside the menu,
100
+ * and presses that keep the focus.
101
+ */
102
+ flyoutMenu: Attachment<HTMLElement>;
103
+ /**
104
+ * The element that holds the keyboard (`{@attach controller.keys}`: the
105
+ * search field): focused when it mounts, it takes every key of the menu
106
+ * (the arrows, Home and End walk the rows, → opens a row's flyout and ←
107
+ * closes it, Enter runs the row, Delete removes the blocks while the
108
+ * query is empty, Escape closes the flyout, then the menu), and names
109
+ * the open menu and its highlighted row (`aria-controls`,
110
+ * `aria-activedescendant`, once that row is in the page).
111
+ */
112
+ keys: Attachment<HTMLElement>;
113
+ /**
114
+ * The attachment of the row at `index` (of the open flyout's rows with
115
+ * `flyout`): `{@attach controller.option(index)}` on its element.
116
+ * Its id, its role (`menuitem`, a switch's `menuitemcheckbox`, a colour's
117
+ * `menuitemradio` with its ✓ as `aria-checked`, a flyout's opener with
118
+ * `aria-haspopup` and `aria-expanded`); the keyboard's row scrolls into
119
+ * view. Its look is the markup's (`index`, `flyoutIndex`).
120
+ */
121
+ option: (index: number, flyout?: boolean) => Attachment<HTMLElement>;
122
+ /** The search field typed in: the rows match `query`, the first one highlighted, no flyout open. */
123
+ search(query: string): void;
90
124
  /** What Delete and Turn into act on: `blocks`, a list or a code block with its subtree (`selectedMembers`). */
91
125
  get members(): Block[];
92
126
  /** The Turn into rows: the kinds, then the commands that turn `blocks` into something (`turnCommands`). */
@@ -102,11 +136,6 @@ export declare class BlockMenuController {
102
136
  /** The row naming the open block. */
103
137
  get currentKind(): KindRow | undefined;
104
138
  get actions(): BlockMenuAction[];
105
- /**
106
- * With a query, the kinds it names join the list (Notion's "Turn into"
107
- * results), matched as the slash menu matches them (`matchesQuery`).
108
- */
109
- get matchingKinds(): KindRow[];
110
139
  /**
111
140
  * With a query, the colours it names join the list after the kinds
112
141
  * (Notion's "Color" results: `red` lists "Red text" and "Red background"),
@@ -130,13 +159,13 @@ export declare class BlockMenuController {
130
159
  * closes and the blocks stay selected, as in Notion.
131
160
  */
132
161
  paint(row: BlockMenuColor): void;
133
- duplicate(block: Block): void;
134
162
  /**
135
- * Duplicate several blocks as one undo step, each copy after its block (a
136
- * block inside another of them is copied with it; a vetoed one is skipped,
137
- * `dispatcher.each`); the copies are selected.
163
+ * Duplicate `blocks` as one undo step, each copy after its block (a
164
+ * block inside another of them is copied with it; a vetoed one is
165
+ * skipped, `dispatcher.each`); the copies are selected (`select`), else
166
+ * the first copy takes the caret (refused: its block keeps it).
138
167
  */
139
- duplicateAll(blocks: Block[]): void;
168
+ duplicate(blocks: Block[], select: boolean): void;
140
169
  /**
141
170
  * Delete the open blocks' `members` (a list with its items) as the
142
171
  * keyboard's block delete does (`deleteSelectedBlocks`):
@@ -152,10 +181,12 @@ export declare class BlockMenuController {
152
181
  */
153
182
  get linked(): Block | undefined;
154
183
  copyLink(): Promise<void>;
155
- /** Run the keyboard row (or open its flyout). */
156
- runSelected(): void;
157
- /** Run the open flyout's keyboard row: convert to its kind, or paint its colour. */
158
- runFlyout(): void;
184
+ /**
185
+ * Run a row of the menu or of its open flyout (a click; Enter runs the
186
+ * keyboard's): paint a colour, convert to a kind, open an action's
187
+ * flyout or run it.
188
+ */
189
+ run(row: BlockMenuAction | KindRow | BlockMenuColor | undefined): void;
159
190
  /**
160
191
  * Open a flyout on its first row (keyboard or mouse): the "Turn into"
161
192
  * kinds (default) or the colours; that flyout already open stays as it