edytor 1.0.0-rc.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. package/README.md +65 -25
  2. package/dist/block/block.svelte.d.ts +10 -85
  3. package/dist/block/block.svelte.js +47 -141
  4. package/dist/block/colors.d.ts +0 -9
  5. package/dist/block/colors.js +1 -18
  6. package/dist/block/contentRange.d.ts +5 -1
  7. package/dist/block/contentRange.js +15 -16
  8. package/dist/block/inlineBlock.svelte.d.ts +8 -10
  9. package/dist/block/inlineBlock.svelte.js +14 -22
  10. package/dist/clipboard/createClipboardFragment.js +22 -64
  11. package/dist/clipboard/fragmentData.js +17 -42
  12. package/dist/clipboard/htmlFlow.d.ts +6 -1
  13. package/dist/clipboard/htmlFlow.js +26 -13
  14. package/dist/clipboard/insertClipboardFragment.js +5 -4
  15. package/dist/clipboard/moveText.js +16 -8
  16. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  17. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  18. package/dist/cloudflare/DocumentRoom.d.ts +22 -17
  19. package/dist/cloudflare/DocumentRoom.js +10 -5
  20. package/dist/cloudflare/index.d.ts +1 -1
  21. package/dist/cloudflare/index.js +1 -1
  22. package/dist/cloudflare/move.d.ts +1 -18
  23. package/dist/cloudflare/move.js +2 -48
  24. package/dist/cloudflare/room/admission.d.ts +1 -60
  25. package/dist/cloudflare/room/admission.js +25 -29
  26. package/dist/cloudflare/room/comments.d.ts +1 -3
  27. package/dist/cloudflare/room/comments.js +6 -6
  28. package/dist/cloudflare/room/context.d.ts +20 -82
  29. package/dist/cloudflare/room/context.js +8 -8
  30. package/dist/cloudflare/room/forged.d.ts +1 -1
  31. package/dist/cloudflare/room/forged.js +2 -12
  32. package/dist/cloudflare/room/frames.d.ts +1 -1
  33. package/dist/cloudflare/room/frames.js +1 -1
  34. package/dist/cloudflare/room/history.d.ts +1 -25
  35. package/dist/cloudflare/room/history.js +39 -54
  36. package/dist/cloudflare/room/moves.d.ts +1 -13
  37. package/dist/cloudflare/room/moves.js +33 -57
  38. package/dist/cloudflare/room/presence.d.ts +1 -11
  39. package/dist/cloudflare/room/presence.js +4 -4
  40. package/dist/cloudflare/room/purge.d.ts +1 -2
  41. package/dist/cloudflare/room/purge.js +2 -2
  42. package/dist/cloudflare/room/replicas.d.ts +1 -7
  43. package/dist/cloudflare/room/replicas.js +2 -2
  44. package/dist/cloudflare/room/storage.d.ts +9 -30
  45. package/dist/cloudflare/room/storage.js +52 -104
  46. package/dist/cloudflare/room/updates.d.ts +4 -4
  47. package/dist/cloudflare/room/updates.js +17 -24
  48. package/dist/cloudflare/room/validation.d.ts +1 -5
  49. package/dist/cloudflare/room/validation.js +16 -37
  50. package/dist/collaboration/RemoteSelections.svelte +13 -17
  51. package/dist/collaboration/comments/client.d.ts +2 -2
  52. package/dist/collaboration/comments/client.js +1 -1
  53. package/dist/collaboration/history/index.d.ts +5 -5
  54. package/dist/collaboration/history/index.js +5 -5
  55. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  56. package/dist/collaboration/history/panel.svelte.js +223 -0
  57. package/dist/collaboration/providers.d.ts +12 -3
  58. package/dist/collaboration/providers.js +5 -4
  59. package/dist/components/Block.svelte +160 -119
  60. package/dist/components/Block.svelte.d.ts +8 -3
  61. package/dist/components/Content.svelte +91 -44
  62. package/dist/components/CustomMark.svelte +46 -0
  63. package/dist/components/CustomMark.svelte.d.ts +11 -0
  64. package/dist/components/Edytor.svelte +80 -95
  65. package/dist/components/Edytor.svelte.d.ts +8 -12
  66. package/dist/components/InlineBlock.svelte +4 -9
  67. package/dist/components/Mark.svelte +46 -35
  68. package/dist/components/Mark.svelte.d.ts +7 -0
  69. package/dist/components/Ranges.svelte +96 -0
  70. package/dist/components/Ranges.svelte.d.ts +19 -0
  71. package/dist/components/Suggestion.svelte +3 -2
  72. package/dist/components/Text.svelte +48 -14
  73. package/dist/components/Text.svelte.d.ts +1 -1
  74. package/dist/crdt/admission.d.ts +2 -9
  75. package/dist/crdt/admission.js +3 -9
  76. package/dist/crdt/attribution/attribution.d.ts +11 -72
  77. package/dist/crdt/attribution/attribution.js +5 -52
  78. package/dist/crdt/attribution/block.d.ts +0 -78
  79. package/dist/crdt/attribution/block.js +1 -144
  80. package/dist/crdt/data.d.ts +8 -13
  81. package/dist/crdt/data.js +30 -70
  82. package/dist/crdt/doc/anchors.js +4 -4
  83. package/dist/crdt/doc/content.d.ts +5 -1
  84. package/dist/crdt/doc/content.js +3 -1
  85. package/dist/crdt/doc/delete.d.ts +1 -0
  86. package/dist/crdt/doc/funnel.d.ts +0 -23
  87. package/dist/crdt/doc/funnel.js +34 -85
  88. package/dist/crdt/doc/gate.d.ts +8 -9
  89. package/dist/crdt/doc/gate.js +7 -17
  90. package/dist/crdt/doc/history.d.ts +87 -14
  91. package/dist/crdt/doc/history.js +334 -149
  92. package/dist/crdt/doc/layout.d.ts +0 -1
  93. package/dist/crdt/doc/layout.js +2 -3
  94. package/dist/crdt/doc/meta.d.ts +4 -4
  95. package/dist/crdt/doc/meta.js +10 -21
  96. package/dist/crdt/doc/moves.d.ts +4 -4
  97. package/dist/crdt/doc/moves.js +5 -5
  98. package/dist/crdt/doc/plan.d.ts +2 -0
  99. package/dist/crdt/doc/plan.js +2 -0
  100. package/dist/crdt/doc/reads.d.ts +1 -5
  101. package/dist/crdt/doc/reads.js +38 -49
  102. package/dist/crdt/doc/seed.d.ts +15 -6
  103. package/dist/crdt/doc/seed.js +27 -26
  104. package/dist/crdt/doc/split-merge.d.ts +1 -3
  105. package/dist/crdt/doc/split-merge.js +4 -5
  106. package/dist/crdt/doc/steps.d.ts +3 -7
  107. package/dist/crdt/doc/steps.js +20 -9
  108. package/dist/crdt/doc/types.d.ts +0 -10
  109. package/dist/crdt/document.d.ts +24 -115
  110. package/dist/crdt/document.js +207 -305
  111. package/dist/crdt/edytor-doc.d.ts +671 -90
  112. package/dist/crdt/edytor-doc.js +73 -149
  113. package/dist/crdt/engine-api.d.ts +15 -47
  114. package/dist/crdt/engine.d.ts +7 -17
  115. package/dist/crdt/engine.js +9 -19
  116. package/dist/crdt/flow.d.ts +9 -37
  117. package/dist/crdt/flow.js +260 -238
  118. package/dist/crdt/index.d.ts +26 -85
  119. package/dist/crdt/index.js +21 -47
  120. package/dist/crdt/operations.d.ts +24 -33
  121. package/dist/crdt/operations.js +7 -17
  122. package/dist/crdt/placement/display.d.ts +0 -2
  123. package/dist/crdt/placement/display.js +0 -15
  124. package/dist/crdt/placement/model.d.ts +160 -12
  125. package/dist/crdt/placement/model.js +413 -414
  126. package/dist/crdt/placement/rank.d.ts +1 -5
  127. package/dist/crdt/placement/rank.js +28 -38
  128. package/dist/crdt/protocol.d.ts +4 -5
  129. package/dist/crdt/protocol.js +3 -4
  130. package/dist/crdt/protocols/awareness.d.ts +3 -7
  131. package/dist/crdt/protocols/awareness.js +17 -33
  132. package/dist/crdt/protocols/envelope.d.ts +9 -29
  133. package/dist/crdt/protocols/envelope.js +8 -25
  134. package/dist/crdt/protocols/sync.d.ts +15 -30
  135. package/dist/crdt/protocols/sync.js +27 -89
  136. package/dist/crdt/providers/bound.d.ts +3 -1
  137. package/dist/crdt/providers/bound.js +3 -1
  138. package/dist/crdt/providers/container.d.ts +11 -17
  139. package/dist/crdt/providers/container.js +39 -27
  140. package/dist/crdt/providers/index.d.ts +34 -6
  141. package/dist/crdt/providers/index.js +106 -111
  142. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  143. package/dist/crdt/providers/indexeddb.js +29 -90
  144. package/dist/crdt/providers/room.d.ts +58 -2
  145. package/dist/crdt/providers/room.js +38 -21
  146. package/dist/crdt/providers/websocket.d.ts +1 -1
  147. package/dist/crdt/providers/websocket.js +3 -4
  148. package/dist/crdt/purge.d.ts +2 -2
  149. package/dist/crdt/purge.js +69 -6
  150. package/dist/crdt/rangeDelete.d.ts +4 -42
  151. package/dist/crdt/rangeDelete.js +7 -6
  152. package/dist/crdt/restore.d.ts +21 -1
  153. package/dist/crdt/restore.js +54 -59
  154. package/dist/crdt/schema.d.ts +2 -2
  155. package/dist/crdt/schema.js +4 -5
  156. package/dist/crdt/semantics.d.ts +10 -15
  157. package/dist/crdt/semantics.js +22 -21
  158. package/dist/crdt/storage.d.ts +7 -13
  159. package/dist/crdt/storage.js +10 -24
  160. package/dist/crdt/structs.d.ts +42 -47
  161. package/dist/crdt/structs.js +76 -67
  162. package/dist/crdt/tables.d.ts +9 -0
  163. package/dist/crdt/tables.js +20 -0
  164. package/dist/crdt/text/delete-index.d.ts +0 -13
  165. package/dist/crdt/text/delete-index.js +7 -14
  166. package/dist/crdt/text/deletes.d.ts +9 -22
  167. package/dist/crdt/text/deletes.js +11 -74
  168. package/dist/crdt/text/index/cache.js +3 -3
  169. package/dist/crdt/text/index/fold.d.ts +1 -2
  170. package/dist/crdt/text/index/fold.js +15 -10
  171. package/dist/crdt/text/index/layout.d.ts +0 -10
  172. package/dist/crdt/text/index/layout.js +6 -20
  173. package/dist/crdt/text/index/records.js +2 -1
  174. package/dist/crdt/text/index/report.js +5 -6
  175. package/dist/crdt/text/index/shared.d.ts +11 -4
  176. package/dist/crdt/text/index/shared.js +8 -7
  177. package/dist/crdt/text/index/state.d.ts +3 -33
  178. package/dist/crdt/text/index/state.js +2 -4
  179. package/dist/crdt/text/model.d.ts +82 -2
  180. package/dist/crdt/text/model.js +344 -354
  181. package/dist/crdt/text/rows.d.ts +0 -2
  182. package/dist/crdt/text/rows.js +0 -11
  183. package/dist/crdt/text/runs.d.ts +6 -3
  184. package/dist/crdt/text/runs.js +132 -137
  185. package/dist/crdt/text/streams.d.ts +1 -1
  186. package/dist/crdt/text/streams.js +1 -1
  187. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  188. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  189. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  190. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  191. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  192. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  193. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  194. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  195. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  196. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  197. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  198. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  199. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  200. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  201. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  202. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  203. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  204. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  205. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  206. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  207. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  208. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  209. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  210. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  211. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  212. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  213. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  214. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  215. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  216. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  217. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  218. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  219. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  220. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  221. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  222. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  223. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  224. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  225. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  226. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  227. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  228. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  229. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  230. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  231. package/dist/{plugins/blockHandles → dnd}/autoScroll.d.ts +2 -1
  232. package/dist/{plugins/blockHandles → dnd}/autoScroll.js +3 -3
  233. package/dist/dnd/pragmatic.d.ts +4 -22
  234. package/dist/dnd/pragmatic.js +7 -26
  235. package/dist/dnd/track.d.ts +14 -0
  236. package/dist/dnd/track.js +55 -0
  237. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  238. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  239. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  240. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  241. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  242. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  243. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  254. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +36 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  265. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  293. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  294. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  295. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  296. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  297. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  298. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  299. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  300. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  301. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  302. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  303. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  304. package/dist/edytor.svelte.d.ts +34 -64
  305. package/dist/edytor.svelte.js +118 -180
  306. package/dist/events/beforeInputCommands.d.ts +6 -11
  307. package/dist/events/beforeInputCommands.js +189 -184
  308. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  309. package/dist/events/beforeInputDeleteCommands.js +153 -204
  310. package/dist/events/domTextOffset.d.ts +9 -9
  311. package/dist/events/domTextOffset.js +20 -48
  312. package/dist/events/events.utils.d.ts +0 -2
  313. package/dist/events/events.utils.js +0 -4
  314. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  315. package/dist/events/nativeInteractiveControl.js +28 -56
  316. package/dist/events/onBeforeInput.d.ts +6 -1
  317. package/dist/events/onBeforeInput.js +207 -331
  318. package/dist/events/onCopy.js +1 -5
  319. package/dist/events/onDrop.d.ts +7 -1
  320. package/dist/events/onDrop.js +33 -72
  321. package/dist/events/onFocus.d.ts +9 -4
  322. package/dist/events/onFocus.js +92 -72
  323. package/dist/events/onInput.d.ts +8 -4
  324. package/dist/events/onInput.js +34 -147
  325. package/dist/events/onKeyDown.js +55 -122
  326. package/dist/events/onPaste.d.ts +13 -1
  327. package/dist/events/onPaste.js +46 -76
  328. package/dist/index.d.ts +10 -13
  329. package/dist/index.js +3 -3
  330. package/dist/kinds.d.ts +4 -6
  331. package/dist/kinds.js +28 -27
  332. package/dist/labels.d.ts +91 -314
  333. package/dist/labels.js +180 -396
  334. package/dist/plugins/Chrome.svelte +29 -0
  335. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  336. package/dist/plugins/Control.svelte +23 -0
  337. package/dist/plugins/Control.svelte.d.ts +30 -0
  338. package/dist/plugins/anchored.svelte.d.ts +47 -0
  339. package/dist/plugins/anchored.svelte.js +73 -0
  340. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  341. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  342. package/dist/plugins/bands.svelte.d.ts +57 -0
  343. package/dist/plugins/bands.svelte.js +95 -0
  344. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -151
  345. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  346. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +63 -97
  347. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +247 -268
  348. package/dist/plugins/blockHandles/BlockHandles.svelte +46 -29
  349. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  350. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +29 -23
  351. package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -162
  352. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  353. package/dist/plugins/blockHandles/dragPreview.js +20 -17
  354. package/dist/plugins/blockHandles/dropIndicator.js +52 -60
  355. package/dist/plugins/blockHandles/geometry.d.ts +46 -1
  356. package/dist/plugins/blockHandles/geometry.js +51 -4
  357. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +59 -28
  358. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +180 -105
  359. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  360. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  361. package/dist/plugins/brand.d.ts +8 -0
  362. package/dist/plugins/brand.js +8 -0
  363. package/dist/plugins/chrome.d.ts +79 -0
  364. package/dist/plugins/chrome.js +87 -0
  365. package/dist/plugins/code/CodeHeader.svelte +12 -58
  366. package/dist/plugins/code/CodeHeader.svelte.d.ts +1 -0
  367. package/dist/plugins/code/CodePlugin.svelte +75 -56
  368. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  369. package/dist/plugins/code/LanguageMenu.svelte +25 -0
  370. package/dist/plugins/code/LanguageMenu.svelte.d.ts +9 -0
  371. package/dist/plugins/code/code.css +5 -100
  372. package/dist/plugins/code/header.svelte.d.ts +47 -0
  373. package/dist/plugins/code/header.svelte.js +141 -0
  374. package/dist/plugins/code/languageMenu.svelte.d.ts +84 -0
  375. package/dist/plugins/code/languageMenu.svelte.js +199 -0
  376. package/dist/plugins/code/languages.d.ts +21 -10
  377. package/dist/plugins/code/languages.js +39 -126
  378. package/dist/plugins/columns/ColumnResize.svelte +13 -25
  379. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  380. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  381. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  382. package/dist/plugins/columns/columns.css +7 -26
  383. package/dist/plugins/columns/resize.svelte.d.ts +14 -51
  384. package/dist/plugins/columns/resize.svelte.js +70 -164
  385. package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
  386. package/dist/plugins/comments/CommentsController.svelte.js +14 -25
  387. package/dist/plugins/comments/CommentsSidebar.svelte +82 -430
  388. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +6 -7
  389. package/dist/plugins/comments/commentsPlugin.d.ts +31 -10
  390. package/dist/plugins/comments/commentsPlugin.js +12 -10
  391. package/dist/plugins/equation/EquationEditor.svelte +18 -129
  392. package/dist/plugins/equation/EquationEditor.svelte.d.ts +2 -1
  393. package/dist/plugins/equation/EquationPlugin.svelte +123 -168
  394. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +5 -3
  395. package/dist/plugins/equation/EquationView.svelte +20 -11
  396. package/dist/plugins/equation/equation.svelte.d.ts +74 -36
  397. package/dist/plugins/equation/equation.svelte.js +74 -66
  398. package/dist/plugins/equation/importUrl.d.ts +6 -0
  399. package/dist/plugins/equation/importUrl.js +6 -0
  400. package/dist/plugins/equation/katex.d.ts +8 -0
  401. package/dist/plugins/equation/katex.js +77 -0
  402. package/dist/plugins/find/FindController.svelte.d.ts +8 -13
  403. package/dist/plugins/find/FindController.svelte.js +34 -55
  404. package/dist/plugins/find/findPlugin.d.ts +4 -8
  405. package/dist/plugins/find/findPlugin.js +29 -9
  406. package/dist/plugins/image/ImageChrome.svelte +5 -151
  407. package/dist/plugins/image/ImagePlugin.svelte +49 -117
  408. package/dist/plugins/image/ImagePlugin.svelte.d.ts +1 -24
  409. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  410. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  411. package/dist/plugins/image/controls.svelte.d.ts +6 -57
  412. package/dist/plugins/image/controls.svelte.js +51 -174
  413. package/dist/plugins/image/image.d.ts +0 -5
  414. package/dist/plugins/image/image.js +0 -3
  415. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  416. package/dist/plugins/image/toolbar.svelte.js +145 -0
  417. package/dist/plugins/index.d.ts +39 -24
  418. package/dist/plugins/index.js +30 -22
  419. package/dist/plugins/list.svelte.d.ts +128 -0
  420. package/dist/plugins/list.svelte.js +217 -0
  421. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  422. package/dist/plugins/markdownShortcuts.js +6 -5
  423. package/dist/plugins/marquee/MarqueeBox.svelte +15 -0
  424. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +9 -0
  425. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +46 -0
  426. package/dist/plugins/marquee/MarqueeController.svelte.js +243 -0
  427. package/dist/plugins/marquee/marquee.d.ts +33 -0
  428. package/dist/plugins/marquee/marquee.js +89 -0
  429. package/dist/plugins/marquee/marqueePlugin.d.ts +32 -0
  430. package/dist/plugins/marquee/marqueePlugin.js +68 -0
  431. package/dist/plugins/media/AudioPlugin.svelte +3 -88
  432. package/dist/plugins/media/AudioPlugin.svelte.d.ts +1 -4
  433. package/dist/plugins/media/BookmarkPlugin.svelte +124 -112
  434. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +20 -7
  435. package/dist/plugins/media/EmbedPlugin.svelte +93 -77
  436. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +21 -9
  437. package/dist/plugins/media/EmptySlot.svelte +44 -0
  438. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  439. package/dist/plugins/media/FilePlugin.svelte +35 -111
  440. package/dist/plugins/media/FilePlugin.svelte.d.ts +12 -4
  441. package/dist/plugins/media/MediaEmpty.svelte +55 -112
  442. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  443. package/dist/plugins/media/SourceBlock.svelte +164 -0
  444. package/dist/plugins/media/SourceBlock.svelte.d.ts +33 -0
  445. package/dist/plugins/media/VideoPlugin.svelte +4 -97
  446. package/dist/plugins/media/VideoPlugin.svelte.d.ts +2 -5
  447. package/dist/plugins/media/empty.svelte.d.ts +69 -0
  448. package/dist/plugins/media/empty.svelte.js +111 -0
  449. package/dist/plugins/media/media.d.ts +93 -30
  450. package/dist/plugins/media/media.js +79 -86
  451. package/dist/plugins/media/urlPaste.svelte.d.ts +9 -32
  452. package/dist/plugins/media/urlPaste.svelte.js +46 -75
  453. package/dist/plugins/mention/MentionPlugin.svelte +47 -124
  454. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +11 -23
  455. package/dist/plugins/page/PageLink.svelte +54 -38
  456. package/dist/plugins/page/PagePlugin.svelte +20 -18
  457. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  458. package/dist/plugins/page/page.d.ts +35 -9
  459. package/dist/plugins/page/page.js +3 -4
  460. package/dist/plugins/pageLink/PageLinkPlugin.svelte +52 -108
  461. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +11 -23
  462. package/dist/plugins/planned.d.ts +10 -0
  463. package/dist/plugins/planned.js +12 -0
  464. package/dist/plugins/richtext/CalloutIcon.svelte +25 -0
  465. package/dist/plugins/richtext/CalloutIcon.svelte.d.ts +9 -0
  466. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  467. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  468. package/dist/plugins/richtext/EmptyBody.svelte +25 -0
  469. package/dist/plugins/richtext/EmptyBody.svelte.d.ts +8 -0
  470. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  471. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  472. package/dist/plugins/richtext/RichTextPlugin.svelte +272 -148
  473. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +37 -18
  474. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  475. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  476. package/dist/plugins/richtext/body.d.ts +9 -0
  477. package/dist/plugins/richtext/body.js +16 -0
  478. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +97 -0
  479. package/dist/plugins/richtext/calloutIcons.svelte.js +214 -0
  480. package/dist/plugins/richtext/callouts.d.ts +15 -0
  481. package/dist/plugins/richtext/callouts.js +23 -0
  482. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  483. package/dist/plugins/richtext/controls.svelte.js +126 -0
  484. package/dist/plugins/richtext/richTextOperations.js +37 -28
  485. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +18 -11
  486. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +93 -35
  487. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +11 -24
  488. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  489. package/dist/plugins/suggestions/SuggestionBars.svelte +32 -84
  490. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  491. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -16
  492. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  493. package/dist/plugins/table/TableChrome.svelte +96 -127
  494. package/dist/plugins/table/TableChrome.svelte.d.ts +5 -1
  495. package/dist/plugins/table/TablePlugin.svelte +116 -171
  496. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  497. package/dist/plugins/table/chrome.svelte.d.ts +110 -117
  498. package/dist/plugins/table/chrome.svelte.js +643 -289
  499. package/dist/plugins/table/ops.d.ts +47 -0
  500. package/dist/plugins/table/ops.js +233 -0
  501. package/dist/plugins/table/table.css +55 -134
  502. package/dist/plugins/table/table.d.ts +26 -7
  503. package/dist/plugins/table/table.js +23 -49
  504. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  505. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  506. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  507. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  508. package/dist/plugins/toc/toc.d.ts +41 -10
  509. package/dist/plugins/toc/toc.js +2 -3
  510. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +29 -66
  511. package/dist/plugins/toolbar/ToolbarController.svelte.js +151 -76
  512. package/dist/plugins/toolbar/toolbarPlugin.d.ts +14 -13
  513. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  514. package/dist/plugins/triggers/TriggerController.svelte.d.ts +6 -45
  515. package/dist/plugins/triggers/TriggerController.svelte.js +51 -96
  516. package/dist/plugins/triggers/place.d.ts +0 -9
  517. package/dist/plugins/triggers/place.js +1 -17
  518. package/dist/plugins/triggers/triggers.d.ts +31 -9
  519. package/dist/plugins/triggers/triggers.js +82 -62
  520. package/dist/plugins/uploads.svelte.d.ts +38 -20
  521. package/dist/plugins/uploads.svelte.js +39 -32
  522. package/dist/plugins.d.ts +167 -60
  523. package/dist/selection/domSelection.d.ts +13 -4
  524. package/dist/selection/domSelection.js +110 -183
  525. package/dist/selection/pointer.svelte.d.ts +12 -10
  526. package/dist/selection/pointer.svelte.js +154 -71
  527. package/dist/selection/replaceSelection.d.ts +21 -22
  528. package/dist/selection/replaceSelection.js +60 -69
  529. package/dist/selection/selection.svelte.d.ts +5 -73
  530. package/dist/selection/selection.svelte.js +263 -542
  531. package/dist/selection/selection.utils.d.ts +34 -11
  532. package/dist/selection/selection.utils.js +128 -247
  533. package/dist/selection/visibility.d.ts +11 -8
  534. package/dist/selection/visibility.js +23 -8
  535. package/dist/session/announcer.svelte.d.ts +2 -1
  536. package/dist/session/announcer.svelte.js +7 -3
  537. package/dist/session/attempt.d.ts +33 -39
  538. package/dist/session/attempt.js +61 -53
  539. package/dist/session/bindings.js +108 -139
  540. package/dist/session/commands.d.ts +47 -22
  541. package/dist/session/commands.js +206 -208
  542. package/dist/session/composition.svelte.d.ts +2 -4
  543. package/dist/session/composition.svelte.js +55 -65
  544. package/dist/session/editing/text.d.ts +6 -0
  545. package/dist/session/editing/text.js +17 -3
  546. package/dist/session/handles.d.ts +10 -1
  547. package/dist/session/handles.js +28 -0
  548. package/dist/session/history.d.ts +0 -4
  549. package/dist/session/history.js +15 -21
  550. package/dist/session/inputRules.js +75 -84
  551. package/dist/session/keymap.d.ts +1 -6
  552. package/dist/session/keymap.js +17 -20
  553. package/dist/session/moves.d.ts +10 -10
  554. package/dist/session/moves.js +31 -59
  555. package/dist/session/navigation.d.ts +18 -3
  556. package/dist/session/navigation.js +194 -153
  557. package/dist/session/ports.d.ts +7 -0
  558. package/dist/session/selection.d.ts +4 -3
  559. package/dist/session/selection.js +8 -0
  560. package/dist/session/suggestions.svelte.d.ts +1 -1
  561. package/dist/session/suggestions.svelte.js +64 -47
  562. package/dist/session/virtual.d.ts +3 -3
  563. package/dist/session/virtual.js +18 -40
  564. package/dist/surface/attributes.d.ts +1 -0
  565. package/dist/surface/attributes.js +3 -26
  566. package/dist/surface/cells.d.ts +5 -0
  567. package/dist/surface/cells.js +5 -0
  568. package/dist/surface/lines.d.ts +32 -0
  569. package/dist/surface/lines.js +43 -0
  570. package/dist/surface/observer.svelte.d.ts +3 -20
  571. package/dist/surface/observer.svelte.js +73 -77
  572. package/dist/surface/overlay.d.ts +48 -6
  573. package/dist/surface/overlay.js +133 -23
  574. package/dist/surface/pin.svelte.d.ts +5 -0
  575. package/dist/surface/pin.svelte.js +5 -0
  576. package/dist/surface/projector.svelte.d.ts +4 -6
  577. package/dist/surface/projector.svelte.js +42 -69
  578. package/dist/text/text.svelte.d.ts +14 -40
  579. package/dist/text/text.svelte.js +35 -51
  580. package/dist/text/wordBoundary.d.ts +19 -0
  581. package/dist/text/wordBoundary.js +29 -44
  582. package/dist/themes/notion.css +315 -126
  583. package/dist/utils/json.d.ts +3 -1
  584. package/dist/utils/json.js +52 -51
  585. package/dist/utils/listen.d.ts +8 -0
  586. package/dist/utils/listen.js +19 -0
  587. package/package.json +4 -5
  588. package/dist/block/block.utils.d.ts +0 -340
  589. package/dist/block/block.utils.js +0 -356
  590. package/dist/collaboration/history/HistoryPanel.svelte +0 -525
  591. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  592. package/dist/collaboration/history/panel.d.ts +0 -43
  593. package/dist/collaboration/history/panel.js +0 -3
  594. package/dist/components/SuggestionRanges.svelte +0 -58
  595. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  596. package/dist/crdt/doc/table.d.ts +0 -21
  597. package/dist/crdt/doc/table.js +0 -288
  598. package/dist/crdt/migration/generation.d.ts +0 -58
  599. package/dist/crdt/migration/generation.js +0 -70
  600. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  601. package/dist/crdt/migration/legacy-schema.js +0 -151
  602. package/dist/crdt/migration/migrate.d.ts +0 -56
  603. package/dist/crdt/migration/migrate.js +0 -227
  604. package/dist/crdt/nodes.d.ts +0 -121
  605. package/dist/crdt/nodes.js +0 -56
  606. package/dist/crdt/text/index/checks.d.ts +0 -15
  607. package/dist/crdt/text/index/checks.js +0 -156
  608. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  609. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  610. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  611. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  612. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  613. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  614. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  615. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  616. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  617. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  618. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  619. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  620. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  621. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  622. package/dist/edytor.utils.d.ts +0 -50
  623. package/dist/edytor.utils.js +0 -67
  624. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -447
  625. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  626. package/dist/plugins/find/FindBar.svelte +0 -170
  627. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  628. package/dist/plugins/find/FindHighlights.svelte +0 -75
  629. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  630. package/dist/plugins/icons.d.ts +0 -2
  631. package/dist/plugins/icons.js +0 -63
  632. package/dist/plugins/image/ImageEmpty.svelte +0 -116
  633. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -12
  634. package/dist/plugins/keepInView.d.ts +0 -4
  635. package/dist/plugins/keepInView.js +0 -6
  636. package/dist/plugins/media/UrlPasteMenu.svelte +0 -83
  637. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -7
  638. package/dist/plugins/richtext/labels.d.ts +0 -5
  639. package/dist/plugins/richtext/labels.js +0 -3
  640. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -360
  641. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  642. package/dist/plugins/toolbar/LinkCard.svelte +0 -118
  643. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -7
  644. package/dist/plugins/toolbar/Toolbar.svelte +0 -400
  645. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  646. package/dist/plugins/triggers/TriggerMenu.svelte +0 -144
  647. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  648. package/dist/session/props.d.ts +0 -28
  649. package/dist/session/props.js +0 -162
  650. package/dist/text/deltas.d.ts +0 -22
  651. package/dist/text/deltas.js +0 -46
  652. package/dist/text/text.utils.d.ts +0 -45
  653. package/dist/text/text.utils.js +0 -199
