edytor 1.0.0-rc.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. package/README.md +65 -25
  2. package/dist/block/block.svelte.d.ts +10 -85
  3. package/dist/block/block.svelte.js +47 -141
  4. package/dist/block/colors.d.ts +0 -9
  5. package/dist/block/colors.js +1 -18
  6. package/dist/block/contentRange.d.ts +5 -1
  7. package/dist/block/contentRange.js +15 -16
  8. package/dist/block/inlineBlock.svelte.d.ts +8 -10
  9. package/dist/block/inlineBlock.svelte.js +14 -22
  10. package/dist/clipboard/createClipboardFragment.js +22 -64
  11. package/dist/clipboard/fragmentData.js +17 -42
  12. package/dist/clipboard/htmlFlow.d.ts +6 -1
  13. package/dist/clipboard/htmlFlow.js +26 -13
  14. package/dist/clipboard/insertClipboardFragment.js +5 -4
  15. package/dist/clipboard/moveText.js +16 -8
  16. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  17. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  18. package/dist/cloudflare/DocumentRoom.d.ts +22 -17
  19. package/dist/cloudflare/DocumentRoom.js +10 -5
  20. package/dist/cloudflare/index.d.ts +1 -1
  21. package/dist/cloudflare/index.js +1 -1
  22. package/dist/cloudflare/move.d.ts +1 -18
  23. package/dist/cloudflare/move.js +2 -48
  24. package/dist/cloudflare/room/admission.d.ts +1 -60
  25. package/dist/cloudflare/room/admission.js +25 -29
  26. package/dist/cloudflare/room/comments.d.ts +1 -3
  27. package/dist/cloudflare/room/comments.js +6 -6
  28. package/dist/cloudflare/room/context.d.ts +20 -82
  29. package/dist/cloudflare/room/context.js +8 -8
  30. package/dist/cloudflare/room/forged.d.ts +1 -1
  31. package/dist/cloudflare/room/forged.js +2 -12
  32. package/dist/cloudflare/room/frames.d.ts +1 -1
  33. package/dist/cloudflare/room/frames.js +1 -1
  34. package/dist/cloudflare/room/history.d.ts +1 -25
  35. package/dist/cloudflare/room/history.js +39 -54
  36. package/dist/cloudflare/room/moves.d.ts +1 -13
  37. package/dist/cloudflare/room/moves.js +33 -57
  38. package/dist/cloudflare/room/presence.d.ts +1 -11
  39. package/dist/cloudflare/room/presence.js +4 -4
  40. package/dist/cloudflare/room/purge.d.ts +1 -2
  41. package/dist/cloudflare/room/purge.js +2 -2
  42. package/dist/cloudflare/room/replicas.d.ts +1 -7
  43. package/dist/cloudflare/room/replicas.js +2 -2
  44. package/dist/cloudflare/room/storage.d.ts +9 -30
  45. package/dist/cloudflare/room/storage.js +52 -104
  46. package/dist/cloudflare/room/updates.d.ts +4 -4
  47. package/dist/cloudflare/room/updates.js +17 -24
  48. package/dist/cloudflare/room/validation.d.ts +1 -5
  49. package/dist/cloudflare/room/validation.js +16 -37
  50. package/dist/collaboration/RemoteSelections.svelte +13 -17
  51. package/dist/collaboration/comments/client.d.ts +2 -2
  52. package/dist/collaboration/comments/client.js +1 -1
  53. package/dist/collaboration/history/index.d.ts +5 -5
  54. package/dist/collaboration/history/index.js +5 -5
  55. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  56. package/dist/collaboration/history/panel.svelte.js +223 -0
  57. package/dist/collaboration/providers.d.ts +12 -3
  58. package/dist/collaboration/providers.js +5 -4
  59. package/dist/components/Block.svelte +160 -119
  60. package/dist/components/Block.svelte.d.ts +8 -3
  61. package/dist/components/Content.svelte +91 -44
  62. package/dist/components/CustomMark.svelte +46 -0
  63. package/dist/components/CustomMark.svelte.d.ts +11 -0
  64. package/dist/components/Edytor.svelte +80 -95
  65. package/dist/components/Edytor.svelte.d.ts +8 -12
  66. package/dist/components/InlineBlock.svelte +4 -9
  67. package/dist/components/Mark.svelte +46 -35
  68. package/dist/components/Mark.svelte.d.ts +7 -0
  69. package/dist/components/Ranges.svelte +96 -0
  70. package/dist/components/Ranges.svelte.d.ts +19 -0
  71. package/dist/components/Suggestion.svelte +3 -2
  72. package/dist/components/Text.svelte +48 -14
  73. package/dist/components/Text.svelte.d.ts +1 -1
  74. package/dist/crdt/admission.d.ts +2 -9
  75. package/dist/crdt/admission.js +3 -9
  76. package/dist/crdt/attribution/attribution.d.ts +11 -72
  77. package/dist/crdt/attribution/attribution.js +5 -52
  78. package/dist/crdt/attribution/block.d.ts +0 -78
  79. package/dist/crdt/attribution/block.js +1 -144
  80. package/dist/crdt/data.d.ts +8 -13
  81. package/dist/crdt/data.js +30 -70
  82. package/dist/crdt/doc/anchors.js +4 -4
  83. package/dist/crdt/doc/content.d.ts +5 -1
  84. package/dist/crdt/doc/content.js +3 -1
  85. package/dist/crdt/doc/delete.d.ts +1 -0
  86. package/dist/crdt/doc/funnel.d.ts +0 -23
  87. package/dist/crdt/doc/funnel.js +34 -85
  88. package/dist/crdt/doc/gate.d.ts +8 -9
  89. package/dist/crdt/doc/gate.js +7 -17
  90. package/dist/crdt/doc/history.d.ts +87 -14
  91. package/dist/crdt/doc/history.js +334 -149
  92. package/dist/crdt/doc/layout.d.ts +0 -1
  93. package/dist/crdt/doc/layout.js +2 -3
  94. package/dist/crdt/doc/meta.d.ts +4 -4
  95. package/dist/crdt/doc/meta.js +10 -21
  96. package/dist/crdt/doc/moves.d.ts +4 -4
  97. package/dist/crdt/doc/moves.js +5 -5
  98. package/dist/crdt/doc/plan.d.ts +2 -0
  99. package/dist/crdt/doc/plan.js +2 -0
  100. package/dist/crdt/doc/reads.d.ts +1 -5
  101. package/dist/crdt/doc/reads.js +38 -49
  102. package/dist/crdt/doc/seed.d.ts +15 -6
  103. package/dist/crdt/doc/seed.js +27 -26
  104. package/dist/crdt/doc/split-merge.d.ts +1 -3
  105. package/dist/crdt/doc/split-merge.js +4 -5
  106. package/dist/crdt/doc/steps.d.ts +3 -7
  107. package/dist/crdt/doc/steps.js +20 -9
  108. package/dist/crdt/doc/types.d.ts +0 -10
  109. package/dist/crdt/document.d.ts +24 -115
  110. package/dist/crdt/document.js +207 -305
  111. package/dist/crdt/edytor-doc.d.ts +671 -90
  112. package/dist/crdt/edytor-doc.js +73 -149
  113. package/dist/crdt/engine-api.d.ts +15 -47
  114. package/dist/crdt/engine.d.ts +7 -17
  115. package/dist/crdt/engine.js +9 -19
  116. package/dist/crdt/flow.d.ts +9 -37
  117. package/dist/crdt/flow.js +260 -238
  118. package/dist/crdt/index.d.ts +26 -85
  119. package/dist/crdt/index.js +21 -47
  120. package/dist/crdt/operations.d.ts +24 -33
  121. package/dist/crdt/operations.js +7 -17
  122. package/dist/crdt/placement/display.d.ts +0 -2
  123. package/dist/crdt/placement/display.js +0 -15
  124. package/dist/crdt/placement/model.d.ts +160 -12
  125. package/dist/crdt/placement/model.js +413 -414
  126. package/dist/crdt/placement/rank.d.ts +1 -5
  127. package/dist/crdt/placement/rank.js +28 -38
  128. package/dist/crdt/protocol.d.ts +4 -5
  129. package/dist/crdt/protocol.js +3 -4
  130. package/dist/crdt/protocols/awareness.d.ts +3 -7
  131. package/dist/crdt/protocols/awareness.js +17 -33
  132. package/dist/crdt/protocols/envelope.d.ts +9 -29
  133. package/dist/crdt/protocols/envelope.js +8 -25
  134. package/dist/crdt/protocols/sync.d.ts +15 -30
  135. package/dist/crdt/protocols/sync.js +27 -89
  136. package/dist/crdt/providers/bound.d.ts +3 -1
  137. package/dist/crdt/providers/bound.js +3 -1
  138. package/dist/crdt/providers/container.d.ts +11 -17
  139. package/dist/crdt/providers/container.js +39 -27
  140. package/dist/crdt/providers/index.d.ts +34 -6
  141. package/dist/crdt/providers/index.js +106 -111
  142. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  143. package/dist/crdt/providers/indexeddb.js +29 -90
  144. package/dist/crdt/providers/room.d.ts +58 -2
  145. package/dist/crdt/providers/room.js +38 -21
  146. package/dist/crdt/providers/websocket.d.ts +1 -1
  147. package/dist/crdt/providers/websocket.js +3 -4
  148. package/dist/crdt/purge.d.ts +2 -2
  149. package/dist/crdt/purge.js +69 -6
  150. package/dist/crdt/rangeDelete.d.ts +4 -42
  151. package/dist/crdt/rangeDelete.js +7 -6
  152. package/dist/crdt/restore.d.ts +21 -1
  153. package/dist/crdt/restore.js +54 -59
  154. package/dist/crdt/schema.d.ts +2 -2
  155. package/dist/crdt/schema.js +4 -5
  156. package/dist/crdt/semantics.d.ts +10 -15
  157. package/dist/crdt/semantics.js +22 -21
  158. package/dist/crdt/storage.d.ts +7 -13
  159. package/dist/crdt/storage.js +10 -24
  160. package/dist/crdt/structs.d.ts +42 -47
  161. package/dist/crdt/structs.js +76 -67
  162. package/dist/crdt/tables.d.ts +9 -0
  163. package/dist/crdt/tables.js +20 -0
  164. package/dist/crdt/text/delete-index.d.ts +0 -13
  165. package/dist/crdt/text/delete-index.js +7 -14
  166. package/dist/crdt/text/deletes.d.ts +9 -22
  167. package/dist/crdt/text/deletes.js +11 -74
  168. package/dist/crdt/text/index/cache.js +3 -3
  169. package/dist/crdt/text/index/fold.d.ts +1 -2
  170. package/dist/crdt/text/index/fold.js +15 -10
  171. package/dist/crdt/text/index/layout.d.ts +0 -10
  172. package/dist/crdt/text/index/layout.js +6 -20
  173. package/dist/crdt/text/index/records.js +2 -1
  174. package/dist/crdt/text/index/report.js +5 -6
  175. package/dist/crdt/text/index/shared.d.ts +11 -4
  176. package/dist/crdt/text/index/shared.js +8 -7
  177. package/dist/crdt/text/index/state.d.ts +3 -33
  178. package/dist/crdt/text/index/state.js +2 -4
  179. package/dist/crdt/text/model.d.ts +82 -2
  180. package/dist/crdt/text/model.js +344 -354
  181. package/dist/crdt/text/rows.d.ts +0 -2
  182. package/dist/crdt/text/rows.js +0 -11
  183. package/dist/crdt/text/runs.d.ts +6 -3
  184. package/dist/crdt/text/runs.js +132 -137
  185. package/dist/crdt/text/streams.d.ts +1 -1
  186. package/dist/crdt/text/streams.js +1 -1
  187. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  188. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  189. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  190. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  191. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  192. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  193. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  194. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  195. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  196. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  197. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  198. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  199. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  200. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  201. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  202. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  203. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  204. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  205. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  206. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  207. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  208. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  209. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  210. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  211. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  212. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  213. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  214. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  215. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  216. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  217. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  218. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  219. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  220. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  221. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  222. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  223. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  224. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  225. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  226. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  227. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  228. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  229. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  230. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  231. package/dist/{plugins/blockHandles → dnd}/autoScroll.d.ts +2 -1
  232. package/dist/{plugins/blockHandles → dnd}/autoScroll.js +3 -3
  233. package/dist/dnd/pragmatic.d.ts +4 -22
  234. package/dist/dnd/pragmatic.js +7 -26
  235. package/dist/dnd/track.d.ts +14 -0
  236. package/dist/dnd/track.js +55 -0
  237. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  238. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  239. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  240. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  241. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  242. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  243. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  254. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +36 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  265. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  293. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  294. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  295. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  296. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  297. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  298. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  299. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  300. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  301. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  302. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  303. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  304. package/dist/edytor.svelte.d.ts +34 -64
  305. package/dist/edytor.svelte.js +118 -180
  306. package/dist/events/beforeInputCommands.d.ts +6 -11
  307. package/dist/events/beforeInputCommands.js +189 -184
  308. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  309. package/dist/events/beforeInputDeleteCommands.js +153 -204
  310. package/dist/events/domTextOffset.d.ts +9 -9
  311. package/dist/events/domTextOffset.js +20 -48
  312. package/dist/events/events.utils.d.ts +0 -2
  313. package/dist/events/events.utils.js +0 -4
  314. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  315. package/dist/events/nativeInteractiveControl.js +28 -56
  316. package/dist/events/onBeforeInput.d.ts +6 -1
  317. package/dist/events/onBeforeInput.js +207 -331
  318. package/dist/events/onCopy.js +1 -5
  319. package/dist/events/onDrop.d.ts +7 -1
  320. package/dist/events/onDrop.js +33 -72
  321. package/dist/events/onFocus.d.ts +9 -4
  322. package/dist/events/onFocus.js +92 -72
  323. package/dist/events/onInput.d.ts +8 -4
  324. package/dist/events/onInput.js +34 -147
  325. package/dist/events/onKeyDown.js +55 -122
  326. package/dist/events/onPaste.d.ts +13 -1
  327. package/dist/events/onPaste.js +46 -76
  328. package/dist/index.d.ts +10 -13
  329. package/dist/index.js +3 -3
  330. package/dist/kinds.d.ts +4 -6
  331. package/dist/kinds.js +28 -27
  332. package/dist/labels.d.ts +91 -314
  333. package/dist/labels.js +180 -396
  334. package/dist/plugins/Chrome.svelte +29 -0
  335. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  336. package/dist/plugins/Control.svelte +23 -0
  337. package/dist/plugins/Control.svelte.d.ts +30 -0
  338. package/dist/plugins/anchored.svelte.d.ts +47 -0
  339. package/dist/plugins/anchored.svelte.js +73 -0
  340. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  341. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  342. package/dist/plugins/bands.svelte.d.ts +57 -0
  343. package/dist/plugins/bands.svelte.js +95 -0
  344. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -151
  345. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  346. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +63 -97
  347. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +247 -268
  348. package/dist/plugins/blockHandles/BlockHandles.svelte +46 -29
  349. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  350. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +29 -23
  351. package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -162
  352. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  353. package/dist/plugins/blockHandles/dragPreview.js +20 -17
  354. package/dist/plugins/blockHandles/dropIndicator.js +52 -60
  355. package/dist/plugins/blockHandles/geometry.d.ts +46 -1
  356. package/dist/plugins/blockHandles/geometry.js +51 -4
  357. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +59 -28
  358. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +180 -105
  359. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  360. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  361. package/dist/plugins/brand.d.ts +8 -0
  362. package/dist/plugins/brand.js +8 -0
  363. package/dist/plugins/chrome.d.ts +79 -0
  364. package/dist/plugins/chrome.js +87 -0
  365. package/dist/plugins/code/CodeHeader.svelte +12 -58
  366. package/dist/plugins/code/CodeHeader.svelte.d.ts +1 -0
  367. package/dist/plugins/code/CodePlugin.svelte +75 -56
  368. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  369. package/dist/plugins/code/LanguageMenu.svelte +25 -0
  370. package/dist/plugins/code/LanguageMenu.svelte.d.ts +9 -0
  371. package/dist/plugins/code/code.css +5 -100
  372. package/dist/plugins/code/header.svelte.d.ts +47 -0
  373. package/dist/plugins/code/header.svelte.js +141 -0
  374. package/dist/plugins/code/languageMenu.svelte.d.ts +84 -0
  375. package/dist/plugins/code/languageMenu.svelte.js +199 -0
  376. package/dist/plugins/code/languages.d.ts +21 -10
  377. package/dist/plugins/code/languages.js +39 -126
  378. package/dist/plugins/columns/ColumnResize.svelte +13 -25
  379. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  380. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  381. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  382. package/dist/plugins/columns/columns.css +7 -26
  383. package/dist/plugins/columns/resize.svelte.d.ts +14 -51
  384. package/dist/plugins/columns/resize.svelte.js +70 -164
  385. package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
  386. package/dist/plugins/comments/CommentsController.svelte.js +14 -25
  387. package/dist/plugins/comments/CommentsSidebar.svelte +82 -430
  388. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +6 -7
  389. package/dist/plugins/comments/commentsPlugin.d.ts +31 -10
  390. package/dist/plugins/comments/commentsPlugin.js +12 -10
  391. package/dist/plugins/equation/EquationEditor.svelte +18 -129
  392. package/dist/plugins/equation/EquationEditor.svelte.d.ts +2 -1
  393. package/dist/plugins/equation/EquationPlugin.svelte +123 -168
  394. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +5 -3
  395. package/dist/plugins/equation/EquationView.svelte +20 -11
  396. package/dist/plugins/equation/equation.svelte.d.ts +74 -36
  397. package/dist/plugins/equation/equation.svelte.js +74 -66
  398. package/dist/plugins/equation/importUrl.d.ts +6 -0
  399. package/dist/plugins/equation/importUrl.js +6 -0
  400. package/dist/plugins/equation/katex.d.ts +8 -0
  401. package/dist/plugins/equation/katex.js +77 -0
  402. package/dist/plugins/find/FindController.svelte.d.ts +8 -13
  403. package/dist/plugins/find/FindController.svelte.js +34 -55
  404. package/dist/plugins/find/findPlugin.d.ts +4 -8
  405. package/dist/plugins/find/findPlugin.js +29 -9
  406. package/dist/plugins/image/ImageChrome.svelte +5 -151
  407. package/dist/plugins/image/ImagePlugin.svelte +49 -117
  408. package/dist/plugins/image/ImagePlugin.svelte.d.ts +1 -24
  409. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  410. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  411. package/dist/plugins/image/controls.svelte.d.ts +6 -57
  412. package/dist/plugins/image/controls.svelte.js +51 -174
  413. package/dist/plugins/image/image.d.ts +0 -5
  414. package/dist/plugins/image/image.js +0 -3
  415. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  416. package/dist/plugins/image/toolbar.svelte.js +145 -0
  417. package/dist/plugins/index.d.ts +39 -24
  418. package/dist/plugins/index.js +30 -22
  419. package/dist/plugins/list.svelte.d.ts +128 -0
  420. package/dist/plugins/list.svelte.js +217 -0
  421. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  422. package/dist/plugins/markdownShortcuts.js +6 -5
  423. package/dist/plugins/marquee/MarqueeBox.svelte +15 -0
  424. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +9 -0
  425. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +46 -0
  426. package/dist/plugins/marquee/MarqueeController.svelte.js +243 -0
  427. package/dist/plugins/marquee/marquee.d.ts +33 -0
  428. package/dist/plugins/marquee/marquee.js +89 -0
  429. package/dist/plugins/marquee/marqueePlugin.d.ts +32 -0
  430. package/dist/plugins/marquee/marqueePlugin.js +68 -0
  431. package/dist/plugins/media/AudioPlugin.svelte +3 -88
  432. package/dist/plugins/media/AudioPlugin.svelte.d.ts +1 -4
  433. package/dist/plugins/media/BookmarkPlugin.svelte +124 -112
  434. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +20 -7
  435. package/dist/plugins/media/EmbedPlugin.svelte +93 -77
  436. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +21 -9
  437. package/dist/plugins/media/EmptySlot.svelte +44 -0
  438. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  439. package/dist/plugins/media/FilePlugin.svelte +35 -111
  440. package/dist/plugins/media/FilePlugin.svelte.d.ts +12 -4
  441. package/dist/plugins/media/MediaEmpty.svelte +55 -112
  442. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  443. package/dist/plugins/media/SourceBlock.svelte +164 -0
  444. package/dist/plugins/media/SourceBlock.svelte.d.ts +33 -0
  445. package/dist/plugins/media/VideoPlugin.svelte +4 -97
  446. package/dist/plugins/media/VideoPlugin.svelte.d.ts +2 -5
  447. package/dist/plugins/media/empty.svelte.d.ts +69 -0
  448. package/dist/plugins/media/empty.svelte.js +111 -0
  449. package/dist/plugins/media/media.d.ts +93 -30
  450. package/dist/plugins/media/media.js +79 -86
  451. package/dist/plugins/media/urlPaste.svelte.d.ts +9 -32
  452. package/dist/plugins/media/urlPaste.svelte.js +46 -75
  453. package/dist/plugins/mention/MentionPlugin.svelte +47 -124
  454. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +11 -23
  455. package/dist/plugins/page/PageLink.svelte +54 -38
  456. package/dist/plugins/page/PagePlugin.svelte +20 -18
  457. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  458. package/dist/plugins/page/page.d.ts +35 -9
  459. package/dist/plugins/page/page.js +3 -4
  460. package/dist/plugins/pageLink/PageLinkPlugin.svelte +52 -108
  461. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +11 -23
  462. package/dist/plugins/planned.d.ts +10 -0
  463. package/dist/plugins/planned.js +12 -0
  464. package/dist/plugins/richtext/CalloutIcon.svelte +25 -0
  465. package/dist/plugins/richtext/CalloutIcon.svelte.d.ts +9 -0
  466. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  467. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  468. package/dist/plugins/richtext/EmptyBody.svelte +25 -0
  469. package/dist/plugins/richtext/EmptyBody.svelte.d.ts +8 -0
  470. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  471. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  472. package/dist/plugins/richtext/RichTextPlugin.svelte +272 -148
  473. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +37 -18
  474. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  475. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  476. package/dist/plugins/richtext/body.d.ts +9 -0
  477. package/dist/plugins/richtext/body.js +16 -0
  478. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +97 -0
  479. package/dist/plugins/richtext/calloutIcons.svelte.js +214 -0
  480. package/dist/plugins/richtext/callouts.d.ts +15 -0
  481. package/dist/plugins/richtext/callouts.js +23 -0
  482. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  483. package/dist/plugins/richtext/controls.svelte.js +126 -0
  484. package/dist/plugins/richtext/richTextOperations.js +37 -28
  485. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +18 -11
  486. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +93 -35
  487. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +11 -24
  488. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  489. package/dist/plugins/suggestions/SuggestionBars.svelte +32 -84
  490. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  491. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -16
  492. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  493. package/dist/plugins/table/TableChrome.svelte +96 -127
  494. package/dist/plugins/table/TableChrome.svelte.d.ts +5 -1
  495. package/dist/plugins/table/TablePlugin.svelte +116 -171
  496. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  497. package/dist/plugins/table/chrome.svelte.d.ts +110 -117
  498. package/dist/plugins/table/chrome.svelte.js +643 -289
  499. package/dist/plugins/table/ops.d.ts +47 -0
  500. package/dist/plugins/table/ops.js +233 -0
  501. package/dist/plugins/table/table.css +55 -134
  502. package/dist/plugins/table/table.d.ts +26 -7
  503. package/dist/plugins/table/table.js +23 -49
  504. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  505. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  506. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  507. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  508. package/dist/plugins/toc/toc.d.ts +41 -10
  509. package/dist/plugins/toc/toc.js +2 -3
  510. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +29 -66
  511. package/dist/plugins/toolbar/ToolbarController.svelte.js +151 -76
  512. package/dist/plugins/toolbar/toolbarPlugin.d.ts +14 -13
  513. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  514. package/dist/plugins/triggers/TriggerController.svelte.d.ts +6 -45
  515. package/dist/plugins/triggers/TriggerController.svelte.js +51 -96
  516. package/dist/plugins/triggers/place.d.ts +0 -9
  517. package/dist/plugins/triggers/place.js +1 -17
  518. package/dist/plugins/triggers/triggers.d.ts +31 -9
  519. package/dist/plugins/triggers/triggers.js +82 -62
  520. package/dist/plugins/uploads.svelte.d.ts +38 -20
  521. package/dist/plugins/uploads.svelte.js +39 -32
  522. package/dist/plugins.d.ts +167 -60
  523. package/dist/selection/domSelection.d.ts +13 -4
  524. package/dist/selection/domSelection.js +110 -183
  525. package/dist/selection/pointer.svelte.d.ts +12 -10
  526. package/dist/selection/pointer.svelte.js +154 -71
  527. package/dist/selection/replaceSelection.d.ts +21 -22
  528. package/dist/selection/replaceSelection.js +60 -69
  529. package/dist/selection/selection.svelte.d.ts +5 -73
  530. package/dist/selection/selection.svelte.js +263 -542
  531. package/dist/selection/selection.utils.d.ts +34 -11
  532. package/dist/selection/selection.utils.js +128 -247
  533. package/dist/selection/visibility.d.ts +11 -8
  534. package/dist/selection/visibility.js +23 -8
  535. package/dist/session/announcer.svelte.d.ts +2 -1
  536. package/dist/session/announcer.svelte.js +7 -3
  537. package/dist/session/attempt.d.ts +33 -39
  538. package/dist/session/attempt.js +61 -53
  539. package/dist/session/bindings.js +108 -139
  540. package/dist/session/commands.d.ts +47 -22
  541. package/dist/session/commands.js +206 -208
  542. package/dist/session/composition.svelte.d.ts +2 -4
  543. package/dist/session/composition.svelte.js +55 -65
  544. package/dist/session/editing/text.d.ts +6 -0
  545. package/dist/session/editing/text.js +17 -3
  546. package/dist/session/handles.d.ts +10 -1
  547. package/dist/session/handles.js +28 -0
  548. package/dist/session/history.d.ts +0 -4
  549. package/dist/session/history.js +15 -21
  550. package/dist/session/inputRules.js +75 -84
  551. package/dist/session/keymap.d.ts +1 -6
  552. package/dist/session/keymap.js +17 -20
  553. package/dist/session/moves.d.ts +10 -10
  554. package/dist/session/moves.js +31 -59
  555. package/dist/session/navigation.d.ts +18 -3
  556. package/dist/session/navigation.js +194 -153
  557. package/dist/session/ports.d.ts +7 -0
  558. package/dist/session/selection.d.ts +4 -3
  559. package/dist/session/selection.js +8 -0
  560. package/dist/session/suggestions.svelte.d.ts +1 -1
  561. package/dist/session/suggestions.svelte.js +64 -47
  562. package/dist/session/virtual.d.ts +3 -3
  563. package/dist/session/virtual.js +18 -40
  564. package/dist/surface/attributes.d.ts +1 -0
  565. package/dist/surface/attributes.js +3 -26
  566. package/dist/surface/cells.d.ts +5 -0
  567. package/dist/surface/cells.js +5 -0
  568. package/dist/surface/lines.d.ts +32 -0
  569. package/dist/surface/lines.js +43 -0
  570. package/dist/surface/observer.svelte.d.ts +3 -20
  571. package/dist/surface/observer.svelte.js +73 -77
  572. package/dist/surface/overlay.d.ts +48 -6
  573. package/dist/surface/overlay.js +133 -23
  574. package/dist/surface/pin.svelte.d.ts +5 -0
  575. package/dist/surface/pin.svelte.js +5 -0
  576. package/dist/surface/projector.svelte.d.ts +4 -6
  577. package/dist/surface/projector.svelte.js +42 -69
  578. package/dist/text/text.svelte.d.ts +14 -40
  579. package/dist/text/text.svelte.js +35 -51
  580. package/dist/text/wordBoundary.d.ts +19 -0
  581. package/dist/text/wordBoundary.js +29 -44
  582. package/dist/themes/notion.css +315 -126
  583. package/dist/utils/json.d.ts +3 -1
  584. package/dist/utils/json.js +52 -51
  585. package/dist/utils/listen.d.ts +8 -0
  586. package/dist/utils/listen.js +19 -0
  587. package/package.json +4 -5
  588. package/dist/block/block.utils.d.ts +0 -340
  589. package/dist/block/block.utils.js +0 -356
  590. package/dist/collaboration/history/HistoryPanel.svelte +0 -525
  591. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  592. package/dist/collaboration/history/panel.d.ts +0 -43
  593. package/dist/collaboration/history/panel.js +0 -3
  594. package/dist/components/SuggestionRanges.svelte +0 -58
  595. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  596. package/dist/crdt/doc/table.d.ts +0 -21
  597. package/dist/crdt/doc/table.js +0 -288
  598. package/dist/crdt/migration/generation.d.ts +0 -58
  599. package/dist/crdt/migration/generation.js +0 -70
  600. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  601. package/dist/crdt/migration/legacy-schema.js +0 -151
  602. package/dist/crdt/migration/migrate.d.ts +0 -56
  603. package/dist/crdt/migration/migrate.js +0 -227
  604. package/dist/crdt/nodes.d.ts +0 -121
  605. package/dist/crdt/nodes.js +0 -56
  606. package/dist/crdt/text/index/checks.d.ts +0 -15
  607. package/dist/crdt/text/index/checks.js +0 -156
  608. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  609. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  610. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  611. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  612. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  613. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  614. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  615. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  616. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  617. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  618. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  619. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  620. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  621. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  622. package/dist/edytor.utils.d.ts +0 -50
  623. package/dist/edytor.utils.js +0 -67
  624. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -447
  625. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  626. package/dist/plugins/find/FindBar.svelte +0 -170
  627. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  628. package/dist/plugins/find/FindHighlights.svelte +0 -75
  629. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  630. package/dist/plugins/icons.d.ts +0 -2
  631. package/dist/plugins/icons.js +0 -63
  632. package/dist/plugins/image/ImageEmpty.svelte +0 -116
  633. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -12
  634. package/dist/plugins/keepInView.d.ts +0 -4
  635. package/dist/plugins/keepInView.js +0 -6
  636. package/dist/plugins/media/UrlPasteMenu.svelte +0 -83
  637. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -7
  638. package/dist/plugins/richtext/labels.d.ts +0 -5
  639. package/dist/plugins/richtext/labels.js +0 -3
  640. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -360
  641. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  642. package/dist/plugins/toolbar/LinkCard.svelte +0 -118
  643. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -7
  644. package/dist/plugins/toolbar/Toolbar.svelte +0 -400
  645. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  646. package/dist/plugins/triggers/TriggerMenu.svelte +0 -144
  647. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  648. package/dist/session/props.d.ts +0 -28
  649. package/dist/session/props.js +0 -162
  650. package/dist/text/deltas.d.ts +0 -22
  651. package/dist/text/deltas.js +0 -46
  652. package/dist/text/text.utils.d.ts +0 -45
  653. package/dist/text/text.utils.js +0 -199
