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,8 +1,8 @@
1
- import { englishLabels } from '../../labels.js';
2
- import { isLonePress, takeKeys } from '../../events/onFocus.js';
3
- import { imageAlignOf, imageAltOf, imageWidthOf, MIN_IMAGE_WIDTH } from './image.js';
1
+ import { BandDrag } from '../bands.svelte.js';
2
+ import { layerBox, pin, sameValues } from '../../surface/overlay.js';
3
+ import { imageAlignOf, imageWidthOf, MIN_IMAGE_WIDTH } from './image.js';
4
4
  /** The image element of a shown image block (none while it uploads); an image holds no block. */
5
- const imageOf = (node) => node?.querySelector('[data-edytor-image]:not([data-edytor-image-uploading]) > img') ?? null;
5
+ const imageOf = (node) => node?.querySelector('[data-edytor-image] > img') ?? null;
6
6
  /**
7
7
  * The image chrome (Notion's), in the overlay: on the image under
8
8
  * the pointer of an editable view, a resize handle on each side and a
@@ -18,24 +18,27 @@ const imageOf = (node) => node?.querySelector('[data-edytor-image]:not([data-edy
18
18
  */
19
19
  export class ImageControls {
20
20
  edytor;
21
- labels;
22
21
  /** The image block under the pointer. */
23
22
  hovered = $state(null);
24
- /** The image whose alt field is open: the chrome stays on it. */
25
- editing = $state(null);
23
+ /** The image the toolbar holds (its alt field is open): the chrome stays on it. @internal */
24
+ held = $state(null);
26
25
  /** The measured box of the image the chrome is on. */
27
26
  box = $state(null);
28
- /** The handle being dragged. */
29
- drag = $state(null);
30
- /** The dragged image's width at the pointer (view only). */
27
+ /** The dragged image's width at the pointer (view only). @internal */
31
28
  preview = $state.raw(null);
32
- /** Ends the drag in progress without a write. */
33
- #cancel = null;
34
- constructor(edytor,
35
- /** The words the chrome shows (the plugin's `labels`). */
36
- labels = englishLabels.image) {
29
+ /** The handles' gesture (a resize band's: press, view-only preview, one write). @internal */
30
+ band;
31
+ /** The view's image toolbar, when its plugin is listed. @internal */
32
+ toolbar;
33
+ constructor(
34
+ /** @internal */
35
+ edytor) {
37
36
  this.edytor = edytor;
38
- this.labels = labels;
37
+ this.band = new BandDrag(edytor);
38
+ }
39
+ /** The handle being dragged. */
40
+ get drag() {
41
+ return this.band.drag;
39
42
  }
40
43
  /** The view is readonly (reactive). */
41
44
  get readonly() {
@@ -43,7 +46,7 @@ export class ImageControls {
43
46
  }
44
47
  /** A text selection is in progress: the chrome takes no pointer. */
45
48
  get selecting() {
46
- return this.drag === null && this.edytor.selection.dragging;
49
+ return this.band.selecting;
47
50
  }
48
51
  /** The image block that is the whole block selection, if any (reactive): the keyboard's image. */
49
52
  get selected() {
@@ -58,16 +61,16 @@ export class ImageControls {
58
61
  * edited, the hovered one, else the selected one (no pointer needed).
59
62
  */
60
63
  get target() {
61
- return this.drag?.id ?? this.editing ?? this.hovered ?? this.selected;
64
+ return this.drag?.id ?? this.held ?? this.hovered ?? this.selected;
62
65
  }
63
66
  /** Whether the chrome shows: over an image of an editable view, or while a handle drags. */
64
67
  get shown() {
65
68
  return this.box !== null && (this.drag !== null || !this.edytor.readonly);
66
69
  }
67
- /** An image's width as shown, in px: the drag's preview while a handle drags it, else `data.width`. */
70
+ /** An image's width as shown, in px: the drag's preview while a handle drags it, else `data.width`. @internal */
68
71
  width = (id, data) => (id !== undefined && this.preview?.id === id ? this.preview.width : undefined) ??
69
72
  imageWidthOf(data);
70
- /** The pointer is over `target`: the image block holding it, if any. */
73
+ /** The pointer is over `target`: the image block holding it, if any. @internal */
71
74
  hover = (target) => {
72
75
  const frame = target?.closest?.('[data-edytor-image]');
73
76
  const block = frame?.closest('[data-edytor-block="true"]');
@@ -77,7 +80,7 @@ export class ImageControls {
77
80
  this.hovered = id;
78
81
  this.edytor.overlay.invalidate();
79
82
  };
80
- /** The pointer left for `to`: the chrome stays while it is over the editor's overlay. */
83
+ /** The pointer left for `to`: the chrome stays while it is over the editor's overlay. @internal */
81
84
  leave = (to) => {
82
85
  const node = to instanceof Node ? to : null;
83
86
  if (node && this.edytor.overlay.layer?.contains(node))
@@ -87,121 +90,38 @@ export class ImageControls {
87
90
  this.hovered = null;
88
91
  this.edytor.overlay.invalidate();
89
92
  };
90
- /** The overlay measure: the target image's box. */
93
+ /** The overlay measure: the target image's box. @internal */
91
94
  measure = (host, origin) => {
92
95
  const id = this.target;
93
96
  const block = id ? this.edytor.idToBlock.get(id) : undefined;
94
- const img = imageOf(block?.node);
95
- const rect = img?.isConnected ? img.getBoundingClientRect() : null;
96
- const box = id && block && rect
97
- ? {
98
- id,
99
- x: rect.left - origin.left,
100
- y: rect.top - origin.top,
101
- width: rect.width,
102
- height: rect.height,
103
- align: imageAlignOf(block.data)
104
- }
105
- : null;
97
+ const rect = layerBox(imageOf(block?.node), origin);
98
+ const box = id && block && rect ? { id, ...rect, align: imageAlignOf(block.data) } : null;
106
99
  return () => {
107
100
  // Layer-relative, as the rest of the overlay's chrome.
108
- Object.assign(host.style, { position: 'absolute', left: '0px', top: '0px' });
109
- if (!sameBox(box, this.box))
101
+ pin(host);
102
+ if (!sameValues(box, this.box))
110
103
  this.box = box;
111
- if (!box && this.editing === id)
112
- this.editing = null;
104
+ if (!box && this.held === id)
105
+ this.held = null;
113
106
  };
114
107
  };
115
- /** Measure again in the overlay's next frame. */
108
+ /** Measure again in the overlay's next frame. @internal */
116
109
  invalidate = () => this.edytor.overlay.invalidate();
117
- /** Set the target image's alignment: one `patchData` command. */
118
- align = (align) => {
119
- const block = this.#block();
120
- if (block && imageAlignOf(block.data) !== align)
121
- block.data.align = align;
122
- };
123
- /** The target image's alt text. */
124
- get alt() {
125
- return imageAltOf(this.#block()?.data);
126
- }
127
- /** Write the alt text as it is typed: the dispatcher groups the keystrokes into one step. */
128
- setAlt = (alt) => {
129
- const block = this.#block();
130
- if (block && imageAltOf(block.data) !== alt)
131
- block.data.alt = alt;
132
- };
133
- /** Open (or close) the alt field of the target image. */
134
- toggleAlt = () => {
135
- this.editing = this.editing ? null : (this.box?.id ?? null);
136
- this.edytor.overlay.invalidate();
137
- };
138
- /**
139
- * A press anywhere (`onPress`, capture): one outside the alt panel and the
140
- * toolbar (whose Alt button toggles it) closes the field, so the chrome
141
- * follows the pointer again.
142
- */
143
- pressed = (event) => {
144
- const target = event.target;
145
- if (this.editing === null)
146
- return;
147
- if (target?.closest?.('[data-edytor-image-alt-panel], [data-edytor-image-toolbar]'))
148
- return;
149
- this.closeAlt();
150
- };
151
- /** Focus left the alt field: for somewhere outside its panel, the field closes. */
152
- blurred = (event) => {
153
- const to = event.relatedTarget;
154
- const panel = event.currentTarget?.closest('[data-edytor-image-alt-panel]');
155
- // No new focus (the window went to the background): the field stays.
156
- if (!(to instanceof Node) || panel?.contains(to))
157
- return;
158
- this.closeAlt();
159
- };
160
- /** Close the alt field; with `keys`, the editor takes the keys back. */
161
- closeAlt = (keys = false) => {
162
- if (this.editing === null)
163
- return;
164
- this.editing = null;
165
- this.edytor.overlay.invalidate();
166
- if (keys)
167
- takeKeys(this.edytor);
168
- };
169
- #block = () => {
170
- const id = this.box?.id;
171
- const block = id ? this.edytor.idToBlock.get(id) : undefined;
172
- return block?.isInTree ? block : undefined;
173
- };
174
110
  /**
175
- * A `mousedown` on a handle: no native selection starts there; the press
176
- * itself when no `pointerdown` came before it (`isLonePress`: WebKit's
177
- * first press after a drag), which starts the drag as one would.
178
- */
179
- mousedown = (event, side) => {
180
- event.preventDefault();
181
- if (isLonePress(this.edytor, event))
182
- this.start(event, side);
183
- };
184
- /**
185
- * Press on a handle: the drag starts, nothing is written until the
186
- * release. A `pointerdown` tracks its pointer (captured, on the document);
187
- * a lone `mousedown` tracks the mouse on the window.
111
+ * Press on a handle (`{@attach band.press(…)}`): the drag starts, nothing
112
+ * is written until the release.
113
+ * @internal
188
114
  */
189
115
  start = (event, side) => {
190
116
  const { edytor } = this;
191
117
  const box = this.box;
192
- if (event.button !== 0 || !edytor.dispatcher.permits() || this.drag || !box)
118
+ if (!edytor.dispatcher.permits() || !box)
193
119
  return;
194
120
  const img = imageOf(edytor.idToBlock.get(box.id)?.node);
195
121
  const frame = img?.parentElement;
196
122
  if (!img || !frame)
197
123
  return;
198
- event.preventDefault();
199
- event.stopPropagation();
200
- const target = event.currentTarget;
201
- const pointer = event.type === 'pointerdown';
202
- if (pointer)
203
- target?.setPointerCapture?.(event.pointerId);
204
- this.drag = {
124
+ const drag = {
205
125
  id: box.id,
206
126
  side,
207
127
  from: event.clientX,
@@ -210,57 +130,21 @@ export class ImageControls {
210
130
  max: frame.getBoundingClientRect().width,
211
131
  factor: box.align === 'center' ? 2 : 1
212
132
  };
213
- const document = target?.ownerDocument ?? edytor.node?.ownerDocument;
214
- const tracked = pointer ? document : document?.defaultView;
215
- const [moves, ups] = pointer ? ['pointermove', 'pointerup'] : ['mousemove', 'mouseup'];
216
- const move = (moved) => {
217
- const drag = this.drag;
218
- if (!drag)
219
- return;
220
- if (!edytor.dispatcher.permits())
221
- return end(moved);
222
- drag.at = moved.clientX;
223
- this.preview = { id: drag.id, width: widthAt(drag) };
224
- edytor.overlay.invalidate();
225
- };
226
- const end = (ended) => {
227
- tracked?.removeEventListener(moves, move);
228
- tracked?.removeEventListener(ups, end);
229
- tracked?.removeEventListener('pointercancel', end);
230
- document?.removeEventListener('keydown', escape, true);
231
- const drag = this.drag;
232
- this.drag = null;
233
- this.#cancel = null;
234
- edytor.overlay.invalidate();
235
- if (drag && ended.type === ups) {
236
- drag.at = ended.clientX;
237
- this.#release(drag);
238
- // The editor holds the keys after the release (Notion: Mod+Z right after).
239
- takeKeys(edytor);
240
- }
133
+ this.band.start(event, drag, (done) => {
134
+ if (done)
135
+ this.#release(done);
241
136
  // After the release's write: the stored width replaces the preview in one flush.
242
137
  this.preview = null;
243
- };
244
- const escape = (key) => {
245
- if (key.key !== 'Escape')
246
- return;
247
- key.preventDefault();
248
- key.stopPropagation();
249
- end(key);
250
- };
251
- this.#cancel = () => end(new Event('cancel'));
252
- tracked?.addEventListener(moves, move);
253
- tracked?.addEventListener(ups, end);
254
- if (pointer)
255
- tracked?.addEventListener('pointercancel', end);
256
- document?.addEventListener('keydown', escape, true);
257
- edytor.overlay.invalidate();
138
+ }, () => {
139
+ const moving = this.band.drag;
140
+ if (moving)
141
+ this.preview = { id: moving.id, width: widthAt(moving) };
142
+ });
258
143
  };
259
- /** The view turned readonly: a drag in progress ends at once, nothing written. */
144
+ /** The view turned readonly: a drag in progress ends at once, nothing written. @internal */
260
145
  lock = () => {
261
- if (this.drag && !this.edytor.dispatcher.permits())
262
- this.#cancel?.();
263
- this.editing = null;
146
+ this.band.lock();
147
+ this.held = null;
264
148
  };
265
149
  /** The release: `data.width`, rounded to the px, one undo step; nothing when nothing moved. */
266
150
  #release(drag) {
@@ -269,7 +153,7 @@ export class ImageControls {
269
153
  if (!block?.isInTree || Math.abs(widthAt(drag) - drag.width) < 1)
270
154
  return;
271
155
  if (imageWidthOf(block.data) !== width)
272
- block.data.width = width;
156
+ block.edytor.patchData(block.id, [{ path: ['width'], value: width }]);
273
157
  }
274
158
  }
275
159
  /** The image's width at the drag's pointer, held between the minimum and its frame's width. */
@@ -278,12 +162,5 @@ const widthAt = ({ side, from, at, width, max, factor }) => {
278
162
  const hi = Math.max(max, width);
279
163
  return Math.min(hi, Math.max(lo, width + (side === 'right' ? 1 : -1) * factor * (at - from)));
280
164
  };
281
- const sameBox = (a, b) => a === b ||
282
- (a !== null &&
283
- b !== null &&
284
- a.id === b.id &&
285
- a.x === b.x &&
286
- a.y === b.y &&
287
- a.width === b.width &&
288
- a.height === b.height &&
289
- a.align === b.align);
165
+ /** Each view's image chrome (the first image plugin listed claims it). */
166
+ export const imageControls = new WeakMap();
@@ -1,8 +1,3 @@
1
- /** Each view's image labels: the first image plugin listed claims them, as its kind. */
2
- export declare const imageLabels: {
3
- claim: (view: object | undefined, labels: import("../../labels.js").ImageLabels) => void;
4
- of: (view: object | undefined) => import("../../labels.js").ImageLabels;
5
- };
6
1
  /** An image source the block may render: http(s), blob, or an inline image. */
7
2
  export declare const safeImageSrc: (value: unknown) => string | null;
8
3
  /**
@@ -1,6 +1,3 @@
1
- import { viewLabels } from '../../labels.js';
2
- /** Each view's image labels: the first image plugin listed claims them, as its kind. */
3
- export const imageLabels = viewLabels('image');
4
1
  /** An image source the block may render: http(s), blob, or an inline image. */
5
2
  export const safeImageSrc = (value) => {
6
3
  if (typeof value !== 'string')
@@ -0,0 +1,69 @@
1
+ /**
2
+ * The image toolbar (Notion's), its own plugin: the app's `toolbar` over
3
+ * the image the view's image chrome is on (`ImageControls`), at its top
4
+ * right: the alignments and the alt text field. An alignment is one
5
+ * `patchData` command; the alt text is written as it is typed (the
6
+ * dispatcher groups the keystrokes into one step). While the alt field is
7
+ * open the chrome stays on its image; a press outside the toolbar and the
8
+ * field (`onPress`) or focus leaving the field closes it.
9
+ */
10
+ import type { Attachment } from 'svelte/attachments';
11
+ import type { Snippet } from 'svelte';
12
+ import type { Plugin } from '../../plugins.js';
13
+ import { type ImageAlign } from './image.js';
14
+ import { type ImageControls } from './controls.svelte.js';
15
+ /**
16
+ * What a `toolbar` snippet receives: the image the chrome is on (`box`),
17
+ * its alignment (`align`) and alt text (`alt`, `setAlt`), the alt field's
18
+ * state (`editing`, `toggleAlt`, `closeAlt`) and the attachments that give
19
+ * your markup its behavior (`bar`, `altField`).
20
+ */
21
+ export declare class ImageToolbar {
22
+ #private;
23
+ constructor(
24
+ /** @internal */
25
+ controls: ImageControls);
26
+ /** The measured image the toolbar is on (`null`: none). */
27
+ get box(): import("./controls.svelte.js").ImageBox | null;
28
+ /** The view is readonly (reactive). */
29
+ get readonly(): boolean;
30
+ /** The image whose alt field is open: the chrome stays on it. */
31
+ get editing(): string | null;
32
+ set editing(id: string | null);
33
+ /** Set the target image's alignment: one `patchData` command. */
34
+ align: (align: ImageAlign) => void;
35
+ /** The target image's alt text. */
36
+ get alt(): string;
37
+ /** Write the alt text as it is typed: the dispatcher groups the keystrokes into one step. */
38
+ setAlt: (alt: string) => void;
39
+ /** Open (or close) the alt field of the target image. */
40
+ toggleAlt: () => void;
41
+ /**
42
+ * The image's toolbar (`{@attach controls.bar}`, named by your markup): its
43
+ * `toolbar` role unless it has its own, the mark a press outside the alt field
44
+ * reads (a press on the toolbar keeps the field open, so its Alt button
45
+ * toggles it), and presses that keep the editor's focus.
46
+ */
47
+ bar: Attachment<HTMLElement>;
48
+ /**
49
+ * The alt text field (`{@attach controls.altField}`): focused when it
50
+ * opens; Enter or Escape closes it and gives the editor its keys back,
51
+ * focus moving out of it (or of the element marked
52
+ * `data-edytor-image-alt-panel` around it) closes it, and a press on it
53
+ * keeps it open. Write its value with `setAlt`.
54
+ */
55
+ altField: Attachment<HTMLInputElement>;
56
+ /** Close the alt field; with `keys`, the editor takes the keys back. */
57
+ closeAlt: (keys?: boolean) => void;
58
+ }
59
+ export type ImageToolbarOptions = {
60
+ /**
61
+ * The toolbar over the hovered image (the alignments and the alt field);
62
+ * it renders while the image chrome shows and no handle drags, at the
63
+ * image's top right. Keep its behaviour with `{@attach toolbar.bar}` on
64
+ * the toolbar and `{@attach toolbar.altField}` on the alt field.
65
+ */
66
+ toolbar: Snippet<[ImageToolbar]>;
67
+ };
68
+ /** The image toolbar: your `toolbar` over the image the chrome is on. The first listed claims the view. */
69
+ export declare const createImageToolbarPlugin: ({ toolbar }: ImageToolbarOptions) => Plugin;
@@ -0,0 +1,145 @@
1
+ import { onPress, takeKeys } from '../../events/onFocus.js';
2
+ import { pin } from '../../surface/overlay.js';
3
+ import { imageAlignOf, imageAltOf } from './image.js';
4
+ import { imageControls } from './controls.svelte.js';
5
+ import { identify, keepFocus } from '../chrome.js';
6
+ import { all, listen } from '../../utils/listen.js';
7
+ import ImageToolbarHost from './ImageToolbarHost.svelte';
8
+ /** Where a press keeps the alt field open: the toolbar (its Alt button toggles it) and the field's own. */
9
+ const ALT_CHROME = '[data-edytor-image-alt-panel], [data-edytor-image-toolbar], [data-edytor-image-alt]';
10
+ /**
11
+ * What a `toolbar` snippet receives: the image the chrome is on (`box`),
12
+ * its alignment (`align`) and alt text (`alt`, `setAlt`), the alt field's
13
+ * state (`editing`, `toggleAlt`, `closeAlt`) and the attachments that give
14
+ * your markup its behavior (`bar`, `altField`).
15
+ */
16
+ export class ImageToolbar {
17
+ controls;
18
+ constructor(
19
+ /** @internal */
20
+ controls) {
21
+ this.controls = controls;
22
+ }
23
+ /** The measured image the toolbar is on (`null`: none). */
24
+ get box() {
25
+ return this.controls.box;
26
+ }
27
+ /** The view is readonly (reactive). */
28
+ get readonly() {
29
+ return this.controls.readonly;
30
+ }
31
+ /** The image whose alt field is open: the chrome stays on it. */
32
+ get editing() {
33
+ return this.controls.held;
34
+ }
35
+ set editing(id) {
36
+ this.controls.held = id;
37
+ }
38
+ get #edytor() {
39
+ return this.controls.edytor;
40
+ }
41
+ /** Set the target image's alignment: one `patchData` command. */
42
+ align = (align) => {
43
+ const block = this.#block();
44
+ if (block && imageAlignOf(block.data) !== align)
45
+ block.edytor.patchData(block.id, [{ path: ['align'], value: align }]);
46
+ };
47
+ /** The target image's alt text. */
48
+ get alt() {
49
+ return imageAltOf(this.#block()?.data);
50
+ }
51
+ /** Write the alt text as it is typed: the dispatcher groups the keystrokes into one step. */
52
+ setAlt = (alt) => {
53
+ const block = this.#block();
54
+ if (block && imageAltOf(block.data) !== alt)
55
+ block.edytor.patchData(block.id, [{ path: ['alt'], value: alt }]);
56
+ };
57
+ /** Open (or close) the alt field of the target image. */
58
+ toggleAlt = () => {
59
+ this.editing = this.editing ? null : (this.box?.id ?? null);
60
+ this.#edytor.overlay.invalidate();
61
+ };
62
+ /**
63
+ * A press anywhere (`onPress`, capture): one outside the alt panel and the
64
+ * toolbar (whose Alt button toggles it) closes the field, so the chrome
65
+ * follows the pointer again.
66
+ * @internal
67
+ */
68
+ pressed = (event) => {
69
+ const target = event.target;
70
+ if (this.editing === null)
71
+ return;
72
+ if (target?.closest?.(ALT_CHROME))
73
+ return;
74
+ this.closeAlt();
75
+ };
76
+ /** Focus left the alt field: for somewhere outside its panel, the field closes. @internal */
77
+ blurred = (event) => {
78
+ const to = event.relatedTarget;
79
+ const field = event.currentTarget;
80
+ const panel = field?.closest('[data-edytor-image-alt-panel]') ?? field;
81
+ // No new focus (the window went to the background): the field stays.
82
+ if (!(to instanceof Node) || panel?.contains(to))
83
+ return;
84
+ this.closeAlt();
85
+ };
86
+ /**
87
+ * The image's toolbar (`{@attach controls.bar}`, named by your markup): its
88
+ * `toolbar` role unless it has its own, the mark a press outside the alt field
89
+ * reads (a press on the toolbar keeps the field open, so its Alt button
90
+ * toggles it), and presses that keep the editor's focus.
91
+ */
92
+ bar = (node) => {
93
+ if (!node.hasAttribute('role'))
94
+ node.setAttribute('role', 'toolbar');
95
+ node.setAttribute('data-edytor-image-toolbar', '');
96
+ return listen(node, 'mousedown', keepFocus);
97
+ };
98
+ /**
99
+ * The alt text field (`{@attach controls.altField}`): focused when it
100
+ * opens; Enter or Escape closes it and gives the editor its keys back,
101
+ * focus moving out of it (or of the element marked
102
+ * `data-edytor-image-alt-panel` around it) closes it, and a press on it
103
+ * keeps it open. Write its value with `setAlt`.
104
+ */
105
+ altField = (node) => {
106
+ identify(node, this.#edytor.popups.idOf('image-alt'));
107
+ node.setAttribute('data-edytor-image-alt', '');
108
+ node.focus({ preventScroll: true });
109
+ const keydown = (event) => {
110
+ if (event.isComposing || (event.key !== 'Enter' && event.key !== 'Escape'))
111
+ return;
112
+ event.preventDefault();
113
+ this.closeAlt(true);
114
+ };
115
+ return all(listen(node, 'keydown', keydown), listen(node, 'focusout', this.blurred));
116
+ };
117
+ /** Close the alt field; with `keys`, the editor takes the keys back. */
118
+ closeAlt = (keys = false) => {
119
+ if (this.editing === null)
120
+ return;
121
+ this.editing = null;
122
+ this.#edytor.overlay.invalidate();
123
+ if (keys)
124
+ takeKeys(this.#edytor);
125
+ };
126
+ #block = () => {
127
+ const id = this.box?.id;
128
+ const block = id ? this.#edytor.idToBlock.get(id) : undefined;
129
+ return block?.isInTree ? block : undefined;
130
+ };
131
+ }
132
+ /** The image toolbar: your `toolbar` over the image the chrome is on. The first listed claims the view. */
133
+ export const createImageToolbarPlugin = ({ toolbar }) => (edytor) => ({
134
+ onEdytorAttached: ({ node }) => {
135
+ const controls = imageControls.get(edytor);
136
+ if (!controls || controls.toolbar)
137
+ return;
138
+ const bar = (controls.toolbar = new ImageToolbar(controls));
139
+ return all(
140
+ // A press outside the alt panel closes it (WebKit's lone `mousedown` too).
141
+ onPress(edytor, node.ownerDocument, bar.pressed, true), edytor.overlay.mount(ImageToolbarHost, { toolbar: bar, snippet: toolbar }, 'edytor-image-toolbar-host',
142
+ // With the image chrome: above the block handles and the column bands.
143
+ 7, (host) => () => pin(host)), () => (controls.toolbar = undefined));
144
+ }
145
+ });
@@ -1,36 +1,51 @@
1
- export { richTextPlugin, createRichTextPlugin, richTextOperations, richTextPlaceholder, createRichTextPlaceholder, type RichTextPluginOptions } from './richtext/RichTextPlugin.svelte';
2
- export { arrowMovePlugin } from './arrowMove/arrowMove.js';
1
+ export { createRichTextPlugin, richTextOperations, richTextPlaceholder, type RichTextPluginOptions, type TodoCheckboxPayload, type CalloutIconPayload, type EmptyBodyPayload } from './richtext/RichTextPlugin.svelte';
2
+ export { CALLOUT_ICONS, createCalloutIconsPlugin, type CalloutIconPicker, type CalloutIconsOptions } from './richtext/calloutIcons.svelte.js';
3
+ export { createUploadsPlugin, type UploadsOptions } from './uploads.svelte.js';
4
+ export { createArrowMovePlugin } from './arrowMove/arrowMove.js';
5
+ export type { MenuItemPayload } from './chrome.js';
3
6
  export { BLOCK_ACTIVATE_EVENT, BLOCK_ADD_EVENT, type BlockActivation, type BlockAddition } from './blockHandles/BlockHandleController.svelte.js';
4
- export { TOOLBAR_COLORS } from './toolbar/ToolbarController.svelte.js';
5
- export { blockHandlesPlugin, createBlockHandlesPlugin, type BlockHandleActivation, type BlockHandlesOptions, type BlockHandleSnippetPayload } from './blockHandles/blockHandlesPlugin.js';
6
- export { codePlugin, createCodePlugin, CODE_LANGUAGES, loadCodeLanguage, type CodeLanguage, type CodePluginOptions } from './code/CodePlugin.svelte';
7
- export { markdownShortcutsPlugin } from './markdownShortcuts.js';
7
+ export { createBlockHandlesPlugin, type BlockHandlesOptions, type BlockHandleSnippetPayload } from './blockHandles/blockHandlesPlugin.js';
8
+ export { createCodePlugin, CODE_LANGUAGES, loadCodeLanguage, type CodeLanguage, type CodePluginOptions } from './code/CodePlugin.svelte';
9
+ export type { CodeHeader } from './code/header.svelte.js';
10
+ export type { LanguageMenu, LanguageMenuItem, LanguageRow } from './code/languageMenu.svelte.js';
11
+ export { createMarkdownShortcutsPlugin } from './markdownShortcuts.js';
8
12
  export { createMentionPlugin, type MentionItem, type MentionData, type MentionPluginOptions } from './mention/MentionPlugin.svelte';
9
13
  export { createPageLinkPlugin, type PageLinkItem, type PageLinkData, type PageLinkPluginOptions } from './pageLink/PageLinkPlugin.svelte';
10
14
  export type { TriggerMenuController } from './triggers/TriggerController.svelte.js';
11
- export { slashMenuPlugin, createSlashMenuPlugin, type SlashMenuOptions, type SlashMenuItem } from './slashMenu/slashMenuPlugin.js';
15
+ export { withRulesAndTriggers } from './triggers/triggers.js';
16
+ export { createSlashMenuPlugin, type SlashMenuOptions } from './slashMenu/slashMenuPlugin.js';
12
17
  export type { SlashMenuController } from './slashMenu/SlashMenuController.svelte.js';
13
- export { toolbarPlugin, createToolbarPlugin, type ToolbarOptions } from './toolbar/toolbarPlugin.js';
18
+ export { createToolbarPlugin, type ToolbarOptions } from './toolbar/toolbarPlugin.js';
14
19
  export type { ToolbarController } from './toolbar/ToolbarController.svelte.js';
15
- export { blockMenuPlugin, createBlockMenuPlugin } from './blockMenu/blockMenuPlugin.js';
16
- export { suggestionsPlugin, createSuggestionsPlugin, isSuggestionsPlugin, type SuggestionsOptions, type SuggestionBarPayload } from './suggestions/suggestionsPlugin.js';
20
+ export { createBlockMenuPlugin } from './blockMenu/blockMenuPlugin.js';
21
+ export { createSuggestionsPlugin, type SuggestionBarOptions, type SuggestionBarPayload } from './suggestions/suggestionsPlugin.js';
22
+ export { createSuggestionBarPlugin } from './suggestions/SuggestionBars.svelte';
17
23
  export type { BlockMenuOptions, BlockMenuController, BlockMenuAction, BlockMenuColor } from './blockMenu/BlockMenuController.svelte.js';
18
- export { imagePlugin, createImagePlugin, isImagePlugin, safeImageSrc, storableImageSrc, oversizedInlineImage, MAX_INLINE_IMAGE_BYTES, MIN_IMAGE_WIDTH, type ImagePluginOptions, type ImageData, type ImageAlign } from './image/ImagePlugin.svelte';
19
- export { embedPlugin, createEmbedPlugin, EMBED_PROVIDERS, EMBED_SANDBOX, EMBED_ALLOW, embedSourceOf, type EmbedProvider, type EmbedPluginOptions } from './media/EmbedPlugin.svelte';
20
- export { bookmarkPlugin, createBookmarkPlugin, type BookmarkPluginOptions, type BookmarkPreview } from './media/BookmarkPlugin.svelte';
21
- export { filePlugin, createFilePlugin } from './media/FilePlugin.svelte';
22
- export { videoPlugin, createVideoPlugin } from './media/VideoPlugin.svelte';
23
- export { audioPlugin, createAudioPlugin } from './media/AudioPlugin.svelte';
24
- export { safeWebUrl, safeMediaSrc, type MediaPluginOptions } from './media/media.js';
24
+ export { createImagePlugin, safeImageSrc, storableImageSrc, oversizedInlineImage, MAX_INLINE_IMAGE_BYTES, MIN_IMAGE_WIDTH, type ImageData, type ImageAlign } from './image/ImagePlugin.svelte';
25
+ export { createEmbedPlugin, EMBED_PROVIDERS, EMBED_SANDBOX, EMBED_ALLOW, embedSourceOf, type EmbedProvider, type EmbedPluginOptions, type EmbedFallbackPayload } from './media/EmbedPlugin.svelte';
26
+ export { createBookmarkPlugin, type BookmarkPluginOptions, type BookmarkPreview, type BookmarkCardPayload } from './media/BookmarkPlugin.svelte';
27
+ export { createFilePlugin, type FilePluginOptions, type FileRowPayload } from './media/FilePlugin.svelte';
28
+ export { createVideoPlugin } from './media/VideoPlugin.svelte';
29
+ export { createAudioPlugin } from './media/AudioPlugin.svelte';
30
+ export { safeWebUrl, safeMediaSrc, type MediaKind } from './media/media.js';
31
+ export type { MediaEmptyController, MediaEmptyFailure } from './media/empty.svelte.js';
32
+ export { createMediaEmptyPlugin, type MediaEmptyOptions } from './media/MediaEmpty.svelte';
33
+ export type { UrlPasteController, UrlPasteOffer, UrlPasteOption } from './media/urlPaste.svelte.js';
34
+ export type { ImageControls, ImageBox } from './image/controls.svelte.js';
35
+ export { createImageToolbarPlugin, type ImageToolbar, type ImageToolbarOptions } from './image/toolbar.svelte.js';
25
36
  export type { BlockHandleController } from './blockHandles/BlockHandleController.svelte.js';
26
- export { columnsPlugin, createColumnsPlugin, isColumnsPlugin, type ColumnsPluginOptions } from './columns/ColumnsPlugin.svelte';
27
- export { findPlugin, createFindPlugin, findController, type FindPluginOptions } from './find/findPlugin.js';
37
+ export { createColumnsPlugin, type ColumnsPluginOptions } from './columns/ColumnsPlugin.svelte';
38
+ export { createFindPlugin, findController, type FindPluginOptions } from './find/findPlugin.js';
28
39
  export type { FindController, ReplaceMatches } from './find/FindController.svelte.js';
40
+ export { createMarqueePlugin, type MarqueePluginOptions } from './marquee/marqueePlugin.js';
41
+ export type { MarqueeBoxPayload } from './marquee/MarqueeController.svelte.js';
29
42
  export { findMatches, type FindMatch, type FindOptions } from './find/search.js';
30
- export { createCommentsPlugin, commentsController, type CommentsPluginOptions } from './comments/commentsPlugin.js';
43
+ export { createCommentsPlugin, commentsController, type CommentsPluginOptions, type CommentCardPayload } from './comments/commentsPlugin.js';
31
44
  export type { CommentsController, CommentDraft, CommentNotice, CommentUser, PlacedThread } from './comments/CommentsController.svelte.js';
32
- export { pagePlugin, createPagePlugin, type PagePluginOptions } from './page/PagePlugin.svelte';
33
- export { tocPlugin, createTocPlugin, type TocPluginOptions, type TocHeadingLevel } from './toc/TocPlugin.svelte';
34
- export { tablePlugin, createTablePlugin, isTablePlugin, type TablePluginOptions } from './table/TablePlugin.svelte';
45
+ export { createPagePlugin, type PagePluginOptions, type PageBlockLinkPayload } from './page/PagePlugin.svelte';
46
+ export { createTocPlugin, type TocPluginOptions, type TocHeadingLevel, type TocEntryPayload, type TocEmptyPayload } from './toc/TocPlugin.svelte';
47
+ export { createTablePlugin, type TablePluginOptions } from './table/TablePlugin.svelte';
48
+ export { insertTableRow, deleteTableRows, insertTableColumn, deleteTableColumn, moveTableColumn, moveTableRows, fillTableCell } from './table/ops.js';
49
+ export type { TableChrome, TableMenu, TableMenuRow, TableMenuItem, TableGripPayload, TableAddPayload } from './table/chrome.svelte.js';
35
50
  export { tableBlock, type TableBlockOptions } from '../crdt/tables.js';
36
- export { createEquationPlugin, type EquationPluginOptions, type EquationData, type KatexLike, type KatexLoader } from './equation/EquationPlugin.svelte';
51
+ export { createEquationPlugin, KATEX_CDN, KATEX_VERSION, type EquationPluginOptions, type EquationData, type EquationEditor, type EquationErrorPayload, type EquationPlaceholderPayload, type EquationTarget, type KatexLike, type KatexLoader } from './equation/EquationPlugin.svelte';