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
@@ -40,52 +40,14 @@
40
40
  * (`table.range`);
41
41
  * - the plan's `at` is where the caret lands (`del.range.caret`).
42
42
  */
43
- import type { BlockId, Destination } from './placement/model.js';
44
- import type { Plan, PlanStep, Prepared } from './edytor-doc.js';
43
+ import type { BlockId } from './placement/model.js';
44
+ import type { Prepared } from './edytor-doc.js';
45
+ import type { OpsContext } from './doc/steps.js';
45
46
  /** A position in one document version: a block and a display offset. */
46
47
  export type DocPosition = {
47
48
  block: BlockId;
48
49
  offset: number;
49
50
  };
50
- /** What range deletion reads from the document and the step writers it composes. */
51
- export type RangeDeleteContext = {
52
- ref: (id: BlockId) => BlockId;
53
- refused: Prepared;
54
- plan: (ids: readonly BlockId[], writes: PlanStep[]) => Plan;
55
- order: () => {
56
- ids: readonly BlockId[];
57
- at: ReadonlyMap<BlockId, number>;
58
- };
59
- positionOf: (id: BlockId) => Destination | null;
60
- /** Display ancestors, nearest first (the root excluded). */
61
- ancestorsOf: (id: BlockId) => BlockId[];
62
- childrenIds: (parent: BlockId | null) => BlockId[];
63
- displayLength: (id: BlockId) => number;
64
- /** Live, with its own content node. */
65
- contentTarget: (id: BlockId) => boolean;
66
- rendersContent: (id: BlockId) => boolean;
67
- canMerge: (from: BlockId, into: BlockId) => boolean;
68
- isIsland: (id: BlockId) => boolean;
69
- /** An island declared `lines` (a code block): it holds only lines. */
70
- isLines: (id: BlockId) => boolean;
71
- move: (ids: BlockId[], parent: BlockId | null, index: number) => PlanStep[];
72
- /** A block that shows only its children: a list, a table row, a column. */
73
- isContainer: (id: BlockId) => boolean;
74
- /** A container that goes once it loses every child (it holds no text of its own). */
75
- emptiable: (id: BlockId) => boolean;
76
- /** The kind steps for `from`'s children `kids` landing under `parent` (island and container rules). */
77
- settle: (from: BlockId | null, kids: readonly BlockId[], parent: BlockId | null) => PlanStep[];
78
- remove: (id: BlockId, kept: readonly BlockId[]) => PlanStep;
79
- /**
80
- * The steps that dissolve each layout the plan leaves with one item or
81
- * none (`layout.dissolving`): `gone` it removes, `leaving` it moves.
82
- */
83
- dissolving: (gone: readonly BlockId[], leaving: readonly BlockId[], writes: readonly PlanStep[]) => PlanStep[];
84
- /** The table `id` is, or whose row or cell it is; `null` for any other block (`table.*`). */
85
- tableOf: (id: BlockId) => BlockId | null;
86
- /** `id` is a table's cell. */
87
- isTableCell: (id: BlockId) => boolean;
88
- };
89
51
  /**
90
52
  * What the view knows of a range (view state the document does not hold):
91
53
  * whether it hides a block, and, given `removed`, whether the block stays
@@ -95,7 +57,7 @@ export type RangeView = {
95
57
  hidden?: (id: BlockId, removed?: ReadonlySet<BlockId>) => boolean;
96
58
  };
97
59
  /** `deleteRange` and `replaceRange` (the head kept), prepared. */