@@ -0,0 +1,243 @@
1
+ import { blockSelection, noSelection } from '../../session/selection.js';
2
+ import { takeKeys } from '../../events/onFocus.js';
3
+ import { marqueeBlocks } from './marquee.js';
4
+ /** Within this distance (px) of the scroller's top or bottom edge, the page scrolls. */
5
+ const EDGE = 48;
6
+ /** The fastest auto-scroll, in px a frame: at the edge or past it. */
7
+ const SPEED = 24;
8
+ const sameIds = (a, b) => a.length === b.length && a.every((id, i) => id === b[i]);
9
+ export class MarqueeController {
10
+ edytor;
11
+ threshold;
12
+ /** The rectangle while the marquee shows (client coordinates), else `null` (reactive). */
13
+ rect = $state.raw(null);
14
+ /** The block ids the marquee selects (reactive). */
15
+ ids = $state.raw([]);
16
+ /** Shift or Mod was held at the press (reactive). */
17
+ adding = $state(false);
18
+ #press = null;
19
+ /** The drag passed the threshold: the rectangle shows. */
20
+ #active = false;
21
+ /** The pointer, in client coordinates. */
22
+ #pointer = { x: 0, y: 0 };
23
+ #frame = null;
24
+ /** The editor's nearest scrolling ancestor (`null`: the page), read when the rectangle starts. */
25
+ #scroller = null;
26
+ constructor(edytor, threshold) {
27
+ this.edytor = edytor;
28
+ this.threshold = threshold;
29
+ }
30
+ /** What a `box` snippet receives. */
31
+ get payload() {
32
+ const { rect } = this;
33
+ return rect && { rect, count: this.ids.length, ids: this.ids, adding: this.adding };
34
+ }
35
+ /**
36
+ * A primary press from a mouse or a pen, already classified as the
37
+ * editor's empty area (`host`: the host's own; else the handle gutter or
38
+ * the app's container). Answers whether the marquee took it.
39
+ */
40
+ press = (event, host) => {
41
+ const node = this.edytor.node;
42
+ const document = node?.ownerDocument;
43
+ const view = document?.defaultView;
44
+ if (!node || !document || !view || event.button !== 0)
45
+ return false;
46
+ if (event.pointerType === 'touch')
47
+ return false;
48
+ // A press while one is down: the release of the last one never reached the page.
49
+ this.#end();
50
+ const box = node.getBoundingClientRect();
51
+ const mod = this.edytor.keymap.isMac ? event.metaKey : event.ctrlKey;
52
+ const adding = event.shiftKey || mod;
53
+ const before = this.edytor.selection.value;
54
+ const { clientX, clientY, shiftKey, altKey, metaKey, ctrlKey } = event;
55
+ // The press is the marquee's: the browser starts no selection of its own and moves no focus.
56
+ if (event.type === 'mousedown')
57
+ event.preventDefault();
58
+ const cancel = (event) => event.preventDefault();
59
+ const compat = (event) => {
60
+ if (event.button === 0)
61
+ event.preventDefault();
62
+ };
63
+ const listening = new AbortController();
64
+ const on = (target, type, listener) => target.addEventListener(type, listener, {
65
+ capture: true,
66
+ passive: type === 'scroll',
67
+ signal: listening.signal
68
+ });
69
+ // WebKit after a native drag sends a lone `mousedown` and may skip the
70
+ // pointer events of the press: its mouse events end it too.
71
+ for (const type of ['pointermove', 'mousemove'])
72
+ on(document, type, this.#moved);
73
+ for (const type of ['pointerup', 'mouseup'])
74
+ on(document, type, this.#released);
75
+ on(document, 'pointercancel', this.cancel);
76
+ on(document, 'mousedown', compat);
77
+ on(document, 'selectstart', cancel);
78
+ on(document, 'dragstart', cancel);
79
+ on(document, 'scroll', this.#scrolled);
80
+ on(view, 'keydown', this.#key);
81
+ this.#press = {
82
+ x: clientX - box.left,
83
+ y: clientY - box.top,
84
+ point: { clientX, clientY, shiftKey, altKey, metaKey, ctrlKey },
85
+ host,
86
+ before,
87
+ base: adding && before.kind === 'blocks' ? before.ids : [],
88
+ listening
89
+ };
90
+ this.#pointer = { x: clientX, y: clientY };
91
+ this.adding = adding;
92
+ return true;
93
+ };
94
+ #moved = (event) => {
95
+ const press = this.#press;
96
+ if (!press)
97
+ return;
98
+ // A release the page never saw (over a frame of another origin, outside the window):
99
+ // a mouse move with no button down ends the gesture, as `sel.drag.unseen-release`.
100
+ if (event.type === 'mousemove' && event.buttons === 0)
101
+ return this.#end();
102
+ this.#pointer = { x: event.clientX, y: event.clientY };
103
+ if (!this.#active) {
104
+ const { clientX, clientY } = press.point;
105
+ if (Math.hypot(event.clientX - clientX, event.clientY - clientY) < this.threshold)
106
+ return;
107
+ this.#active = true;
108
+ this.#scroller = this.edytor.node ? scrollerOf(this.edytor.node) : null;
109
+ // The editor takes the keys: Delete, Mod+C, Tab and the arrows act on the selection.
110
+ takeKeys(this.edytor);
111
+ }
112
+ this.#update();
113
+ this.#autoScroll();
114
+ };
115
+ /** The page scrolled under the drag: the rectangle keeps its start where it was in the page. */
116
+ #scrolled = () => {
117
+ if (this.#active)
118
+ this.#update();
119
+ };
120
+ /** The rectangle from the press to the pointer, and the selection it makes. */
121
+ #update = () => {
122
+ const press = this.#press;
123
+ const node = this.edytor.node;
124
+ if (!press || !node)
125
+ return;
126
+ const box = node.getBoundingClientRect();
127
+ const [x, y] = [box.left + press.x, box.top + press.y];
128
+ const { x: px, y: py } = this.#pointer;
129
+ const area = {
130
+ left: Math.min(x, px),
131
+ top: Math.min(y, py),
132
+ right: Math.max(x, px, Math.min(x, px) + 1),
133
+ bottom: Math.max(y, py, Math.min(y, py) + 1)
134
+ };
135
+ const base = new Set(press.base);
136
+ const hits = marqueeBlocks(this.edytor, area).flatMap((block) => base.has(block.id) ? [] : [block.id]);
137
+ const ids = [...press.base, ...hits];
138
+ this.rect = new DOMRectReadOnly(area.left, area.top, area.right - area.left, area.bottom - area.top);
139
+ if (!sameIds(ids, this.ids)) {
140
+ this.ids = ids;
141
+ this.edytor.selection.select(ids.length ? blockSelection(ids) : noSelection);
142
+ }
143
+ this.edytor.overlay.invalidate();
144
+ };
145
+ /** The distance to scroll this frame (negative: up), from the pointer's place by the scroller's edges. */
146
+ #step = () => {
147
+ const node = this.edytor.node;
148
+ const view = node?.ownerDocument.defaultView;
149
+ if (!node || !view)
150
+ return null;
151
+ const scroller = this.#scroller;
152
+ const box = scroller?.getBoundingClientRect();
153
+ const top = Math.max(box?.top ?? 0, 0);
154
+ const bottom = Math.min(box?.bottom ?? view.innerHeight, view.innerHeight);
155
+ const y = this.#pointer.y;
156
+ const near = (distance) => Math.ceil(SPEED * Math.min(1, (EDGE - distance) / EDGE));
157
+ const by = y < top + EDGE ? -near(y - top) : y > bottom - EDGE ? near(bottom - y) : 0;
158
+ return by ? { scroller, by } : null;
159
+ };
160
+ /**
161
+ * Browser rule `marquee.auto-scroll` (one named frame loop): while the
162
+ * pointer is within `EDGE` of the scroller's top or bottom (the editor's
163
+ * nearest scrolling ancestor, else the page), it scrolls a step a frame,
164
+ * faster nearer the edge, and the rectangle extends with it. It stops
165
+ * when the pointer leaves the band, the scroller cannot go further, or
166
+ * the gesture ends.
167
+ */
168
+ #autoScroll = () => {
169
+ const view = this.edytor.node?.ownerDocument.defaultView;
170
+ if (this.#frame !== null || !this.#active || !view?.requestAnimationFrame || !this.#step())
171
+ return;
172
+ this.#frame = view.requestAnimationFrame(() => {
173
+ this.#frame = null;
174
+ const step = this.#step();
175
+ if (!step || !this.#active)
176
+ return;
177
+ const target = step.scroller ?? view.document.scrollingElement;
178
+ if (!target)
179
+ return;
180
+ const before = target.scrollTop;
181
+ target.scrollTop += step.by;
182
+ // The scroller is at its end: the loop waits for the next move.
183
+ if (target.scrollTop === before)
184
+ return;
185
+ this.#update();
186
+ this.#autoScroll();
187
+ });
188
+ };
189
+ #released = () => {
190
+ const press = this.#press;
191
+ if (!press)
192
+ return;
193
+ const click = !this.#active;
194
+ this.#end();
195
+ // A press released where it began is a click: the host's own (the trailing paragraph, a caret).
196
+ if (click && press.host)
197
+ this.edytor.selection.pointer.marginClick(press.point);
198
+ };
199
+ /** Escape: the selection from before the press comes back, and the gesture ends. */
200
+ #key = (event) => {
201
+ if (event.key !== 'Escape' || !this.#press)
202
+ return;
203
+ event.preventDefault();
204
+ event.stopPropagation();
205
+ this.cancel();
206
+ };
207
+ /** End the gesture and give back the selection from before the press. */
208
+ cancel = () => {
209
+ const press = this.#press;
210
+ if (!press)
211
+ return;
212
+ const active = this.#active;
213
+ this.#end();
214
+ if (active)
215
+ this.edytor.selection.select(press.before);
216
+ };
217
+ #end = () => {
218
+ const press = this.#press;
219
+ this.#press = null;
220
+ this.#active = false;
221
+ press?.listening.abort();
222
+ if (this.#frame !== null)
223
+ this.edytor.node?.ownerDocument.defaultView?.cancelAnimationFrame(this.#frame);
224
+ this.#frame = null;
225
+ this.rect = null;
226
+ this.ids = [];
227
+ this.adding = false;
228
+ this.edytor.overlay.invalidate();
229
+ };
230
+ destroy = () => this.#end();
231
+ }
232
+ /** The editor's nearest ancestor that scrolls vertically, else `null` (the page). */
233
+ const scrollerOf = (node) => {
234
+ const view = node.ownerDocument.defaultView;
235
+ const { body, documentElement } = node.ownerDocument;
236
+ for (let at = node.parentElement; at && at !== body && at !== documentElement;) {
237
+ const { overflowY } = view.getComputedStyle(at);
238
+ if (/auto|scroll|overlay/.test(overflowY) && at.scrollHeight > at.clientHeight)
239
+ return at;
240
+ at = at.parentElement;
241
+ }
242
+ return null;
243
+ };
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Which blocks a marquee rectangle selects (`sel.marquee.blocks`, Notion),
3
+ * read from the blocks' boxes: the one rule the marquee's live selection
4
+ * reads. A pointer move never reads the whole page: a binary search over a
5
+ * parent's children (vertical order) finds the ones at the rectangle's
6
+ * height, then their descendants the same way.
7
+ */
8
+ import type { Block } from '../../block/block.svelte.js';
9
+ import type { Edytor } from '../../edytor.svelte.js';
10
+ /** A rectangle in viewport (client) coordinates. */
11
+ export type MarqueeRect = {
12
+ left: number;
13
+ top: number;
14
+ right: number;
15
+ bottom: number;
16
+ };
17
+ /**
18
+ * The blocks `rect` selects, in document order, each once:
19
+ *
20
+ * - a block whose own row (its box down to where its first shown child
21
+ * begins) meets the rectangle is selected with its whole shown subtree
22
+ * (Notion: a block carries its children);
23
+ * - a block whose box meets it only below its own row is not: its children
24
+ * are read the same way;
25
+ * - a void or an island (an image, a code block, a table) is one unit:
26
+ * selected when its box meets the rectangle, never its rows or lines;
27
+ * - a layout and its columns are never selected themselves: the columns the
28
+ * rectangle meets are read, so it selects the blocks of the columns it
29
+ * crosses (a layout covered whole stands for them, `liftLayouts`); a list
30
+ * container (it shows only its items) is read through its items;
31
+ * - a block hidden by view state (a closed toggle's body) never.
32
+ */
33
+ export declare const marqueeBlocks: (edytor: Edytor, rect: MarqueeRect) => Block[];
@@ -0,0 +1,89 @@
1
+ import { hidden } from '../../selection/visibility.js';
2
+ import { bandRun } from '../../surface/overlay.js';
3
+ /** Whether two boxes overlap (an edge they share is no overlap: rows touch). */
4
+ const meets = (rect, box) => rect.left < box.right && rect.right > box.left && rect.top < box.bottom && rect.bottom > box.top;
5
+ /**
6
+ * The blocks `rect` selects, in document order, each once:
7
+ *
8
+ * - a block whose own row (its box down to where its first shown child
9
+ * begins) meets the rectangle is selected with its whole shown subtree
10
+ * (Notion: a block carries its children);
11
+ * - a block whose box meets it only below its own row is not: its children
12
+ * are read the same way;
13
+ * - a void or an island (an image, a code block, a table) is one unit:
14
+ * selected when its box meets the rectangle, never its rows or lines;
15
+ * - a layout and its columns are never selected themselves: the columns the
16
+ * rectangle meets are read, so it selects the blocks of the columns it
17
+ * crosses (a layout covered whole stands for them, `liftLayouts`); a list
18
+ * container (it shows only its items) is read through its items;
19
+ * - a block hidden by view state (a closed toggle's body) never.
20
+ */
21
+ export const marqueeBlocks = (edytor, rect) => {
22
+ const { facade, idToBlock } = edytor;
23
+ const out = [];
24
+ const seen = new Set();
25
+ const box = (block) => block.node?.getBoundingClientRect();
26
+ const add = (block) => {
27
+ if (seen.has(block.id))
28
+ return;
29
+ seen.add(block.id);
30
+ out.push(block);
31
+ };
32
+ const unit = (block) => facade.isVoid(block.id) || facade.isIsland(block.id);
33
+ const layout = (block) => facade.isLayout(block.id) || facade.isLayoutItem(block.id);
34
+ /** A block's children ids while they show (a closed toggle hides its whole body). */
35
+ const shownChildren = (block) => {
36
+ const ids = facade.childrenIds(block?.id ?? null);
37
+ const first = ids[0];
38
+ return first === undefined || (block && hidden(idToBlock.block(first))) ? [] : ids;
39
+ };
40
+ /** The children of `parent` at the rectangle's height: a binary search over their boxes. */
41
+ const rows = (ids) => {
42
+ const at = (i) => box(idToBlock.block(ids[i]));
43
+ // Rows touch: an edge they share is no overlap.
44
+ const [first, end] = bandRun(ids.length, at, rect.top, rect.bottom, true);
45
+ return ids.slice(first, end).flatMap((id) => {
46
+ const block = idToBlock.block(id);
47
+ return hidden(block) ? [] : [block];
48
+ });
49
+ };
50
+ /** `block` and its shown subtree, a layout and its columns as their blocks. */
51
+ const whole = (block) => {
52
+ if (!layout(block))
53
+ add(block);
54
+ if (unit(block))
55
+ return;
56
+ for (const id of shownChildren(block)) {
57
+ const child = idToBlock.block(id);
58
+ if (!hidden(child))
59
+ whole(child);
60
+ }
61
+ };
62
+ const visit = (block) => {
63
+ const own = box(block);
64
+ if (!own || !meets(rect, own))
65
+ return;
66
+ if (unit(block))
67
+ return add(block);
68
+ if (facade.isLayout(block.id)) {
69
+ for (const id of facade.childrenIds(block.id))
70
+ visit(idToBlock.block(id));
71
+ return;
72
+ }
73
+ const children = shownChildren(block);
74
+ if (facade.isLayoutItem(block.id) || block.isContainer) {
75
+ for (const child of rows(children))
76
+ visit(child);
77
+ return;
78
+ }
79
+ const first = children[0] === undefined ? undefined : box(idToBlock.block(children[0]));
80
+ const bottom = first && first.height > 0 && first.top > own.top ? first.top : own.bottom;
81
+ if (meets(rect, { left: own.left, right: own.right, top: own.top, bottom }))
82
+ return whole(block);
83
+ for (const child of rows(children))
84
+ visit(child);
85
+ };
86
+ for (const block of rows(shownChildren(null)))
87
+ visit(block);
88
+ return out;
89
+ };
@@ -0,0 +1,32 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { Plugin } from '../../plugins.js';
3
+ import { type MarqueeBoxPayload } from './MarqueeController.svelte.js';
4
+ export type MarqueePluginOptions = {
5
+ /**
6
+ * An element around the editor whose empty area starts a marquee too (the
7
+ * page, as in Notion): a CSS selector the editor's element is matched
8
+ * against with `closest()`, or a function of the editor's element. A
9
+ * press on that element itself, or on a wrapper between it and the
10
+ * editor, starts one; its other content (a title, a button) keeps its
11
+ * presses.
12
+ */
13
+ container?: string | ((editor: HTMLElement) => Element | null | undefined);
14
+ /** How far (px) the pointer moves before the rectangle starts: a shorter press is a click. Default 4. */
15
+ threshold?: number;
16
+ /**
17
+ * The rectangle's markup; it renders in a host placed and sized to the
18
+ * rectangle (without it, the blocks are selected and no rectangle shows).
19
+ */
20
+ box?: Snippet<[MarqueeBoxPayload]>;
21
+ };
22
+ /**
23
+ * Block selection with a rectangle (Notion's rubber band), opt-in: a press
24
+ * in the editor's empty area — the margins beside the blocks (the handle
25
+ * gutter, not a handle), the space below the last block, an optional
26
+ * `container` around the editor — then a drag draws a rectangle and selects,
27
+ * live, the blocks it meets. Shift or Mod adds to the selection there was;
28
+ * Escape gives it back. On release the block selection stays and the editor
29
+ * has the keys. A click without a drag keeps what a press there did (below
30
+ * the last block, the trailing paragraph).
31
+ */
32
+ export declare const createMarqueePlugin: (options?: MarqueePluginOptions) => Plugin;
@@ -0,0 +1,68 @@
1
+ import { onPress } from '../../events/onFocus.js';
2
+ import MarqueeBox from './MarqueeBox.svelte';
3
+ import { MarqueeController } from './MarqueeController.svelte.js';
4
+ /** The handle gutter: a block handle's own box, around its buttons (never a button). */
5
+ const HANDLE_HOST = '[data-edytor-block-handle-host]';
6
+ const controllers = new WeakMap();
7
+ /** The marquee's controller of `edytor`; `undefined` when the plugin is not listed. @internal */
8
+ export const marqueeController = (edytor) => controllers.get(edytor);
9
+ /**
10
+ * Block selection with a rectangle (Notion's rubber band), opt-in: a press
11
+ * in the editor's empty area — the margins beside the blocks (the handle
12
+ * gutter, not a handle), the space below the last block, an optional
13
+ * `container` around the editor — then a drag draws a rectangle and selects,
14
+ * live, the blocks it meets. Shift or Mod adds to the selection there was;
15
+ * Escape gives it back. On release the block selection stays and the editor
16
+ * has the keys. A click without a drag keeps what a press there did (below
17
+ * the last block, the trailing paragraph).
18
+ */
19
+ export const createMarqueePlugin = (options = {}) => (edytor) => {
20
+ const controller = new MarqueeController(edytor, options.threshold ?? 4);
21
+ controllers.set(edytor, controller);
22
+ return {
23
+ onEdytorAttached: ({ node }) => {
24
+ const layer = edytor.overlay.layer;
25
+ const offs = [
26
+ // The host's own area: classified with the editor's presses (`events/onFocus.ts`).
27
+ edytor.selection.pointer.claimMargins((event) => controller.press(event, true)),
28
+ onPress(edytor, layer, (event) => {
29
+ const target = event.target;
30
+ if (target?.matches?.(HANDLE_HOST))
31
+ controller.press(event, false);
32
+ })
33
+ ];
34
+ const container = typeof options.container === 'string'
35
+ ? node.closest(options.container)
36
+ : options.container?.(node);
37
+ if (container)
38
+ offs.push(onPress(edytor, container, (event) => {
39
+ const target = event.target;
40
+ const around = target === container ||
41
+ (target !== node && !!target?.contains(node) && container.contains(target));
42
+ if (around)
43
+ controller.press(event, false);
44
+ }));
45
+ const { box } = options;
46
+ const unmount = box
47
+ ? edytor.overlay.mount(MarqueeBox, { controller, box }, 'edytor-marquee-host', 6, (host) => {
48
+ const rect = controller.rect;
49
+ return () => Object.assign(host.style, {
50
+ pointerEvents: 'none',
51
+ display: rect ? '' : 'none',
52
+ ...(rect && {
53
+ left: `${rect.left}px`,
54
+ top: `${rect.top}px`,
55
+ width: `${rect.width}px`,
56
+ height: `${rect.height}px`
57
+ })
58
+ });
59
+ })
60
+ : () => { };
61
+ return () => {
62
+ controller.destroy();
63
+ offs.forEach((off) => off());
64
+ unmount();
65
+ };
66
+ }
67
+ };
68
+ };
@@ -1,96 +1,11 @@
1
1
  <script module lang="ts">