@@ -1,3 +1,4 @@
1
+ import { type JSONBlock, type JSONInlineBlock, type JSONText } from '../../utils/json.js';
1
2
  import { type DataPatch } from '../data.js';
2
3
  import { type BlockId, type BlockSpec, type ContentItem } from '../placement/model.js';
3
4
  import type { Prepared, PlanStep, DataTarget } from './types.js';
@@ -6,14 +7,13 @@ import type { OpsContext } from './steps.js';
6
7
  export declare const metaOps: (c: OpsContext) => {
7
8
  dataSteps: (target: DataTarget, patches: DataPatch[]) => PlanStep[] | null;
8
9
  replaceData: (data: unknown) => DataPatch[];
9
- leafSets: (data: unknown, current: unknown) => DataPatch[];
10
- retypeSteps: (id: BlockId, type: string) => PlanStep[];
11
10
  setBlockType: (id: BlockId, type: string) => Prepared;
12
11
  patchData: (target: DataTarget, patches: readonly DataPatch[]) => Prepared;
13
12
  setBlock: (id: BlockId, value: {
14
13
  type?: string;
15
14
  data?: Record<string, unknown>;
16
- content?: ContentItem[];
17
- children?: BlockSpec[];
15
+ content?: (ContentItem | JSONText | JSONInlineBlock)[];
16
+ children?: (BlockSpec | JSONBlock)[];
18
17
  }) => Prepared;
19
18
  };