98
- export declare const rangeDeleteOps: (c: RangeDeleteContext) => {
60
+ export declare const rangeDeleteOps: (c: OpsContext) => {
99
61
  deleteRange: (from: DocPosition, to: DocPosition, view?: RangeView) => Prepared;
100
62
  replaceRange: (from: DocPosition, to: DocPosition, view?: RangeView) => Prepared;
101
63
  };
@@ -1,3 +1,4 @@
1
+ import { ref } from './doc/plan.js';
1
2
  /** `deleteRange` and `replaceRange` (the head kept), prepared. */
2
3
  export const rangeDeleteOps = (c) => {
3
4
  // `headSpent`: a whole-doc retry keeps the head, but what it hid goes as if it went.
@@ -5,14 +6,14 @@ export const rangeDeleteOps = (c) => {
5
6
  // A position names shown text: a live block that renders its own content.
6
7
  const holds = (id) => c.contentTarget(id) && c.rendersContent(id);
7
8
  const pos = (p) => {
8
- const block = c.ref(p.block);
9
+ const block = ref(p.block);
9
10
  const len = holds(block) ? c.displayLength(block) : -1;
10
11
  return { block, offset: Math.max(0, Math.min(p.offset, len)) };
11
12
  };
12
13
  let [s, e] = [pos(from), pos(to)];
13
14
  if (!holds(s.block) || !holds(e.block))
14
- return c.refused;
15
- const { ids, at } = c.order();
15
+ return c.REFUSED;
16
+ const { ids, at } = c.view().order;
16
17
  if (at.get(s.block) > at.get(e.block) || (s.block === e.block && s.offset > e.offset))
17
18
  [s, e] = [e, s];
18
19
  const S = s.block;
@@ -104,7 +105,7 @@ export const rangeDeleteOps = (c) => {
104
105
  if (!doomed.has(parent(id)))
105
106
  writes.push(c.remove(id, kept));
106
107
  // A layout the range leaves with one column dissolves (`layout.dissolving`).
107
- writes.push(...c.dissolving([...doomed, ...(merges ? [E] : [])], rescued, writes));
108
+ writes.push(...c.dissolving(new Set([...doomed, ...(merges ? [E] : [])]), rescued, writes));
108
109
  const caret = (() => {
109
110
  if (!doomed.has(S))
110
111
  return s;
@@ -135,7 +136,7 @@ export const rangeDeleteOps = (c) => {
135
136
  * come after the start in reading order); the caret lands at the start.
136
137
  */
137
138
  const inTables = (s, e, view) => {
138
- const { ids, at } = c.order();
139
+ const { ids, at } = c.view().order;
139
140
  const [S, E] = [s.block, e.block];
140
141
  const kept = new Set(c.ancestorsOf(E));
141
142
  const between = ids.slice(at.get(S) + 1, at.get(E)).filter((id) => !view.hidden?.(id));
@@ -161,7 +162,7 @@ export const rangeDeleteOps = (c) => {
161
162
  const roots = [...doomed].filter((id) => !doomed.has(parentOf(id)));
162
163
  for (const id of roots)
163
164
  writes.push(c.remove(id, []));
164
- writes.push(...c.dissolving(roots, [], writes));
165
+ writes.push(...c.dissolving(new Set(roots), [], writes));
165
166
  return { ...c.plan([S], writes), at: s };
166
167
  };
167
168
  return { deleteRange: prepare(false), replaceRange: prepare(true) };
@@ -24,9 +24,29 @@
24
24
  * 6. the document's data, patched to the snapshot's.
25
25
  */
26
26
  import type { EngineDoc } from './engine-api.js';
27
- import type { BlockId, ContentItem, InlineSpec, PlacementModel } from './placement/model.js';
27
+ import { type BlockId, type ContentItem, type InlineSpec, type PlacementModel } from './placement/model.js';
28
28
  import type { DataPatch } from './data.js';
29
29
  import type { JSONDoc } from '../utils/json.js';
30
+ /** One display unit: a character (a code point) with its marks, or an inline atom, keyed for comparison. */
31
+ export type Unit = {
32
+ key: string;
33
+ item: ContentItem;
34
+ };
35
+ /** `items` one unit each (a character with its marks, or an atom), keyed for comparison. */
36
+ export declare const unitsOf: (items: readonly ContentItem[]) => Unit[];
37
+ /** The one changed stretch from `x` to `y`: `x[p, e)` became `mid`. */
38
+ export declare const hunk: (x: readonly Unit[], y: readonly Unit[]) => {
39
+ p: number;
40
+ e: number;
41
+ mid: Unit[];
42
+ };
43
+ /**
44
+ * Make block `id`'s content, `have` (its units now), read `want`: the one
45
+ * changed stretch between their common prefix and suffix is deleted and
46
+ * written again through the facade (an atom without an id gets a fresh
47
+ * one). Whether it wrote anything.
48
+ */
49
+ export declare const rewriteContent: <Plan>(facade: Pick<RestoreFacade<Plan>, "apply" | "prepare">, id: BlockId, have: readonly Unit[], want: readonly Unit[]) => boolean;
30
50
  export type RestoreReport = {
31
51
  /** Blocks revived (their delete or withdraw marks removed). */
32
52
  revived: number;
@@ -1,10 +1,11 @@
1
+ import { blockNodeOf, materializeSpec, ranksAt, view as modelView, writePlacement } from './placement/model.js';
1
2
  import { DEL_PREFIX, TYPE, WITHDRAW_PREFIX } from './schema.js';
2
- import { patchWrites, writeLeaves } from './data.js';
3
+ import { common, patchWrites, writeLeaves } from './data.js';
3
4
  import { canonKey } from './text/model.js';
4
5
  import { randOf } from './rand.js';
5
6
  import { toBlockSpec } from '../utils/json.js';
6
7
  /** `items` one unit each (a character with its marks, or an atom), keyed for comparison. */
7
- const unitsOf = (items) => {
8
+ export const unitsOf = (items) => {
8
9
  const out = [];
9
10
  for (const item of items) {
10
11
  if (item.kind === 'inline') {
@@ -42,6 +43,47 @@ const runsOf = (units) => {
42
43
  }
43
44
  return out;
44
45
  };
46
+ /** The one changed stretch from `x` to `y`: `x[p, e)` became `mid`. */
47
+ export const hunk = (x, y) => {
48
+ let p = 0;
49
+ while (p < x.length && p < y.length && x[p].key === y[p].key)
50
+ p++;
51
+ let q = 0;
52
+ while (q < x.length - p &&
53
+ q < y.length - p &&
54
+ x[x.length - 1 - q].key === y[y.length - 1 - q].key)
55
+ q++;
56
+ return { p, e: x.length - q, mid: y.slice(p, y.length - q) };
57
+ };
58
+ /** A unit's width in the block's offsets (a character's UTF-16 length; an atom counts 1). */
59
+ const width = (u) => (u.item.kind === 'text' ? u.item.text.length : 1);
60
+ /**
61
+ * Make block `id`'s content, `have` (its units now), read `want`: the one
62
+ * changed stretch between their common prefix and suffix is deleted and
63
+ * written again through the facade (an atom without an id gets a fresh
64
+ * one). Whether it wrote anything.
65
+ */
66
+ export const rewriteContent = (facade, id, have, want) => {
67
+ const { p, e, mid } = hunk(have, want);
68
+ if (p === e && mid.length === 0)
69
+ return false;
70
+ let at = have.slice(0, p).reduce((n, u) => n + width(u), 0);
71
+ const gone = have.slice(p, e).reduce((n, u) => n + width(u), 0);
72
+ if (gone > 0)
73
+ facade.apply(facade.prepare.deleteText(id, at, gone));
74
+ for (const item of runsOf(mid)) {
75
+ if (item.kind === 'text') {
76
+ facade.apply(facade.prepare.insertText(id, at, item.text, item.marks ?? {}));
77
+ at += item.text.length;
78
+ }
79
+ else {
80
+ const atom = { id: item.id || crypto.randomUUID(), type: item.type, data: item.data };
81
+ facade.apply(facade.prepare.insertInline(id, at, atom));
82
+ at += 1;
83
+ }
84
+ }
85
+ return true;
86
+ };
45
87
  /** Visible-tree order of `specs` with each block's snapshot parent. */
46
88
  const walk = (specs, parent, into) => {
47
89
  for (const spec of specs) {
@@ -50,43 +92,16 @@ const walk = (specs, parent, into) => {
50
92
  }
51
93
  return into;
52
94
  };
53
- /** The ids of `list` (positions in another order, `-1` absent) on its longest increasing run. */
54
- const longestRun = (positions) => {
55
- const tails = [];
56
- const tailAt = [];
57
- const links = new Array(positions.length).fill(-1);
58
- positions.forEach((position, i) => {
59
- if (position < 0)
60
- return;
61
- let lo = 0;
62
- let hi = tails.length;
63
- while (lo < hi) {
64
- const mid = (lo + hi) >> 1;
65
- if (tails[mid] < position)
66
- lo = mid + 1;
67
- else
68
- hi = mid;
69
- }
70
- tails[lo] = position;
71
- tailAt[lo] = i;
72
- links[i] = lo > 0 ? tailAt[lo - 1] : -1;
73
- });
74
- const kept = new Set();
75
- for (let i = tails.length ? tailAt[tails.length - 1] : -1; i !== -1; i = links[i])
76
- kept.add(i);
77
- return kept;
78
- };
79
95
  /**
80
96
  * Make the visible document `doc` (through `facade`, the facade over it)
81
97
  * equal `json`. Runs inside the caller's transaction; the writer is
82
98
  * `doc.clientID`. See the module comment for what it writes.
83
99
  */
84
100
  export const restoreDocument = (doc, facade, json) => {
85
- const M = facade.model;
86
101
  const report = { revived: 0, moved: 0, rewritten: 0, created: 0, deleted: 0 };
87
102
  const specs = json.children.map((block) => toBlockSpec(block));
88
103
  const all = walk(specs, null, new Map());
89
- const node = (id) => M.blockNodeOf(doc, id);
104
+ const node = (id) => blockNodeOf(doc, id);
90
105
  // 1 · Revive, and free every snapshot block from the claims on it.
91
106
  for (const id of all.keys()) {
92
107
  const n = node(id);
@@ -99,7 +114,7 @@ export const restoreDocument = (doc, facade, json) => {
99
114
  report.revived++;
100
115
  }
101
116
  {
102
- const { blocks } = M.view(doc);
117
+ const { blocks } = modelView(doc);
103
118
  for (const rec of blocks.values()) {
104
119
  // A deleted holder's claims are void (and stay so): only the others.
105
120
  if (rec.deleted || rec.claimsNode === undefined)
@@ -131,7 +146,8 @@ export const restoreDocument = (doc, facade, json) => {
131
146
  continue;
132
147
  const slots = facade.childSlots(parent);
133
148
  const index = new Map(slots.map((slot, i) => [slot.id, i]));
134
- const kept = longestRun(list.map((spec) => index.get(spec.id) ?? -1));
149
+ // What a longest common run of the two orders keeps stays where it is.
150
+ const kept = new Set(common(slots.map((slot) => slot.id), list.map((spec) => spec.id)).map(([, j]) => j));
135
151
  let prev;
136
152
  list.forEach((spec, i) => {
137
153
  if (kept.has(i)) {
@@ -148,14 +164,14 @@ export const restoreDocument = (doc, facade, json) => {
148
164
  ...(prev === undefined ? [] : [{ rank: prev }]),
149
165
  ...(next === undefined ? [] : [{ rank: next }])
150
166
  ];
151
- const [rank] = M.ranksAt(bounds, prev === undefined ? 0 : 1, 1, doc.clientID, randOf(doc));
167
+ const [rank] = ranksAt(bounds, prev === undefined ? 0 : 1, 1, doc.clientID, randOf(doc));
152
168
  const n = node(spec.id);
153
169
  if (n === null) {
154
- M.materializeSpec(doc, { ...spec, children: [] }, parent, rank);
170
+ materializeSpec(doc, { ...spec, children: [] }, parent, rank);
155
171
  report.created++;
156
172
  }
157
173
  else {
158
- M.writePlacement(doc, n, parent, rank);
174
+ writePlacement(doc, n, parent, rank);
159
175
  report.moved++;
160
176
  }
161
177
  prev = rank;
@@ -167,39 +183,18 @@ export const restoreDocument = (doc, facade, json) => {
167
183
  let have = unitsOf(facade.contentItems(id));
168
184
  if (have.length === want.length && have.every((u, i) => u.key === want[i].key))
169
185
  continue;
170
- const rec = M.view(doc).blocks.get(id);
186
+ const rec = modelView(doc).blocks.get(id);
171
187
  const claims = rec?.claimsNode;
172
188
  if (claims !== undefined && claims.length > 0) {
173
189
  claims.delete(0, claims.length);
174
190
  have = unitsOf(facade.contentItems(id));
175
191
  }
176
- let head = 0;
177
- while (head < have.length && head < want.length && have[head].key === want[head].key)
178
- head++;
179
- let tail = 0;
180
- while (tail < have.length - head &&
181
- tail < want.length - head &&
182
- have[have.length - 1 - tail].key === want[want.length - 1 - tail].key)
183
- tail++;
184
- const removed = have.length - head - tail;
185
- if (removed > 0)
186
- facade.apply(facade.prepare.deleteText(id, head, removed));
187
- let at = head;
188
- for (const item of runsOf(want.slice(head, want.length - tail))) {
189
- if (item.kind === 'text') {
190
- facade.apply(facade.prepare.insertText(id, at, item.text, item.marks ?? {}));
191
- at += item.text.length;
192
- }
193
- else {
194
- facade.apply(facade.prepare.insertInline(id, at, { id: item.id, type: item.type, data: item.data }));
195
- at += 1;
196
- }
197
- }
192
+ rewriteContent(facade, id, have, want);
198
193
  report.rewritten++;
199
194
  }
200
195
  // 5 · Every visible block outside the snapshot is deleted, with what it displays.
201
196
  for (let round = 0; round < 8; round++) {
202
- const view = M.view(doc);
197
+ const view = modelView(doc);
203
198
  const extra = view.order.ids.filter((id) => !all.has(id));
204
199
  if (extra.length === 0)
205
200
  break;
@@ -50,7 +50,7 @@ export declare const INLINE_NODE = "inline";
50
50
  /** Attr keys on a block node (`SCHEMA.blockAttrs`). */
51
51
  export declare const ID = "id";
52
52
  export declare const TYPE = "type";
53
- /** A block's or atom's whole data: the legacy layer, read under the leaves and exploded by the first patch. */
53
+ /** A block's or atom's whole data, as documents before 0.1.0-next.6 stored it: no longer read; the room's purge deletes it. */
54
54
  export declare const DATA = "data";
55
55
  /** A data leaf: `d/` and its path, RFC 6901 escaped (`crdt/data.ts`). */
56
56
  export declare const DATA_LEAF_PREFIX = "d/";
@@ -91,7 +91,7 @@ export declare const AT = "at";
91
91
  export declare const REC_PREFIX = "b/";
92
92
  /** The schema generation stamped on the `meta` root (`v`) and its manifest name (`schema`). */
93
93
  export declare const SCHEMA: {
94
- readonly version: 5;
94
+ readonly version: 6;
95
95
  readonly name: "edytor-doc";
96
96
  readonly roots: {
97
97
  readonly registry: "blocks";
@@ -43,7 +43,7 @@ export const INLINE_NODE = 'inline';
43
43
  /** Attr keys on a block node (`SCHEMA.blockAttrs`). */
44
44
  export const ID = 'id';
45
45
  export const TYPE = 'type';
46
- /** A block's or atom's whole data: the legacy layer, read under the leaves and exploded by the first patch. */
46
+ /** A block's or atom's whole data, as documents before 0.1.0-next.6 stored it: no longer read; the room's purge deletes it. */
47
47
  export const DATA = 'data';
48
48
  /** A data leaf: `d/` and its path, RFC 6901 escaped (`crdt/data.ts`). */
49
49
  export const DATA_LEAF_PREFIX = 'd/';
@@ -80,10 +80,9 @@ export const AT = 'at';
80
80
  export const REC_PREFIX = 'b/';
81
81
  /** The schema generation stamped on the `meta` root (`v`) and its manifest name (`schema`). */
82
82
  export const SCHEMA = {
83
- // 5 (0.1.0-next.25): paired marks, variable-length ranks, v2
84
- // SyncStep2; a generation-4 container converts through its JSON
85
- // (`migration/generation.ts`).
86
- version: 5,
83
+ // 6: one update encoding (the columnar one) on the wire and in storage;
84
+ // a container or frame of an earlier generation is refused.
85
+ version: 6,
87
86
  name: 'edytor-doc',
88
87
  roots: { registry: REGISTRY_KEY, meta: META_ROOT_KEY },
89
88
  metaAttrs: { version: 'v', schema: 'schema' }
@@ -53,16 +53,12 @@ export type NormalizedRole = {
53
53
  };
54
54
  /** `role` as {@link NormalizedRole}: the one form two declarations compare in. */
55
55
  export declare const normalizeRole: (role: BlockRole | undefined) => NormalizedRole;
56
- /** `richTextPlugin`'s structural rows (its other kinds are plain). */
56
+ /** `createRichTextPlugin()`'s structural rows (its other kinds are plain). */
57
57
  export declare const richTextKinds: {
58
58
  divider: {
59
59
  void: true;
60
60
  rendersContent: false;
61
61
  };
62
- horizontalRule: {
63
- void: true;
64
- rendersContent: false;
65
- };
66
62
  'ordered-list': {
67
63
  rendersContent: false;
68
64
  defaultChild: string;
@@ -73,7 +69,7 @@ export declare const richTextKinds: {
73
69
  };
74
70
  };
75
71
  /**
76
- * `richTextPlugin`'s mark edges: where a concurrent insert at each end
72
+ * `createRichTextPlugin()`'s mark edges: where a concurrent insert at each end
77
73
  * of a mark lands. A link grows at its start only (typing after it
78
74
  * stays out of it unless from inside the anchor); the others are inclusive.
79
75
  */
@@ -92,7 +88,7 @@ export declare const commentMarks: {
92
88
  edge: "exclusive";
93
89
  };
94
90
  };
95
- /** `codePlugin`'s structural rows: the code block is an island of `codeLine`s (`lines`). */
91
+ /** `createCodePlugin()`'s structural rows: the code block is an island of `codeLine`s (`lines`). */
96
92
  export declare const codeKinds: {
97
93
  code: {
98
94
  island: true;
@@ -101,15 +97,15 @@ export declare const codeKinds: {
101
97
  defaultChild: string;
102
98
  };
103
99
  };
104
- /** `imagePlugin`'s structural rows: void, its only text is the caption. */
100
+ /** `createImagePlugin()`'s structural rows: void, its only text is the caption. */
105
101
  export declare const imageKinds: {
106
102
  image: {
107
103
  void: true;
108
104
  };
109
105
  };
110
106
  /**
111
- * The media plugins' structural rows (`embedPlugin`, `bookmarkPlugin`,
112
- * `filePlugin`, `videoPlugin`, `audioPlugin`): void like the image, their
107
+ * The media plugins' structural rows (`createEmbedPlugin()`, `createBookmarkPlugin()`,
108
+ * `createFilePlugin()`, `createVideoPlugin()`, `createAudioPlugin()`): void like the image, their
113
109
  * only text is the caption.
114
110
  */
115
111
  export declare const mediaKinds: {
@@ -249,7 +245,7 @@ export declare const semanticsDigest: (config: DocumentSemanticsConfig) => Recor
249
245
  * names counts when it has facts. Anything but a digest compares nothing.
250
246
  */
251
247
  export declare const semanticsMismatch: (ours: Record<string, string>, theirs: unknown) => string[];
252
- /** `richTextPlugin`'s block roles and mark edges, for `createDocument({ semantics })` and the room. */
248
+ /** `createRichTextPlugin()`'s block roles and mark edges, for `createDocument({ semantics })` and the room. */
253
249
  export declare const richTextSemantics: {
254
250
  roles: Record<string, BlockRole>;
255
251
  rendersContent: Record<string, boolean>;
@@ -259,13 +255,13 @@ export declare const richTextSemantics: {
259
255
  edge: MarkEdge;
260
256
  }>;
261
257
  };
262
- /** `codePlugin`'s block roles. */
258
+ /** `createCodePlugin()`'s block roles. */
263
259
  export declare const codeSemantics: {
264
260
  roles: Record<string, BlockRole>;
265
261
  rendersContent: Record<string, boolean>;
266
262
  defaultChild: Record<string, string>;
267
263
  };
268
- /** `imagePlugin`'s block roles. */
264
+ /** `createImagePlugin()`'s block roles. */
269
265
  export declare const imageSemantics: {
270
266
  roles: Record<string, BlockRole>;
271
267
  rendersContent: Record<string, boolean>;
@@ -327,8 +323,7 @@ export declare const defaultSemantics: {
327
323
  };
328
324
  /**
329
325
  * The facade configuration (`EdytorDocConfig`) a document with no view
330
- * reads `semantics` with — the room's, and a generation cutover's
331
- * (`migration/generation.ts`): roles, default children, content-less kinds
326
+ * reads `semantics` with — the room's: roles, default children, content-less kinds
332
327
  * and mark edges, each answered only for a kind the tables name.
333
328
  */
334
329
  export declare const facadeConfigOf: (semantics: DocumentSemanticsConfig) => {
@@ -48,15 +48,14 @@ const frozen = (value) => {
48
48
  }
49
49
  return value;
50
50
  };
51
- /** `richTextPlugin`'s structural rows (its other kinds are plain). */
51
+ /** `createRichTextPlugin()`'s structural rows (its other kinds are plain). */
52
52
  export const richTextKinds = frozen({
53
53
  divider: { void: true, rendersContent: false },
54
- horizontalRule: { void: true, rendersContent: false },
55
54
  'ordered-list': { rendersContent: false, defaultChild: 'list-item' },
56
55
  'unordered-list': { rendersContent: false, defaultChild: 'list-item' }
57
56
  });
58
57
  /**
59
- * `richTextPlugin`'s mark edges: where a concurrent insert at each end
58
+ * `createRichTextPlugin()`'s mark edges: where a concurrent insert at each end
60
59
  * of a mark lands. A link grows at its start only (typing after it
61
60
  * stays out of it unless from inside the anchor); the others are inclusive.
62
61
  */
@@ -71,15 +70,15 @@ export const richTextMarks = frozen({
71
70
  export const commentMarks = frozen({
72
71
  comment: { edge: 'exclusive' }
73
72
  });
74
- /** `codePlugin`'s structural rows: the code block is an island of `codeLine`s (`lines`). */
73
+ /** `createCodePlugin()`'s structural rows: the code block is an island of `codeLine`s (`lines`). */
75
74
  export const codeKinds = frozen({
76
75
  code: { island: true, lines: true, rendersContent: false, defaultChild: 'codeLine' }
77
76
  });
78
- /** `imagePlugin`'s structural rows: void, its only text is the caption. */
77
+ /** `createImagePlugin()`'s structural rows: void, its only text is the caption. */
79
78
  export const imageKinds = frozen({ image: { void: true } });
80
79
  /**
81
- * The media plugins' structural rows (`embedPlugin`, `bookmarkPlugin`,
82
- * `filePlugin`, `videoPlugin`, `audioPlugin`): void like the image, their
80
+ * The media plugins' structural rows (`createEmbedPlugin()`, `createBookmarkPlugin()`,
81
+ * `createFilePlugin()`, `createVideoPlugin()`, `createAudioPlugin()`): void like the image, their
83
82
  * only text is the caption.
84
83
  */
85
84
  export const mediaKinds = frozen({
@@ -143,6 +142,7 @@ export const tableKinds = frozen({
143
142
  * `table`, `atomic`, `rendersContent`, `defaultChild`), and a bare snippet is a
144
143
  * plain kind. To add kinds to a bundled config, use {@link mergeSemantics}.
145
144
  */
145
+ /* @__NO_SIDE_EFFECTS__ */
146
146
  export const semanticsOf = (...tables) => {
147
147
  const semantics = {
148
148
  roles: {},
@@ -264,25 +264,27 @@ export const semanticsMismatch = (ours, theirs) => {
264
264
  .sort();
265
265
  };
266
266
  /** `config` with a mark-edge table, frozen. */
267
+ /* @__NO_SIDE_EFFECTS__ */
267
268
  const withMarks = (config, marks) => frozen(Object.assign({}, config, { marks }));
268
- /** `richTextPlugin`'s block roles and mark edges, for `createDocument({ semantics })` and the room. */
269
- export const richTextSemantics = withMarks(semanticsOf(richTextKinds), richTextMarks);
270
- /** `codePlugin`'s block roles. */
271
- export const codeSemantics = semanticsOf(codeKinds);
272
- /** `imagePlugin`'s block roles. */
273
- export const imageSemantics = semanticsOf(imageKinds);
269
+ /** `createRichTextPlugin()`'s block roles and mark edges, for `createDocument({ semantics })` and the room. */
270
+ export const richTextSemantics = /* @__PURE__ */ withMarks(
271
+ /* @__PURE__ */ semanticsOf(richTextKinds), richTextMarks);
272
+ /** `createCodePlugin()`'s block roles. */
273
+ export const codeSemantics = /* @__PURE__ */ semanticsOf(codeKinds);
274
+ /** `createImagePlugin()`'s block roles. */
275
+ export const imageSemantics = /* @__PURE__ */ semanticsOf(imageKinds);
274
276
  /** The media plugins' block roles (embed, bookmark, file, video, audio). */
275
- export const mediaSemantics = semanticsOf(mediaKinds);
277
+ export const mediaSemantics = /* @__PURE__ */ semanticsOf(mediaKinds);
276
278
  /** The columns plugin's block roles (a layout of columns). */
277
- export const layoutSemantics = semanticsOf(layoutKinds);
279
+ export const layoutSemantics = /* @__PURE__ */ semanticsOf(layoutKinds);
278
280
  /** The page plugin's block role (a link to another document). */
279
- export const pageSemantics = semanticsOf(pageKinds);
281
+ export const pageSemantics = /* @__PURE__ */ semanticsOf(pageKinds);
280
282
  /** The table of contents plugin's block role. */
281
- export const tocSemantics = semanticsOf(tocKinds);
283
+ export const tocSemantics = /* @__PURE__ */ semanticsOf(tocKinds);
282
284
  /** The table plugin's block roles (a table of rows of cells). */
283
- export const tableSemantics = semanticsOf(tableKinds);
285
+ export const tableSemantics = /* @__PURE__ */ semanticsOf(tableKinds);
284
286
  /** The equation plugin's block role. */
285
- export const equationSemantics = semanticsOf(equationKinds);
287
+ export const equationSemantics = /* @__PURE__ */ semanticsOf(equationKinds);
286
288
  /**
287
289
  * The rich-text, code, image, media, columns, page, table of contents,
288
290
  * table and equation plugins' block roles together (and the rich-text and
@@ -295,8 +297,7 @@ export const equationSemantics = semanticsOf(equationKinds);
295
297
  export const defaultSemantics = withMarks(semanticsOf(richTextKinds, codeKinds, imageKinds, mediaKinds, layoutKinds, pageKinds, tocKinds, tableKinds, equationKinds), { ...richTextMarks, ...commentMarks });
296
298
  /**
297
299
  * The facade configuration (`EdytorDocConfig`) a document with no view
298
- * reads `semantics` with — the room's, and a generation cutover's
299
- * (`migration/generation.ts`): roles, default children, content-less kinds
300
+ * reads `semantics` with — the room's: roles, default children, content-less kinds
300
301
  * and mark edges, each answered only for a kind the tables name.
301
302
  */
302
303
  export const facadeConfigOf = (semantics) => {
@@ -1,21 +1,15 @@
1
1
  /**
2
2
  * The storage codec — what the room's rows and the IndexedDB store
3
- * hold, apart from the wire (which stays v1 until the schema generation
4
- * that changes it). Snapshots are written in the v2 (columnar) encoding
5
- * and gzip-compressed where the platform has `CompressionStream`; update
6
- * rows stay v1 (smaller for one keystroke). A compressed record starts
7
- * with gzip's magic `1f 8b`, which no v2 update does (its first byte is
8
- * the encoder's feature flag, `00`), so a v2 container's snapshot says
9
- * itself whether it is compressed. Worker-safe: no timers, every
10
- * platform API feature-detected.
3
+ * hold: updates in the engine's one encoding, snapshots gzip-compressed
4
+ * when that makes them smaller (`CompressionStream`, in every supported
5
+ * browser, Node and Workers). A compressed record starts with gzip's magic
6
+ * `1f 8b`, which no update does (its first byte is the encoder's feature
7
+ * flag, `00`), so a record says itself whether it is compressed.
8
+ * Worker-safe: no timers.
11
9
  */
12
10
  /** Whether `bytes` are gzip (its magic `1f 8b`). */
13
11
  export declare const isGzip: (bytes: Uint8Array) => boolean;
14
- /** Whether this platform compresses (`CompressionStream`). */
15
- export declare const canCompress: () => boolean;
16
- /** `bytes` gzip-compressed, or `null` where the platform has no `CompressionStream`. */
17
- export declare const gzip: (bytes: Uint8Array) => Promise<Uint8Array | null>;
18
12
  /** `bytes` as stored: inflated when gzip, else as they are. */
19
13
  export declare const gunzip: (bytes: Uint8Array) => Promise<Uint8Array>;
20
- /** `bytes` compressed when that makes them smaller (and the platform can), else as they are. */
14
+ /** `bytes` compressed when that makes them smaller, else as they are. */
21
15
  export declare const packed: (bytes: Uint8Array) => Promise<Uint8Array>;
@@ -1,37 +1,23 @@
1
1
  /**
2
2
  * The storage codec — what the room's rows and the IndexedDB store
3
- * hold, apart from the wire (which stays v1 until the schema generation
4
- * that changes it). Snapshots are written in the v2 (columnar) encoding
5
- * and gzip-compressed where the platform has `CompressionStream`; update
6
- * rows stay v1 (smaller for one keystroke). A compressed record starts
7
- * with gzip's magic `1f 8b`, which no v2 update does (its first byte is
8
- * the encoder's feature flag, `00`), so a v2 container's snapshot says
9
- * itself whether it is compressed. Worker-safe: no timers, every
10
- * platform API feature-detected.
3
+ * hold: updates in the engine's one encoding, snapshots gzip-compressed
4
+ * when that makes them smaller (`CompressionStream`, in every supported
5
+ * browser, Node and Workers). A compressed record starts with gzip's magic
6
+ * `1f 8b`, which no update does (its first byte is the encoder's feature
7
+ * flag, `00`), so a record says itself whether it is compressed.
8
+ * Worker-safe: no timers.
11
9
  */
12
10
  /** Whether `bytes` are gzip (its magic `1f 8b`). */
13
11
  export const isGzip = (bytes) => bytes.length >= 2 && bytes[0] === 0x1f && bytes[1] === 0x8b;
14
- const platform = globalThis;
15
12
  /** Run `bytes` through a (de)compression stream. */
16
13
  const through = async (bytes, transform) => {
17
14
  const stream = new Response(bytes).body.pipeThrough(transform);
18
15
  return new Uint8Array(await new Response(stream).arrayBuffer());
19
16
  };
20
- /** Whether this platform compresses (`CompressionStream`). */
21
- export const canCompress = () => typeof platform.CompressionStream === 'function';
22
- /** `bytes` gzip-compressed, or `null` where the platform has no `CompressionStream`. */
23
- export const gzip = async (bytes) => platform.CompressionStream ? through(bytes, new platform.CompressionStream('gzip')) : null;
24
17
  /** `bytes` as stored: inflated when gzip, else as they are. */
25
- export const gunzip = async (bytes) => {
26
- if (!isGzip(bytes))
27
- return bytes;
28
- if (!platform.DecompressionStream) {
29
- throw new Error('a compressed record needs DecompressionStream, which this platform lacks');
30
- }
31
- return through(bytes, new platform.DecompressionStream('gzip'));
32
- };
33
- /** `bytes` compressed when that makes them smaller (and the platform can), else as they are. */
18
+ export const gunzip = async (bytes) => isGzip(bytes) ? through(bytes, new DecompressionStream('gzip')) : bytes;
19
+ /** `bytes` compressed when that makes them smaller, else as they are. */
34
20
  export const packed = async (bytes) => {
35
- const out = await gzip(bytes);
36
- return out !== null && out.length < bytes.length ? out : bytes;
21
+ const out = await through(bytes, new CompressionStream('gzip'));
22
+ return out.length < bytes.length ? out : bytes;
37
23
  };