2
- import type { Plugin, BlockSnippetPayload } from '../../plugins.js';
3
- import type { Block } from '../../block/block.svelte.js';
4
- import type { Edytor } from '../../edytor.svelte.js';
5
- import MediaEmpty from './MediaEmpty.svelte';
6
- import { mediaKinds } from '../../crdt/semantics.js';
7
- import { keywordsOf, labelsWith } from '../../labels.js';
8
- import {
9
- claimed,
10
- escapeHtml,
11
- mediaLabels,
12
- mediaSourceOf,
13
- safeMediaSrc,
14
- mediaUploads,
15
- type MediaPluginOptions
16
- } from './media.js';
17
-
18
- const uploadOf = new WeakMap<Edytor, MediaPluginOptions['upload']>();
19
-
20
- const audioLink = (block: Block | undefined, value: string) => {
21
- const src = safeMediaSrc(value);
22
- if (!block || !src) return false;
23
- block.data.src = src;
24
- return true;
25
- };
2
+ import type { Plugin } from '../../plugins.js';
3
+ import { sourcePlugin } from './SourceBlock.svelte';
26
4
 
27
5
  /**
28
6
  * Notion's audio block: an audio file (an `http(s)` link, or an upload
29
7
  * through `upload`) in the browser's player, with an editable caption.
30
8
  * Void: its only text is the caption.
31
9
  */