19
+ export type MetaOps = ReturnType<typeof metaOps>;
@@ -5,13 +5,13 @@
5
5
  */
6
6
  import { randOf } from '../rand.js';
7
7
  import { TYPE } from '../schema.js';
8
- import { sanitizeSpec, sanitizeWireJson } from '../../utils/json.js';
8
+ import { asBlockSpec, asContentItem, sanitizeSpec, sanitizeWireJson } from '../../utils/json.js';
9
9
  import { patchWrites, leafKey, isObject } from '../data.js';
10
- import { promotedRank } from '../placement/model.js';
10
+ import { collides, promotedRank, ranksAt } from '../placement/model.js';
11
11
  import { ref, refused, sanitizeItem } from './plan.js';
12
12
  /** The meta ops of one facade, prepared. */
13
13
  export const metaOps = (c) => {
14
- const { doc, M, roles, roleOf, dataNode, view, blockTypeOf, blockDataOf, childrenIds, positionOf, is, isVoid, displayLength, live, contentTarget, REFUSED, plan, moveTo, attr, leavingIsland, settle, remove, atomOf } = c;
14
+ const { doc, roles, roleOf, dataNode, view, blockTypeOf, blockDataOf, childrenIds, positionOf, is, isVoid, displayLength, live, contentTarget, REFUSED, plan, moveTo, attr, leavingIsland, settle, remove, atomOf, writeContent } = c;
15
15
  /**
16
16
  * The data step of `patches` (sanitized) on a block, one of its atoms or
17
17
  * the document (`crdt/data.ts`): none when it changes nothing, `null`
@@ -52,11 +52,10 @@ export const metaOps = (c) => {
52
52
  */
53
53
  const leafSets = (data, current) => {
54
54
  const out = [];
55
- const plainObject = (v) => v !== null && typeof v === 'object' && !Array.isArray(v);
56
55
  const walk = (v, at, path) => {
57
- if (plainObject(v) && Object.keys(v).length > 0 && (path.length === 0 || plainObject(at)))
56
+ if (isObject(v) && Object.keys(v).length > 0 && (path.length === 0 || isObject(at)))
58
57
  for (const [k, x] of Object.entries(v))
59
- walk(x, plainObject(at) ? at[k] : undefined, [...path, k]);
58
+ walk(x, isObject(at) ? at[k] : undefined, [...path, k]);
60
59
  else if (path.length > 0)
61
60
  out.push({ path, value: v });
62
61
  };
@@ -158,15 +157,15 @@ export const metaOps = (c) => {
158
157
  */
159
158
  const setBlock = (id, value) => {
160
159
  id = ref(id);
161
- const content = value.content?.map(sanitizeItem);
162
- const children = value.children?.map(sanitizeSpec);
160
+ const content = value.content?.map((item) => sanitizeItem(asContentItem(item)));
161
+ const children = value.children?.map((child) => sanitizeSpec(asBlockSpec(child)));
163
162
  if (!live(id) || (content !== undefined && !contentTarget(id)))
164
163
  return REFUSED;
165
164
  const type = value.type === undefined ? undefined : ref(value.type);
166
165
  const toVoid = type === undefined ? isVoid(id) : roles.childless(type);
167
166
  if (children?.length && toVoid)
168
167
  return REFUSED;
169
- if (children !== undefined && M.collides(doc, children))
168
+ if (children !== undefined && collides(doc, children))
170
169
  return refused('id-collision');
171
170
  const data = value.data === undefined ? [] : dataSteps(id, leafSets(value.data, blockDataOf(id)));
172
171
  if (data === null)
@@ -183,21 +182,13 @@ export const metaOps = (c) => {
183
182
  const length = displayLength(id);
184
183
  if (length > 0)
185
184
  writes.push({ op: 'deleteText', id, offset: 0, length });
186
- let at = 0;
187
- for (const item of content) {
188
- if (item.kind === 'inline')
189
- writes.push({ op: 'insertInline', id, offset: at++, atom: item });
190
- else if (item.text !== '') {
191
- writes.push({ op: 'insertText', id, offset: at, text: item.text, marks: item.marks });
192
- at += item.text.length;
193
- }
194
- }
185
+ writeContent(writes, id, 0, content);
195
186
  }
196
187
  if (children !== undefined) {
197
188
  for (const kid of childrenIds(id))
198
189
  writes.push(remove(kid));
199
190
  // Every current child is deleted, so the new ones rank from an empty list.
200
- const ranks = M.ranksAt([], 0, children.length, doc.clientID, randOf(doc));
191
+ const ranks = ranksAt([], 0, children.length, doc.clientID, randOf(doc));
201
192
  if (children.length > 0)
202
193
  writes.push({ op: 'insertBlocks', parent: id, index: 0, specs: children, ranks });
203
194
  }
@@ -206,8 +197,6 @@ export const metaOps = (c) => {
206
197
  return {
207
198
  dataSteps,
208
199
  replaceData,
209
- leafSets,
210
- retypeSteps,
211
200
  setBlockType,
212
201
  patchData,
213
202
  setBlock
@@ -1,6 +1,6 @@
1
1
  import { type JSONBlock } from '../../utils/json.js';
2
- import type { BlockId, BlockSpec, Destination } from '../placement/model.js';
3
- import type { Prepared, PlanStep, Plan } from './types.js';
2
+ import { type BlockId, type BlockSpec, type Destination } from '../placement/model.js';
3
+ import type { Prepared } from './types.js';
4
4
  import type { OpsContext } from './steps.js';
5
5
  /** The moves ops of one facade, prepared. */
6
6
  export declare const moveOps: (c: OpsContext) => {
@@ -12,10 +12,10 @@ export declare const moveOps: (c: OpsContext) => {
12
12
  parent: string | null;
13
13
  levels: string[];
14
14
  };
15
- splitOut: (ids: readonly BlockId[], levels: readonly BlockId[], specs: BlockSpec[], keep: boolean, retype?: readonly PlanStep[]) => Plan;
16
15
  liftOut: (id: BlockId, kind: string, { keep, after }?: {
17
16
  keep?: boolean;
18
17
  after?: readonly BlockSpec[];
19
18
  }) => Prepared;
20
- duplicateBlock: (id: BlockId, freshId: (oldId: string, kind: "block" | "inline") => string) => Prepared;
19
+ duplicateBlock: (id: BlockId, freshId?: (oldId: string, kind: "block" | "inline") => string) => Prepared;
21
20
  };
21
+ export type MoveOps = ReturnType<typeof moveOps>;
@@ -5,10 +5,11 @@
5
5
  */
6
6
  import { id as newId } from '../../utils.js';
7
7
  import { asBlockSpec, sanitizeSpec } from '../../utils/json.js';
8
+ import { collides } from '../placement/model.js';
8
9
  import { ref } from './plan.js';
9
10
  /** The moves ops of one facade, prepared. */
10
11
  export const moveOps = (c) => {
11
- const { doc, M, blockTypeOf, blockDataOf, childrenIds, positionOf, isVoid, isIsland, isLine, contentItems, live, canPlace, isContainer, fits, kindToCopy, REFUSED, HEAD, KEPT, WITH, SELF, AFTER, plan, ranksFor, moveTo, move, exitRanks, leaving, settledKind, settle, landing, emptying, emptied } = c;
12
+ const { doc, blockTypeOf, blockDataOf, childrenIds, positionOf, isVoid, isIsland, isLine, contentItems, live, canPlace, isContainer, fits, kindToCopy, REFUSED, HEAD, KEPT, WITH, SELF, AFTER, plan, ranksFor, moveTo, move, exitRanks, leaving, settledKind, settle, landing, emptying, emptied } = c;
12
13
  /**
13
14
  * Insert blocks (specs may carry children/content/data; the batch is
14
15
  * all-or-nothing). A spec is a `BlockSpec` or the `JSONBlock` that
@@ -26,7 +27,7 @@ export const moveOps = (c) => {
26
27
  return REFUSED;
27
28
  if (clean.length === 0)
28
29
  return plan([], []);
29
- if ((parent !== null && !live(parent)) || M.collides(doc, clean))
30
+ if ((parent !== null && !live(parent)) || collides(doc, clean))
30
31
  return REFUSED;
31
32
  const ranks = ranksFor(parent, dest.index, clean.length, [], true);
32
33
  return plan(clean.map((s) => s.id), [{ op: 'insertBlocks', parent, index: dest.index, specs: clean, ranks }]);
@@ -198,7 +199,7 @@ export const moveOps = (c) => {
198
199
  kind = ref(kind);
199
200
  const specs = after.map(sanitizeSpec);
200
201
  const { parent, levels } = landingOf(id, kind, keep);
201
- if (!positionOf(id) || M.collides(doc, specs) || !canPlace([id], parent, () => kind))
202
+ if (!positionOf(id) || collides(doc, specs) || !canPlace([id], parent, () => kind))
202
203
  return REFUSED;
203
204
  return splitOut([id], levels, specs, keep);
204
205
  };
@@ -211,7 +212,7 @@ export const moveOps = (c) => {
211
212
  * minted; a block id it does not answer refuses the copy. `ids`: the
212
213
  * copy's root.
213
214
  */
214
- const duplicateBlock = (id, freshId) => {
215
+ const duplicateBlock = (id, freshId = (_, kind) => newId(kind === 'block' ? 'b' : 'i')) => {
215
216
  id = ref(id);
216
217
  const pos = positionOf(id);
217
218
  if (pos === null)
@@ -247,7 +248,6 @@ export const moveOps = (c) => {
247
248
  unNestBlocks,
248
249
  unNestBlock,
249
250
  landingOf,
250
- splitOut,
251
251
  liftOut,
252
252
  duplicateBlock
253
253
  };
@@ -11,6 +11,8 @@ export declare const EMPTY_IDS: readonly BlockId[];
11
11
  export type Refusal = null | string;
12
12
  export declare const NOOP: OpResult;
13
13
  export declare const refused: (reason: Refusal) => OpResult;
14
+ /** A refusal that names no reason (one shared value). */
15
+ export declare const REFUSED: OpResult;
14
16
  /** Each prepared op, applied: the op itself. */
15
17
  export type Applied<P> = {
16
18
  [K in keyof P]: P[K] extends (...args: infer A) => Prepared ? (...args: A) => OpResult : never;
@@ -3,6 +3,8 @@ import { sanitizeWireJson, sanitizeWireString } from '../../utils/json.js';
3
3
  export const EMPTY_IDS = Object.freeze([]);
4
4
  export const NOOP = Object.freeze({ status: 'noop', ids: EMPTY_IDS });
5
5
  export const refused = (reason) => Object.freeze({ status: 'refused', ids: EMPTY_IDS, ...(reason !== null && { reason }) });
6
+ /** A refusal that names no reason (one shared value). */
7
+ export const REFUSED = refused(null);
6
8
  export const applied = (prepare, apply) => Object.fromEntries(Object.entries(prepare).map(([name, op]) => [name, (...args) => apply(op(...args))]));
7
9
  /** The effect summary of `writes`. */
8
10
  export const effectOf = (writes) => {
@@ -1,6 +1,5 @@
1
1
  import type { EngineApi, EngineDoc, EngineNode } from '../engine-api.js';
2
- import { type BlockId, type ContentItem, type Destination, type ModelView, type PlacementModel } from '../placement/model.js';
3
- import { type TextEngine } from '../text/model.js';
2
+ import { type BlockId, type ContentItem, type Destination, type ModelView } from '../placement/model.js';
4
3
  import type { DisplayRoles, RunView } from '../text/runs.js';
5
4
  import { type JSONBlock } from '../../utils/json.js';
6
5
  import type { BlockRole, DataTarget, JsonObj, OrderPolicy } from './types.js';
@@ -8,8 +7,6 @@ import type { BlockRole, DataTarget, JsonObj, OrderPolicy } from './types.js';
8
7
  export type DocBase = {
9
8
  Y: EngineApi;
10
9
  doc: EngineDoc;
11
- M: PlacementModel;
12
- T: TextEngine;
13
10
  /** The doc's index (`text/runs.ts`): the one owner of derived state. */
14
11
  runsView: RunView;
15
12
  /** The role table the display and every guard ask of a block's shown kind. */
@@ -48,7 +45,6 @@ export declare const docReads: (c: DocBase) => {
48
45
  isLayoutItem: (id: BlockId) => boolean;
49
46
  holdsLayout: (id: BlockId) => boolean;
50
47
  insideItem: (id: BlockId, v?: ModelView) => boolean;
51
- rowKindOf: (id: BlockId) => string | undefined;
52
48
  isTable: (id: BlockId) => boolean;
53
49
  isRowKind: (type: string | undefined) => boolean;
54
50
  isCellKind: (type: string | undefined) => boolean;
@@ -6,28 +6,28 @@
6
6
  */
7
7
  import { DEV } from 'esm-env';
8
8
  import { DOC_DATA_ROOT, TYPE } from '../schema.js';
9
- import { displayParentOf, displaySlotOf, isLiveIn } from '../placement/model.js';
10
- import { DEAD, ownedLength } from '../text/model.js';
9
+ import { blockNodeOf, displayParentOf, displaySlotOf, isLive, isLiveIn, positionInView, positionOf as modelPositionOf } from '../placement/model.js';
10
+ import { DEAD, findAtom, ownedLength } from '../text/model.js';
11
11
  import { holdsPending } from '../structs.js';
12
12
  import { itemIds, readData } from '../data.js';
13
- import { unlistedOrder } from '../tables.js';
13
+ import { columnIds, listedColumns, unlistedOrder } from '../tables.js';
14
14
  import { cloneJsonSafe } from '../../utils/json.js';
15
15
  import { ref } from './plan.js';
16
16
  /** The reads of the facade over `c.doc`. */
17
17
  export const docReads = (c) => {
18
- const { doc, M, T, runsView, roles } = c;
18
+ const { doc, runsView, roles } = c;
19
19
  /** The node a data patch writes: block `id`, its atom `inlineId`, or the document's data root. */
20
20
  const dataNode = (id, inlineId) => id === undefined
21
21
  ? doc.get(DOC_DATA_ROOT)
22
22
  : inlineId === undefined
23
- ? (M.blockNodeOf(doc, id) ?? undefined)
24
- : T.findAtom(view().own, id, inlineId)?.node;
23
+ ? (blockNodeOf(doc, id) ?? undefined)
24
+ : findAtom(view().own, id, inlineId)?.node;
25
25
  /** The one serializer: `id`'s subtree in the public `JSONBlock` shape. */
26
26
  const blockJSON = (id) => {
27
27
  const type = blockTypeOf(id);
28
28
  // A registered block always has a type once its updates are all in:
29
29
  // `''` is the absent-id shape, or an out-of-order delivery's transient.
30
- if (DEV && type === undefined && M.blockNodeOf(doc, id) !== null && !holdsPending(doc))
30
+ if (DEV && type === undefined && blockNodeOf(doc, id) !== null && !holdsPending(doc))
31
31
  throw new Error(`[edytor-doc] block ${id} has no type`);
32
32
  const block = {
33
33
  type: type ?? '',
@@ -46,11 +46,11 @@ export const docReads = (c) => {
46
46
  const view = () => runsView.view();
47
47
  // ── reads ────────────────────────────────────────────────────────
48
48
  const blockTypeOf = (id) => {
49
- const t = runsView.displayType(id) ?? M.blockNodeOf(doc, id)?.getAttr(TYPE);
49
+ const t = runsView.displayType(id) ?? blockNodeOf(doc, id)?.getAttr(TYPE);
50
50
  return typeof t === 'string' ? t : undefined;
51
51
  };
52
52
  const blockDataOf = (id) => {
53
- const node = M.blockNodeOf(doc, id);
53
+ const node = blockNodeOf(doc, id);
54
54
  const d = node && readData(node);
55
55
  // `cloneJsonSafe`: the read path stays total even when the stored
56
56
  // attr holds a non-JSON value that bypassed boundary validation
@@ -71,14 +71,14 @@ export const docReads = (c) => {
71
71
  };
72
72
  /** Ordered visible children of `parent` (`null` = root) — canonical read. */
73
73
  const childrenIds = (parent) => (view().kids.get(parent) ?? []).map((k) => k.id);
74
- const positionOf = (id) => M.positionOf(doc, id);
74
+ const positionOf = (id) => modelPositionOf(doc, id);
75
75
  /** Index path from the root (`[i, j, …]`), or null when hidden/absent. */
76
76
  const pathOf = (id) => {
77
77
  const v = view();
78
78
  const path = [];
79
79
  let cur = id;
80
80
  while (cur !== null) {
81
- const pos = M.positionInView(v, cur);
81
+ const pos = positionInView(v, cur);
82
82
  if (!pos)
83
83
  return null;
84
84
  path.unshift(pos.index);
@@ -130,28 +130,29 @@ export const docReads = (c) => {
130
130
  const parent = positionOf(id)?.parent;
131
131
  return parent != null && isLines(parent);
132
132
  };
133
- /** The item kind of `id` when it is a layout (its role says `layout`): its default child. */
134
- const itemKindOf = (id) => {
133
+ /** The child kind `role` gives `id`'s kind: a layout's item kind, a table's row kind. */
134
+ const childKindOf = (role) => (id) => {
135
135
  const type = blockTypeOf(id);
136
- return type === undefined ? undefined : roles.layout(type);
136
+ return type === undefined ? undefined : roles[role](type);
137
+ };
138
+ /** `id` is of its parent's `kindOf` kind, directly in it (a column, a row). */
139
+ const childOf = (kindOf) => (id) => {
140
+ const parent = positionOf(id)?.parent;
141
+ return parent != null && blockTypeOf(id) === kindOf(parent);
137
142
  };
143
+ /** The item kind of `id` when it is a layout (its role says `layout`): its default child. */
144
+ const itemKindOf = childKindOf('layout');
138
145
  /** `id` is a layout (`layout.*`). */
139
146
  const isLayout = (id) => itemKindOf(id) !== undefined;
140
147
  /** `id` is a layout item: of its layout's item kind, directly in it (a column). */
141
- const isLayoutItem = (id) => {
142
- const parent = positionOf(id)?.parent;
143
- return parent != null && blockTypeOf(id) === itemKindOf(parent);
144
- };
148
+ const isLayoutItem = childOf(itemKindOf);
145
149
  /** `id` is a layout or holds one in its shown subtree (`layout.nest`). */
146
150
  const holdsLayout = (id) => isLayout(id) || childrenIds(id).some(holdsLayout);
147
151
  /** `id` is a layout item or sits inside one. */
148
152
  const insideItem = (id, v) => [id, ...ancestorsOf(id, v)].some(isLayoutItem);
149
153
  // ── tables (`table.*`) ────────────────────────────────────────────
150
154
  /** The row kind of `id` when it is a table (its role says `table`): its default child. */
151
- const rowKindOf = (id) => {
152
- const type = blockTypeOf(id);
153
- return type === undefined ? undefined : roles.table(type);
154
- };
155
+ const rowKindOf = childKindOf('table');
155
156
  /** `id` is a table (`table.*`). */
156
157
  const isTable = (id) => rowKindOf(id) !== undefined;
157
158
  /** `type` is a row kind of a table kind the roles declare (`tableRow`). */
@@ -163,10 +164,7 @@ export const docReads = (c) => {
163
164
  return row !== undefined && roles.defaultChild(row) === type;
164
165
  });
165
166
  /** `id` is a table's row: of its table's row kind, directly in it. */
166
- const isTableRow = (id) => {
167
- const parent = positionOf(id)?.parent;
168
- return parent != null && blockTypeOf(id) === rowKindOf(parent);
169
- };
167
+ const isTableRow = childOf(rowKindOf);
170
168
  /** `id` is a table's cell: of its row's cell kind, directly in a row of a table. */
171
169
  const isTableCell = (id) => {
172
170
  const row = positionOf(id)?.parent;
@@ -188,20 +186,13 @@ export const docReads = (c) => {
188
186
  * (its cells show in their own order, `table.columns`).
189
187
  */
190
188
  const tableColumns = (table) => {
191
- const columns = blockDataOf(table)?.columns;
192
- if (!Array.isArray(columns))
193
- return null;
194
- const seen = new Set();
195
- const out = [];
196
- for (const c of columns) {
197
- const id = c?.id;
198
- if (typeof id !== 'string' || seen.has(id))
199
- continue;
200
- seen.add(id);
201
- const width = c.width;
202
- out.push(typeof width === 'number' && Number.isFinite(width) ? { id, width } : { id });
203
- }
204
- return out;
189
+ const data = blockDataOf(table);
190
+ const ids = columnIds(data);
191
+ return (ids &&
192
+ listedColumns(data).map((id) => {
193
+ const width = data.columns[ids.indexOf(id)].width;
194
+ return typeof width === 'number' && Number.isFinite(width) ? { id, width } : { id };
195
+ }));
205
196
  };
206
197
  /**
207
198
  * `table` as a grid (`table.pad`): its column ids in order and each shown
@@ -291,17 +282,16 @@ export const docReads = (c) => {
291
282
  * absent/deleted blocks. This is the transaction-aware counterpart
292
283
  * of the commit-synced {@link runsView} read surface.
293
284
  *
294
- * The range reader emits BORROWED `marks`/`data` (cursor format
295
- * state / the replicated inline attr) — every item's payload is
296
- * swapped for the view's canonical frozen instance before it crosses
297
- * the public boundary, so callers can't mutate engine state through
298
- * the snapshot. Item wrappers and the array stay fresh and mutable.
285
+ * The items are the block's maintained runs: their payloads are the
286
+ * index's canonical frozen instances (`===` the ones `runs` publishes),
287
+ * so callers can't mutate engine state through the snapshot. Item
288
+ * wrappers and the array stay fresh and mutable.
299
289
  */
300
290
  const contentItems = (id) => runsView.contentItems(id);
301
291
  /** Registry membership — the block exists (may be delete-marked or merged away). */
302
- const hasBlock = (id) => M.blockNodeOf(doc, id) !== null;
303
- /** The one liveness answer (`M.isLive`): `id` renders in `project()`. O(depth). */
304
- const live = (id) => M.isLive(doc, id);
292
+ const hasBlock = (id) => blockNodeOf(doc, id) !== null;
293
+ /** The one liveness answer (`isLive`): `id` renders in `project()`. O(depth). */
294
+ const live = (id) => isLive(doc, id);
305
295
  /** A live block that can hold content: it has a claims list (a streamless block gets its own text on first write). */
306
296
  const contentTarget = (id) => live(id) && view().blocks.get(id)?.claimsNode !== undefined;
307
297
  return {
@@ -329,7 +319,6 @@ export const docReads = (c) => {
329
319
  isLayoutItem,
330
320
  holdsLayout,
331
321
  insideItem,
332
- rowKindOf,
333
322
  isTable,
334
323
  isRowKind,
335
324
  isCellKind,
@@ -19,20 +19,29 @@
19
19
  * Seeding is explicit: reads never create or normalize state.
20
20
  */
21
21
  import type { EngineApi, EngineDoc } from '../engine-api.js';
22
- import type { PlacementModel, BlockSpec } from '../placement/model.js';
22
+ import { type BlockSpec } from '../placement/model.js';
23
23
  import type { BlockAttributionApi } from '../attribution/block.js';
24
24
  import type { JsonObj } from './types.js';
25
25
  import { type JSONBlock } from '../../utils/json.js';
26
26
  /** Origin of the seed update's apply — non-local, like any integrated update. */
27
27
  export declare const SEED_ORIGIN: unique symbol;
28
- /** The version record and seed writers over the bound engine layers. */
29
- export declare const bindSeed: (Y: EngineApi, M: PlacementModel, BA: BlockAttributionApi) => {
30
- stamp: (doc: EngineDoc) => void;
31
- restore: (doc: EngineDoc, content: BlockSpec[]) => void;
28
+ /**
29
+ * Stamp the version record, absent only: never downgrade a higher
30
+ * version written by a newer peer — the version gate decides compatibility.
31
+ */
32
+ export declare const stamp: (doc: EngineDoc) => void;
33
+ /**
34
+ * Restore definition (migration only): stamp the version
35
+ * record (absent only) and make `content` the whole document under its
36
+ * own ids, rewritten in place where they exist (the model's
37
+ * `restoreBlocks`). Writes no attribution.
38
+ */
39
+ export declare const restore: (doc: EngineDoc, content: BlockSpec[]) => void;
40
+ /** The seed writers over the engine's block attribution. */
41
+ export declare const bindSeed: (Y: EngineApi, BA: BlockAttributionApi) => {
32
42
  init: (doc: EngineDoc, opts?: {
33
43
  content?: BlockSpec[];
34
44
  defaultType?: string;
35
45
  }) => void;
36
- seedUpdate: (value: JSONBlock[], defaultType?: string, data?: JsonObj) => Uint8Array;
37
46
  seed: (doc: EngineDoc, value?: JSONBlock[], defaultType?: string, data?: JsonObj) => void;
38
47
  };
@@ -1,3 +1,4 @@
1
+ import { insertBlock, insertBlocks, restoreBlocks } from '../placement/model.js';
1
2
  import { hash32, setDocRand } from '../rand.js';
2
3
  import { keepingReplaced } from '../incarnations.js';
3
4
  import { asEngineDoc, asYDoc } from '../structs.js';
@@ -7,29 +8,29 @@ import { jsonBlockToSpec, sanitizeSpec, sanitizeWireJson, sanitizeWireString } f
7
8
  import { isInitialized, META_KEY, registryEmpty, SCHEMA_NAME, SCHEMA_VERSION } from './gate.js';
8
9
  /** Origin of the seed update's apply — non-local, like any integrated update. */
9
10
  export const SEED_ORIGIN = Symbol('edytor:seed');
10
- /** The version record and seed writers over the bound engine layers. */
11
- export const bindSeed = (Y, M, BA) => {
12
- /**
13
- * Stamp the version record, absent only: never downgrade a higher
14
- * version written by a newer peer — the version gate decides compatibility.
15
- */
16
- const stamp = (doc) => {
17
- const meta = doc.get(META_KEY);
18
- if (meta.getAttr(SCHEMA.metaAttrs.version) !== undefined)
19
- return;
20
- meta.setAttr(SCHEMA.metaAttrs.version, SCHEMA_VERSION);
21
- meta.setAttr(SCHEMA.metaAttrs.schema, SCHEMA_NAME);
22
- };
23
- /**
24
- * Restore definition (migration only): stamp the version
25
- * record (absent only) and make `content` the whole document under its
26
- * own ids, rewritten in place where they exist (the model's
27
- * `restoreBlocks`). Writes no attribution.
28
- */
29
- const restore = (doc, content) => doc.transact(() => {
30
- stamp(doc);
31
- M.restoreBlocks(doc, content.map(sanitizeSpec));
32
- });
11
+ /**
12
+ * Stamp the version record, absent only: never downgrade a higher
13
+ * version written by a newer peer — the version gate decides compatibility.
14
+ */
15
+ export const stamp = (doc) => {
16
+ const meta = doc.get(META_KEY);
17
+ if (meta.getAttr(SCHEMA.metaAttrs.version) !== undefined)
18
+ return;
19
+ meta.setAttr(SCHEMA.metaAttrs.version, SCHEMA_VERSION);
20
+ meta.setAttr(SCHEMA.metaAttrs.schema, SCHEMA_NAME);
21
+ };
22
+ /**
23
+ * Restore definition (migration only): stamp the version
24
+ * record (absent only) and make `content` the whole document under its
25
+ * own ids, rewritten in place where they exist (the model's
26
+ * `restoreBlocks`). Writes no attribution.
27
+ */
28
+ export const restore = (doc, content) => doc.transact(() => {
29
+ stamp(doc);
30
+ restoreBlocks(doc, content.map(sanitizeSpec));
31
+ });
32
+ /** The seed writers over the engine's block attribution. */
33
+ export const bindSeed = (Y, BA) => {
33
34
  /**
34
35
  * Stamp the version record (absent only) and, into an EMPTY registry,
35
36
  * bulk-insert `content` — the local materializer: the seed's scratch
@@ -48,12 +49,12 @@ export const bindSeed = (Y, M, BA) => {
48
49
  return;
49
50
  // Bulk path: one sibling read + a local rank chain for the
50
51
  // whole batch. All-or-nothing: a dup spec id refuses the batch.
51
- if (!M.insertBlocks(doc, { parent: null, index: Number.MAX_SAFE_INTEGER }, specs)) {
52
+ if (!insertBlocks(doc, { parent: null, index: Number.MAX_SAFE_INTEGER }, specs)) {
52
53
  // Malformed initial content (e.g. a duplicated id) — fall back
53
54
  // to per-spec insertion so valid blocks still load.
54
55
  console.error('[edytor-doc] initial content refused by bulk insert; retrying per-spec (duplicate block ids are skipped)');
55
56
  for (const spec of specs) {
56
- M.insertBlock(doc, { parent: null, index: Number.MAX_SAFE_INTEGER }, spec);
57
+ insertBlock(doc, { parent: null, index: Number.MAX_SAFE_INTEGER }, spec);
57
58
  }
58
59
  }
59
60
  });
@@ -105,5 +106,5 @@ export const bindSeed = (Y, M, BA) => {
105
106
  };
106
107
  /** Apply the deterministic seed of `value` with the non-local {@link SEED_ORIGIN}. */
107
108
  const seed = (doc, value = [], defaultType, data) => Y.applyUpdate(asYDoc(doc), seedUpdate(value, defaultType, data), SEED_ORIGIN);
108
- return { stamp, restore, init, seedUpdate, seed };
109
+ return { init, seed };
109
110
  };
@@ -1,12 +1,10 @@
1
- import type { BlockId, SplitTail } from '../placement/model.js';
1
+ import { type BlockId, type SplitTail } from '../placement/model.js';
2
2
  import type { Prepared } from './types.js';
3
3
  import type { OpsContext } from './steps.js';
4
4
  /** The split-merge ops of one facade, prepared. */
5
5
  export declare const splitMergeOps: (c: OpsContext) => {
6
6
  splitBlock: (id: BlockId, offset: number, newId: BlockId, tail?: SplitTail) => Prepared;
7
7
  mergeBlocks: (fromId: BlockId, intoId: BlockId) => Prepared;
8
- mergeUnnesting: (from: BlockId, into: BlockId) => Prepared;
9
- gone: (id: BlockId, container: BlockId) => Prepared;
10
8
  mergeBackward: (id: BlockId) => Prepared;
11
9
  mergeForward: (id: BlockId) => Prepared;
12
10
  };
@@ -7,10 +7,11 @@
7
7
  import { isIncarnationId } from '../incarnations.js';
8
8
  import { sanitizeWireJson } from '../../utils/json.js';
9
9
  import { readData } from '../data.js';
10
+ import { blockNodeOf, isSelfOrDescendant } from '../placement/model.js';
10
11
  import { ref } from './plan.js';
11
12
  /** The split-merge ops of one facade, prepared. */
12
13
  export const splitMergeOps = (c) => {
13
- const { doc, M, view, childrenIds, positionOf, isVoid, isCellKind, blockTypeOf, insideIsland, isLayoutItem, next, previous, displayLength, contentTarget, isContainer, fits, canMerge, rendersContent, kindToCopy, REFUSED, plan, ranksFor, moveTo, move, pieceRanks, leaving, settledKind, settle, landing, emptying, emptied, merge, clamp } = c;
14
+ const { doc, view, childrenIds, positionOf, isVoid, isCellKind, blockTypeOf, insideIsland, isLayoutItem, next, previous, displayLength, contentTarget, isContainer, fits, canMerge, rendersContent, kindToCopy, REFUSED, plan, ranksFor, moveTo, move, pieceRanks, leaving, settledKind, settle, landing, emptying, emptied, merge, clamp } = c;
14
15
  /**
15
16
  * Split `id` at content `offset` into a new sibling `newId` (one boundary
16
17
  * item and the claims that follow it, no text copied; children follow).
@@ -30,7 +31,7 @@ export const splitMergeOps = (c) => {
30
31
  // A table's cell holds its lines as line breaks: it never splits (`table.split`).
31
32
  if (isCellKind(blockTypeOf(id)))
32
33
  return REFUSED;
33
- if (isIncarnationId(born) || M.blockNodeOf(doc, born) !== null)
34
+ if (isIncarnationId(born) || blockNodeOf(doc, born) !== null)
34
35
  return REFUSED;
35
36
  const [at] = clamp(id, offset, 0);
36
37
  // An empty tail type is the one a view reads mid-retype: copy the kind.
@@ -69,7 +70,7 @@ export const splitMergeOps = (c) => {
69
70
  const v = view();
70
71
  if (!canMerge(from, into) || !contentTarget(into))
71
72
  return REFUSED;
72
- if (M.isSelfOrDescendant(v.placements, v.own, into, from))
73
+ if (isSelfOrDescendant(v.placements, v.own, into, from))
73
74
  return REFUSED;
74
75
  const kids = childrenIds(from);
75
76
  const retype = settle(from, kids, into);
@@ -175,8 +176,6 @@ export const splitMergeOps = (c) => {
175
176
  return {
176
177
  splitBlock,
177
178
  mergeBlocks,
178
- mergeUnnesting,
179
- gone,
180
179
  mergeBackward,
181
180
  mergeForward
182
181
  };
@@ -1,5 +1,5 @@
1
1
  import { TYPE } from '../schema.js';
2
- import { type BlockId } from '../placement/model.js';
2
+ import { type BlockId, type ContentItem } from '../placement/model.js';
3
3
  import type { Plan, PlanStep } from './types.js';
4
4
  import type { DocBase, DocReads } from './reads.js';
5
5
  import type { DocCapability } from './capability.js';
@@ -36,13 +36,8 @@ export declare const planSteps: (c: StepsContext) => {
36
36
  remove: (id: BlockId, kept?: readonly BlockId[]) => PlanStep;
37
37
  merge: (from: BlockId, into: BlockId) => PlanStep;
38
38
  clamp: (id: BlockId, offset: number, length: number) => [number, number];
39
- spans: (id: BlockId) => {
40
- item: import("../index.js").ContentItem;
41
- at: number;
42
- end: number;
43
- }[];
44
39
  atomOf: (id: BlockId, atom: string) => {
45
- item: import("../index.js").ContentItem;
40
+ item: ContentItem;
46
41
  at: number;
47
42
  end: number;
48
43
  } | undefined;
@@ -51,6 +46,7 @@ export declare const planSteps: (c: StepsContext) => {
51
46
  text: string;
52
47
  marks?: Record<string, unknown>;
53
48
  }[];
49
+ writeContent: (writes: PlanStep[], id: BlockId, at: number, items?: readonly ContentItem[]) => number;
54
50
  };
55
51
  export type PlanSteps = ReturnType<typeof planSteps>;
56
52
  /** What every op family is prepared over: the reads, the capability and the step writers. */