32
- export const createAudioPlugin =
33
- (options: MediaPluginOptions = {}): Plugin =>
34
- (edytor) => {
35
- // First wins, as for the kind: a second listing never replaces it.
36
- const first = !!edytor && !uploadOf.has(edytor);
37
- if (first) uploadOf.set(edytor, options.upload);
38
- const onPaste = first ? mediaUploads(edytor, 'audio', options.upload) : undefined;
39
- const labels = labelsWith('media', options.labels);
40
- mediaLabels.audio.claim(edytor, labels);
41
- return {
42
- ...(onPaste ? { onPaste } : {}),
43
- blocks: {
44
- audio: {
45
- ...mediaKinds.audio,
46
- snippet: audio,
47
- element: 'figure',
48
- presets: [
49
- {
50
- label: labels.audio.label,
51
- icon: '🎵',
52
- keywords: keywordsOf('block.audio', ['sound', 'music', 'mp3'], options.keywords),
53
- group: 'Media'
54
- }
55
- ],
56
- html: (block, caption) => {
57
- const src = safeMediaSrc(block.data?.src);
58
- const media = src ? `<audio src="${escapeHtml(src)}" controls></audio>` : '';
59
- return `<figure>${media}<figcaption>${caption}</figcaption></figure>`;
60
- },
61
- // An `audio` (bare, or in a `figure`) with a safe `src` or `source`.
62
- parse: (el) => {
63
- const src = mediaSourceOf(claimed(el, 'audio'));
64
- return src ? { src } : undefined;
65
- }
66
- }
67
- }
68
- };
69
- };
70
-
71
- /** The audio block, links only. */
72
- export const audioPlugin = createAudioPlugin();
10
+ export const createAudioPlugin = (): Plugin => sourcePlugin('audio', ['sound', 'music', 'mp3']);
73
11
  </script>
74
-
75
- {#snippet audio({ block, content }: BlockSnippetPayload<{ src?: string }>)}
76
- {@const src = safeMediaSrc(block.data.src)}
77
- {#if src}
78
- <div use:block.void data-edytor-audio>
79
- <audio {src} controls preload="metadata" style="display: block; width: 100%"></audio>
80
- </div>
81
- {:else}
82
- <div use:block.void data-edytor-media-empty>
83
- <MediaEmpty
84
- block={block.handle}
85
- kind="audio"
86
- icon="🎵"
87
- accept="audio/*"
88
- upload={block.handle && uploadOf.get(block.handle.edytor)}
89
- link={(value) => audioLink(block.handle, value)}
90
- />
91
- </div>
92
- {/if}
93
- <!-- The core renders the kind's <figure> around this markup. -->
94
- <!-- svelte-ignore a11y_figcaption_parent -->
95
- <figcaption>{@render content()}</figcaption>
96
- {/snippet}
@@ -1,13 +1,10 @@
1
1
  import type { Plugin } from '../../plugins.js';
2
- import { type MediaPluginOptions } from './media.js';
3
2
  /**
4
3
  * Notion's audio block: an audio file (an `http(s)` link, or an upload
5
4
  * through `upload`) in the browser's player, with an editable caption.
6
5
  * Void: its only text is the caption.
7
6
  */
8
- export declare const createAudioPlugin: (options?: MediaPluginOptions) => Plugin;
9
- /** The audio block, links only. */
10
- export declare const audioPlugin: Plugin;
7
+ export declare const createAudioPlugin: () => Plugin;
11
8
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
12
9
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
13
10
  $$bindings?: Bindings;