edytor 1.0.0-rc.3 → 2.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 (667) hide show
  1. package/README.md +21 -39
  2. package/dist/block/block.svelte.d.ts +11 -84
  3. package/dist/block/block.svelte.js +30 -134
  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 +11 -9
  9. package/dist/block/inlineBlock.svelte.js +18 -21
  10. package/dist/clipboard/createClipboardFragment.js +22 -64
  11. package/dist/clipboard/fragmentData.js +17 -42
  12. package/dist/clipboard/htmlFlow.js +7 -7
  13. package/dist/clipboard/insertClipboardFragment.js +5 -4
  14. package/dist/clipboard/moveText.js +16 -8
  15. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  16. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  17. package/dist/cloudflare/DocumentRoom.d.ts +4 -17
  18. package/dist/cloudflare/DocumentRoom.js +3 -5
  19. package/dist/cloudflare/move.d.ts +1 -18
  20. package/dist/cloudflare/move.js +2 -48
  21. package/dist/cloudflare/room/admission.d.ts +1 -60
  22. package/dist/cloudflare/room/admission.js +25 -29
  23. package/dist/cloudflare/room/comments.d.ts +1 -3
  24. package/dist/cloudflare/room/comments.js +6 -6
  25. package/dist/cloudflare/room/context.d.ts +25 -82
  26. package/dist/cloudflare/room/context.js +8 -8
  27. package/dist/cloudflare/room/forged.d.ts +1 -1
  28. package/dist/cloudflare/room/forged.js +2 -12
  29. package/dist/cloudflare/room/frames.d.ts +1 -1
  30. package/dist/cloudflare/room/frames.js +1 -1
  31. package/dist/cloudflare/room/history.d.ts +1 -25
  32. package/dist/cloudflare/room/history.js +39 -54
  33. package/dist/cloudflare/room/moves.d.ts +1 -13
  34. package/dist/cloudflare/room/moves.js +33 -57
  35. package/dist/cloudflare/room/presence.d.ts +1 -11
  36. package/dist/cloudflare/room/presence.js +4 -4
  37. package/dist/cloudflare/room/purge.d.ts +1 -2
  38. package/dist/cloudflare/room/purge.js +2 -2
  39. package/dist/cloudflare/room/replicas.d.ts +1 -7
  40. package/dist/cloudflare/room/replicas.js +2 -2
  41. package/dist/cloudflare/room/storage.d.ts +3 -32
  42. package/dist/cloudflare/room/storage.js +33 -108
  43. package/dist/cloudflare/room/updates.d.ts +4 -4
  44. package/dist/cloudflare/room/updates.js +17 -24
  45. package/dist/cloudflare/room/validation.d.ts +1 -5
  46. package/dist/cloudflare/room/validation.js +16 -37
  47. package/dist/collaboration/RemoteSelections.svelte +13 -17
  48. package/dist/collaboration/awarenessSelection.d.ts +22 -1
  49. package/dist/collaboration/awarenessSelection.js +42 -0
  50. package/dist/collaboration/comments/client.d.ts +2 -2
  51. package/dist/collaboration/comments/client.js +1 -1
  52. package/dist/collaboration/history/index.d.ts +5 -5
  53. package/dist/collaboration/history/index.js +5 -5
  54. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  55. package/dist/collaboration/history/panel.svelte.js +223 -0
  56. package/dist/collaboration/providers.d.ts +12 -3
  57. package/dist/collaboration/providers.js +5 -4
  58. package/dist/components/Block.svelte +42 -56
  59. package/dist/components/Block.svelte.d.ts +7 -5
  60. package/dist/components/Content.svelte +1 -5
  61. package/dist/components/Edytor.svelte +82 -99
  62. package/dist/components/Edytor.svelte.d.ts +16 -13
  63. package/dist/components/InlineBlock.svelte +1 -1
  64. package/dist/components/Ranges.svelte +96 -0
  65. package/dist/components/Ranges.svelte.d.ts +19 -0
  66. package/dist/components/Suggestion.svelte +3 -2
  67. package/dist/components/Text.svelte +2 -5
  68. package/dist/components/Text.svelte.d.ts +1 -1
  69. package/dist/crdt/admission.d.ts +2 -9
  70. package/dist/crdt/admission.js +3 -9
  71. package/dist/crdt/attribution/attribution.d.ts +11 -72
  72. package/dist/crdt/attribution/attribution.js +5 -52
  73. package/dist/crdt/attribution/block.d.ts +0 -78
  74. package/dist/crdt/attribution/block.js +1 -144
  75. package/dist/crdt/data.d.ts +18 -13
  76. package/dist/crdt/data.js +49 -71
  77. package/dist/crdt/doc/anchors.js +4 -4
  78. package/dist/crdt/doc/content.d.ts +5 -1
  79. package/dist/crdt/doc/content.js +3 -1
  80. package/dist/crdt/doc/delete.d.ts +1 -0
  81. package/dist/crdt/doc/funnel.d.ts +0 -23
  82. package/dist/crdt/doc/funnel.js +34 -85
  83. package/dist/crdt/doc/gate.d.ts +8 -9
  84. package/dist/crdt/doc/gate.js +7 -17
  85. package/dist/crdt/doc/history.d.ts +87 -14
  86. package/dist/crdt/doc/history.js +334 -149
  87. package/dist/crdt/doc/layout.d.ts +0 -1
  88. package/dist/crdt/doc/layout.js +2 -3
  89. package/dist/crdt/doc/meta.d.ts +4 -4
  90. package/dist/crdt/doc/meta.js +10 -21
  91. package/dist/crdt/doc/moves.d.ts +4 -4
  92. package/dist/crdt/doc/moves.js +5 -5
  93. package/dist/crdt/doc/plan.d.ts +2 -0
  94. package/dist/crdt/doc/plan.js +2 -0
  95. package/dist/crdt/doc/reads.d.ts +8 -5
  96. package/dist/crdt/doc/reads.js +49 -50
  97. package/dist/crdt/doc/seed.d.ts +15 -6
  98. package/dist/crdt/doc/seed.js +27 -26
  99. package/dist/crdt/doc/split-merge.d.ts +1 -3
  100. package/dist/crdt/doc/split-merge.js +4 -5
  101. package/dist/crdt/doc/steps.d.ts +3 -7
  102. package/dist/crdt/doc/steps.js +20 -9
  103. package/dist/crdt/doc/types.d.ts +0 -10
  104. package/dist/crdt/document.d.ts +32 -115
  105. package/dist/crdt/document.js +216 -302
  106. package/dist/crdt/edytor-doc.d.ts +689 -90
  107. package/dist/crdt/edytor-doc.js +74 -149
  108. package/dist/crdt/engine-api.d.ts +15 -47
  109. package/dist/crdt/engine.d.ts +7 -17
  110. package/dist/crdt/engine.js +9 -19
  111. package/dist/crdt/flow.d.ts +9 -37
  112. package/dist/crdt/flow.js +260 -238
  113. package/dist/crdt/index.d.ts +32 -85
  114. package/dist/crdt/index.js +21 -47
  115. package/dist/crdt/operations.d.ts +24 -33
  116. package/dist/crdt/operations.js +8 -17
  117. package/dist/crdt/placement/display.d.ts +0 -2
  118. package/dist/crdt/placement/display.js +0 -15
  119. package/dist/crdt/placement/model.d.ts +160 -12
  120. package/dist/crdt/placement/model.js +413 -414
  121. package/dist/crdt/placement/rank.d.ts +1 -5
  122. package/dist/crdt/placement/rank.js +28 -38
  123. package/dist/crdt/props.d.ts +32 -0
  124. package/dist/crdt/props.js +172 -0
  125. package/dist/crdt/protocol.d.ts +4 -5
  126. package/dist/crdt/protocol.js +3 -4
  127. package/dist/crdt/protocols/awareness.d.ts +3 -7
  128. package/dist/crdt/protocols/awareness.js +17 -33
  129. package/dist/crdt/protocols/envelope.d.ts +9 -29
  130. package/dist/crdt/protocols/envelope.js +8 -25
  131. package/dist/crdt/protocols/sync.d.ts +15 -30
  132. package/dist/crdt/protocols/sync.js +27 -89
  133. package/dist/crdt/providers/bound.d.ts +3 -1
  134. package/dist/crdt/providers/bound.js +3 -1
  135. package/dist/crdt/providers/container.d.ts +11 -17
  136. package/dist/crdt/providers/container.js +39 -27
  137. package/dist/crdt/providers/index.d.ts +34 -6
  138. package/dist/crdt/providers/index.js +106 -111
  139. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  140. package/dist/crdt/providers/indexeddb.js +29 -90
  141. package/dist/crdt/providers/room.d.ts +58 -2
  142. package/dist/crdt/providers/room.js +38 -21
  143. package/dist/crdt/providers/websocket.d.ts +1 -1
  144. package/dist/crdt/providers/websocket.js +3 -4
  145. package/dist/crdt/purge.d.ts +2 -2
  146. package/dist/crdt/purge.js +69 -6
  147. package/dist/crdt/rangeDelete.d.ts +4 -42
  148. package/dist/crdt/rangeDelete.js +7 -6
  149. package/dist/crdt/restore.d.ts +21 -1
  150. package/dist/crdt/restore.js +54 -59
  151. package/dist/crdt/schema.d.ts +2 -2
  152. package/dist/crdt/schema.js +4 -5
  153. package/dist/crdt/semantics.d.ts +10 -15
  154. package/dist/crdt/semantics.js +22 -21
  155. package/dist/crdt/storage.d.ts +7 -13
  156. package/dist/crdt/storage.js +10 -24
  157. package/dist/crdt/structs.d.ts +42 -47
  158. package/dist/crdt/structs.js +76 -67
  159. package/dist/crdt/tables.d.ts +9 -0
  160. package/dist/crdt/tables.js +20 -0
  161. package/dist/crdt/text/delete-index.d.ts +0 -13
  162. package/dist/crdt/text/delete-index.js +7 -14
  163. package/dist/crdt/text/deletes.d.ts +9 -22
  164. package/dist/crdt/text/deletes.js +11 -74
  165. package/dist/crdt/text/index/cache.js +3 -3
  166. package/dist/crdt/text/index/fold.d.ts +1 -2
  167. package/dist/crdt/text/index/fold.js +15 -10
  168. package/dist/crdt/text/index/layout.d.ts +0 -10
  169. package/dist/crdt/text/index/layout.js +6 -20
  170. package/dist/crdt/text/index/records.js +2 -1
  171. package/dist/crdt/text/index/report.js +5 -6
  172. package/dist/crdt/text/index/shared.d.ts +11 -4
  173. package/dist/crdt/text/index/shared.js +8 -7
  174. package/dist/crdt/text/index/state.d.ts +3 -33
  175. package/dist/crdt/text/index/state.js +2 -4
  176. package/dist/crdt/text/model.d.ts +82 -2
  177. package/dist/crdt/text/model.js +344 -354
  178. package/dist/crdt/text/rows.d.ts +0 -2
  179. package/dist/crdt/text/rows.js +0 -11
  180. package/dist/crdt/text/runs.d.ts +6 -3
  181. package/dist/crdt/text/runs.js +132 -137
  182. package/dist/crdt/text/streams.d.ts +1 -1
  183. package/dist/crdt/text/streams.js +1 -1
  184. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  185. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  186. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  187. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  188. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  189. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  190. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  191. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  192. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  193. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  194. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  195. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  196. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  197. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  198. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  199. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  200. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  201. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  202. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  203. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  204. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  205. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  206. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  207. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  208. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  209. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  210. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  211. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  212. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  213. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  214. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  215. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  216. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  217. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  218. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  219. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  220. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  221. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  222. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  223. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  224. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  225. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  226. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  227. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  228. package/dist/dnd/autoScroll.js +1 -2
  229. package/dist/{plugins/blockHandles → dnd}/dropIndicator.d.ts +2 -2
  230. package/dist/{plugins/blockHandles → dnd}/dropIndicator.js +52 -60
  231. package/dist/{plugins/blockHandles → dnd}/geometry.d.ts +4 -3
  232. package/dist/{plugins/blockHandles → dnd}/geometry.js +6 -6
  233. package/dist/dnd/placement.d.ts +200 -0
  234. package/dist/dnd/placement.js +426 -0
  235. package/dist/dnd/pragmatic.d.ts +4 -22
  236. package/dist/dnd/pragmatic.js +7 -26
  237. package/dist/dnd/track.d.ts +14 -0
  238. package/dist/dnd/track.js +55 -0
  239. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  240. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  241. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  242. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  243. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  254. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  265. 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
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  293. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  294. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  295. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  296. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  297. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  298. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  299. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  300. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  301. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  302. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  303. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  304. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  305. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  306. package/dist/edytor.svelte.d.ts +46 -63
  307. package/dist/edytor.svelte.js +126 -181
  308. package/dist/events/beforeInputCommands.d.ts +6 -11
  309. package/dist/events/beforeInputCommands.js +189 -181
  310. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  311. package/dist/events/beforeInputDeleteCommands.js +153 -204
  312. package/dist/events/domTextOffset.d.ts +9 -9
  313. package/dist/events/domTextOffset.js +20 -48
  314. package/dist/events/events.utils.d.ts +0 -2
  315. package/dist/events/events.utils.js +0 -4
  316. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  317. package/dist/events/nativeInteractiveControl.js +28 -56
  318. package/dist/events/onBeforeInput.d.ts +6 -1
  319. package/dist/events/onBeforeInput.js +207 -331
  320. package/dist/events/onCopy.js +1 -5
  321. package/dist/events/onDrop.d.ts +7 -1
  322. package/dist/events/onDrop.js +64 -78
  323. package/dist/events/onFocus.d.ts +9 -4
  324. package/dist/events/onFocus.js +45 -67
  325. package/dist/events/onInput.d.ts +8 -4
  326. package/dist/events/onInput.js +34 -147
  327. package/dist/events/onKeyDown.js +55 -122
  328. package/dist/events/onPaste.d.ts +14 -1
  329. package/dist/events/onPaste.js +51 -76
  330. package/dist/index.d.ts +11 -15
  331. package/dist/index.js +3 -3
  332. package/dist/kinds.d.ts +4 -6
  333. package/dist/kinds.js +28 -27
  334. package/dist/labels.d.ts +83 -320
  335. package/dist/labels.js +181 -408
  336. package/dist/plugins/Chrome.svelte +29 -0
  337. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  338. package/dist/plugins/Control.svelte +23 -0
  339. package/dist/plugins/Control.svelte.d.ts +30 -0
  340. package/dist/plugins/anchored.svelte.d.ts +47 -0
  341. package/dist/plugins/anchored.svelte.js +73 -0
  342. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  343. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  344. package/dist/plugins/bands.svelte.d.ts +57 -0
  345. package/dist/plugins/bands.svelte.js +95 -0
  346. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -154
  347. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  348. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +21 -196
  349. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +158 -573
  350. package/dist/plugins/blockHandles/BlockHandles.svelte +15 -23
  351. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  352. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +25 -39
  353. package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -185
  354. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  355. package/dist/plugins/blockHandles/dragPreview.js +18 -16
  356. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +28 -38
  357. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +116 -183
  358. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  359. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  360. package/dist/plugins/brand.d.ts +8 -0
  361. package/dist/plugins/brand.js +8 -0
  362. package/dist/plugins/chrome.d.ts +45 -38
  363. package/dist/plugins/chrome.js +59 -36
  364. package/dist/plugins/code/CodeHeader.svelte +8 -38
  365. package/dist/plugins/code/CodePlugin.svelte +53 -56
  366. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  367. package/dist/plugins/code/LanguageMenu.svelte +16 -125
  368. package/dist/plugins/code/LanguageMenu.svelte.d.ts +2 -1
  369. package/dist/plugins/code/code.css +5 -117
  370. package/dist/plugins/code/header.svelte.d.ts +2 -11
  371. package/dist/plugins/code/header.svelte.js +11 -38
  372. package/dist/plugins/code/languageMenu.svelte.d.ts +12 -32
  373. package/dist/plugins/code/languageMenu.svelte.js +30 -160
  374. package/dist/plugins/code/languages.d.ts +9 -22
  375. package/dist/plugins/code/languages.js +39 -128
  376. package/dist/plugins/columns/ColumnResize.svelte +16 -27
  377. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  378. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  379. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  380. package/dist/plugins/columns/columns.css +7 -26
  381. package/dist/plugins/columns/gaps.d.ts +7 -5
  382. package/dist/plugins/columns/gaps.js +11 -6
  383. package/dist/plugins/columns/resize.svelte.d.ts +17 -54
  384. package/dist/plugins/columns/resize.svelte.js +80 -173
  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 -431
  388. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +4 -2
  389. package/dist/plugins/comments/commentsPlugin.d.ts +25 -9
  390. package/dist/plugins/comments/commentsPlugin.js +12 -10
  391. package/dist/plugins/equation/EquationEditor.svelte +16 -130
  392. package/dist/plugins/equation/EquationEditor.svelte.d.ts +1 -2
  393. package/dist/plugins/equation/EquationPlugin.svelte +109 -172
  394. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +3 -2
  395. package/dist/plugins/equation/EquationView.svelte +20 -11
  396. package/dist/plugins/equation/equation.css +7 -0
  397. package/dist/plugins/equation/equation.svelte.d.ts +37 -24
  398. package/dist/plugins/equation/equation.svelte.js +20 -94
  399. package/dist/plugins/equation/katex.js +6 -9
  400. package/dist/plugins/fileDrop.d.ts +28 -0
  401. package/dist/plugins/fileDrop.js +116 -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 +6 -167
  407. package/dist/plugins/image/ImageChrome.svelte.d.ts +0 -2
  408. package/dist/plugins/image/ImagePlugin.svelte +71 -151
  409. package/dist/plugins/image/ImagePlugin.svelte.d.ts +12 -41
  410. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  411. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  412. package/dist/plugins/image/controls.svelte.d.ts +6 -36
  413. package/dist/plugins/image/controls.svelte.js +43 -212
  414. package/dist/plugins/image/image.css +17 -0
  415. package/dist/plugins/image/image.d.ts +0 -5
  416. package/dist/plugins/image/image.js +0 -3
  417. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  418. package/dist/plugins/image/toolbar.svelte.js +145 -0
  419. package/dist/plugins/index.d.ts +30 -26
  420. package/dist/plugins/index.js +28 -22
  421. package/dist/plugins/list.svelte.d.ts +128 -0
  422. package/dist/plugins/list.svelte.js +217 -0
  423. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  424. package/dist/plugins/markdownShortcuts.js +10 -9
  425. package/dist/plugins/marquee/MarqueeBox.svelte +3 -20
  426. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +1 -1
  427. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +0 -2
  428. package/dist/plugins/marquee/MarqueeController.svelte.js +20 -23
  429. package/dist/plugins/marquee/marquee.js +4 -21
  430. package/dist/plugins/marquee/marqueePlugin.d.ts +4 -3
  431. package/dist/plugins/marquee/marqueePlugin.js +16 -15
  432. package/dist/plugins/media/AudioPlugin.svelte +13 -88
  433. package/dist/plugins/media/AudioPlugin.svelte.d.ts +11 -4
  434. package/dist/plugins/media/BookmarkPlugin.svelte +113 -120
  435. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +10 -15
  436. package/dist/plugins/media/EmbedPlugin.svelte +82 -86
  437. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +11 -17
  438. package/dist/plugins/media/EmptySlot.svelte +44 -0
  439. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  440. package/dist/plugins/media/FilePlugin.svelte +45 -113
  441. package/dist/plugins/media/FilePlugin.svelte.d.ts +21 -4
  442. package/dist/plugins/media/MediaEmpty.svelte +51 -90
  443. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  444. package/dist/plugins/media/SourceBlock.svelte +200 -0
  445. package/dist/plugins/media/SourceBlock.svelte.d.ts +34 -0
  446. package/dist/plugins/media/UploadPreview.svelte +32 -0
  447. package/dist/plugins/media/UploadPreview.svelte.d.ts +11 -0
  448. package/dist/plugins/media/VideoPlugin.svelte +14 -97
  449. package/dist/plugins/media/VideoPlugin.svelte.d.ts +12 -5
  450. package/dist/plugins/media/empty.svelte.d.ts +47 -46
  451. package/dist/plugins/media/empty.svelte.js +67 -60
  452. package/dist/plugins/media/media.d.ts +97 -44
  453. package/dist/plugins/media/media.js +77 -99
  454. package/dist/plugins/media/upload.css +23 -0
  455. package/dist/plugins/media/urlPaste.svelte.d.ts +6 -37
  456. package/dist/plugins/media/urlPaste.svelte.js +32 -102
  457. package/dist/plugins/mention/MentionPlugin.svelte +84 -126
  458. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +17 -27
  459. package/dist/plugins/mention/mention.css +6 -0
  460. package/dist/plugins/page/PageLink.svelte +54 -38
  461. package/dist/plugins/page/PagePlugin.svelte +20 -18
  462. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  463. package/dist/plugins/page/page.d.ts +35 -9
  464. package/dist/plugins/page/page.js +3 -4
  465. package/dist/plugins/pageLink/PageLinkPlugin.svelte +154 -109
  466. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +19 -26
  467. package/dist/plugins/pageLink/pageLink.css +6 -0
  468. package/dist/plugins/planned.d.ts +10 -0
  469. package/dist/plugins/planned.js +12 -0
  470. package/dist/plugins/richtext/CalloutIcon.svelte +13 -26
  471. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  472. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  473. package/dist/plugins/richtext/EmptyBody.svelte +13 -20
  474. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  475. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  476. package/dist/plugins/richtext/RichTextPlugin.svelte +174 -183
  477. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +34 -34
  478. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  479. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  480. package/dist/plugins/richtext/body.js +2 -2
  481. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +50 -55
  482. package/dist/plugins/richtext/calloutIcons.svelte.js +86 -174
  483. package/dist/plugins/richtext/callouts.d.ts +15 -0
  484. package/dist/plugins/richtext/callouts.js +23 -0
  485. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  486. package/dist/plugins/richtext/controls.svelte.js +126 -0
  487. package/dist/plugins/richtext/richTextOperations.js +37 -28
  488. package/dist/plugins/richtext/richtext.css +6 -0
  489. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +2 -14
  490. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +34 -71
  491. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +9 -26
  492. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  493. package/dist/plugins/suggestions/SuggestionBars.svelte +27 -84
  494. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  495. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -18
  496. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  497. package/dist/plugins/table/TableChrome.svelte +40 -124
  498. package/dist/plugins/table/TablePlugin.svelte +106 -168
  499. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  500. package/dist/plugins/table/chrome.svelte.d.ts +38 -141
  501. package/dist/plugins/table/chrome.svelte.js +340 -589
  502. package/dist/plugins/table/ops.d.ts +47 -0
  503. package/dist/plugins/table/ops.js +233 -0
  504. package/dist/plugins/table/table.css +16 -152
  505. package/dist/plugins/table/table.d.ts +15 -14
  506. package/dist/plugins/table/table.js +22 -16
  507. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  508. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  509. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  510. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  511. package/dist/plugins/toc/toc.d.ts +41 -10
  512. package/dist/plugins/toc/toc.js +2 -3
  513. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +4 -68
  514. package/dist/plugins/toolbar/ToolbarController.svelte.js +63 -89
  515. package/dist/plugins/toolbar/toolbarPlugin.d.ts +8 -18
  516. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  517. package/dist/plugins/triggers/TriggerController.svelte.d.ts +4 -68
  518. package/dist/plugins/triggers/TriggerController.svelte.js +48 -129
  519. package/dist/plugins/triggers/place.d.ts +0 -9
  520. package/dist/plugins/triggers/place.js +1 -17
  521. package/dist/plugins/triggers/triggers.d.ts +31 -9
  522. package/dist/plugins/triggers/triggers.js +82 -62
  523. package/dist/plugins/uploads.svelte.d.ts +55 -24
  524. package/dist/plugins/uploads.svelte.js +123 -50
  525. package/dist/plugins.d.ts +187 -66
  526. package/dist/selection/domSelection.d.ts +13 -4
  527. package/dist/selection/domSelection.js +110 -183
  528. package/dist/selection/pointer.svelte.d.ts +8 -10
  529. package/dist/selection/pointer.svelte.js +32 -73
  530. package/dist/selection/replaceSelection.d.ts +21 -22
  531. package/dist/selection/replaceSelection.js +60 -69
  532. package/dist/selection/selection.svelte.d.ts +5 -73
  533. package/dist/selection/selection.svelte.js +224 -542
  534. package/dist/selection/selection.utils.d.ts +34 -11
  535. package/dist/selection/selection.utils.js +128 -247
  536. package/dist/selection/visibility.d.ts +3 -8
  537. package/dist/selection/visibility.js +7 -5
  538. package/dist/session/announcer.svelte.d.ts +2 -1
  539. package/dist/session/announcer.svelte.js +7 -3
  540. package/dist/session/attempt.d.ts +43 -39
  541. package/dist/session/attempt.js +62 -55
  542. package/dist/session/bindings.js +117 -145
  543. package/dist/session/commands.d.ts +47 -22
  544. package/dist/session/commands.js +208 -208
  545. package/dist/session/composition.svelte.d.ts +2 -4
  546. package/dist/session/composition.svelte.js +55 -65
  547. package/dist/session/editing/text.d.ts +6 -0
  548. package/dist/session/editing/text.js +17 -3
  549. package/dist/session/handles.d.ts +10 -1
  550. package/dist/session/handles.js +28 -0
  551. package/dist/session/history.d.ts +0 -4
  552. package/dist/session/history.js +16 -21
  553. package/dist/session/inputRules.d.ts +6 -3
  554. package/dist/session/inputRules.js +78 -83
  555. package/dist/session/keymap.d.ts +1 -6
  556. package/dist/session/keymap.js +17 -20
  557. package/dist/session/moves.d.ts +43 -10
  558. package/dist/session/moves.js +101 -59
  559. package/dist/session/navigation.d.ts +10 -2
  560. package/dist/session/navigation.js +140 -172
  561. package/dist/session/ports.d.ts +2 -7
  562. package/dist/session/props.d.ts +25 -25
  563. package/dist/session/props.js +62 -159
  564. package/dist/session/selection.d.ts +4 -3
  565. package/dist/session/selection.js +5 -0
  566. package/dist/session/suggestions.svelte.d.ts +1 -1
  567. package/dist/session/suggestions.svelte.js +42 -47
  568. package/dist/session/uploads.d.ts +29 -0
  569. package/dist/session/uploads.js +10 -0
  570. package/dist/session/virtual.d.ts +3 -3
  571. package/dist/session/virtual.js +18 -40
  572. package/dist/surface/attributes.d.ts +1 -0
  573. package/dist/surface/attributes.js +3 -26
  574. package/dist/surface/cells.d.ts +5 -0
  575. package/dist/surface/cells.js +5 -0
  576. package/dist/surface/lines.d.ts +2 -2
  577. package/dist/surface/lines.js +1 -1
  578. package/dist/surface/observer.svelte.d.ts +3 -20
  579. package/dist/surface/observer.svelte.js +52 -72
  580. package/dist/surface/overlay.d.ts +41 -3
  581. package/dist/surface/overlay.js +92 -37
  582. package/dist/surface/pin.svelte.d.ts +5 -0
  583. package/dist/surface/pin.svelte.js +5 -0
  584. package/dist/surface/projector.svelte.d.ts +4 -6
  585. package/dist/surface/projector.svelte.js +42 -69
  586. package/dist/text/text.svelte.d.ts +14 -40
  587. package/dist/text/text.svelte.js +35 -51
  588. package/dist/text/wordBoundary.d.ts +19 -0
  589. package/dist/text/wordBoundary.js +29 -44
  590. package/dist/themes/notion.css +272 -106
  591. package/dist/utils/json.d.ts +3 -1
  592. package/dist/utils/json.js +52 -51
  593. package/dist/utils/listen.d.ts +8 -0
  594. package/dist/utils/listen.js +19 -0
  595. package/package.json +4 -5
  596. package/dist/block/block.utils.d.ts +0 -340
  597. package/dist/block/block.utils.js +0 -356
  598. package/dist/collaboration/history/HistoryPanel.svelte +0 -554
  599. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  600. package/dist/collaboration/history/panel.d.ts +0 -61
  601. package/dist/collaboration/history/panel.js +0 -3
  602. package/dist/components/SuggestionRanges.svelte +0 -58
  603. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  604. package/dist/crdt/doc/table.d.ts +0 -21
  605. package/dist/crdt/doc/table.js +0 -288
  606. package/dist/crdt/migration/generation.d.ts +0 -58
  607. package/dist/crdt/migration/generation.js +0 -70
  608. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  609. package/dist/crdt/migration/legacy-schema.js +0 -151
  610. package/dist/crdt/migration/migrate.d.ts +0 -56
  611. package/dist/crdt/migration/migrate.js +0 -227
  612. package/dist/crdt/nodes.d.ts +0 -121
  613. package/dist/crdt/nodes.js +0 -56
  614. package/dist/crdt/text/index/checks.d.ts +0 -15
  615. package/dist/crdt/text/index/checks.js +0 -156
  616. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  617. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  618. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  619. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  620. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  621. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  622. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  623. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  624. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  625. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  626. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  627. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  628. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  629. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  630. package/dist/edytor.utils.d.ts +0 -50
  631. package/dist/edytor.utils.js +0 -67
  632. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -335
  633. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  634. package/dist/plugins/find/FindBar.svelte +0 -170
  635. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  636. package/dist/plugins/find/FindHighlights.svelte +0 -75
  637. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  638. package/dist/plugins/icons.d.ts +0 -2
  639. package/dist/plugins/icons.js +0 -63
  640. package/dist/plugins/image/ImageEmpty.svelte +0 -93
  641. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -15
  642. package/dist/plugins/image/empty.svelte.d.ts +0 -56
  643. package/dist/plugins/image/empty.svelte.js +0 -83
  644. package/dist/plugins/keepInView.d.ts +0 -4
  645. package/dist/plugins/keepInView.js +0 -6
  646. package/dist/plugins/media/UrlPasteMenu.svelte +0 -92
  647. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -9
  648. package/dist/plugins/richtext/CalloutIconMenu.svelte +0 -98
  649. package/dist/plugins/richtext/CalloutIconMenu.svelte.d.ts +0 -9
  650. package/dist/plugins/richtext/labels.d.ts +0 -9
  651. package/dist/plugins/richtext/labels.js +0 -7
  652. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -276
  653. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  654. package/dist/plugins/table/dragPreview.d.ts +0 -29
  655. package/dist/plugins/table/dragPreview.js +0 -103
  656. package/dist/plugins/toolbar/LinkCard.svelte +0 -122
  657. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -9
  658. package/dist/plugins/toolbar/Toolbar.svelte +0 -349
  659. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  660. package/dist/plugins/triggers/TriggerMenu.svelte +0 -135
  661. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  662. package/dist/text/deltas.d.ts +0 -22
  663. package/dist/text/deltas.js +0 -46
  664. package/dist/text/text.utils.d.ts +0 -45
  665. package/dist/text/text.utils.js +0 -199
  666. /package/dist/{plugins/columns → dnd}/stacking.d.ts +0 -0
  667. /package/dist/{plugins/columns → dnd}/stacking.js +0 -0
@@ -1,22 +1,6 @@
1
1
  import { REGISTRY_KEY } from '../placement/model.js';
2
2
  import { BLOCK_ATTR_ROOT, isNodeLike, LAST_CHANGED_ATTR, NONCE, REC_PREFIX } from '../schema.js';
3
- import { attrItems, newNode as makeNode, onTransaction } from '../structs.js';
4
- /**
5
- * The ring's retention bound — the deepest `lineage.depth` any surviving
6
- * entry's writer was configured with. `POSITIVE_INFINITY` when ANY entry
7
- * lacks `d` (pre-watermark data): without knowing every writer's bound,
8
- * no entry may be evicted on their behalf.
9
- */
10
- export const lineageWatermarkOf = (entries) => {
11
- let wm = 0;
12
- for (const e of entries) {
13
- if (typeof e.d !== 'number' || !Number.isFinite(e.d))
14
- return Number.POSITIVE_INFINITY;
15
- if (e.d > wm)
16
- wm = e.d;
17
- }
18
- return wm;
19
- };
3
+ import { attrItems, newNode as makeNode } from '../structs.js';
20
4
  // `BLOCK_ATTR_ROOT`/`LAST_CHANGED_ATTR`/`REC_PREFIX` live in the shared
21
5
  // `../schema.js` leaf — re-exported so existing import sites stay.
22
6
  export { BLOCK_ATTR_ROOT, LAST_CHANGED_ATTR };
@@ -82,15 +66,6 @@ export const blockAttributionOf = (doc, id) => {
82
66
  lastChangedBy: typeof l === 'string' ? l : undefined
83
67
  };
84
68
  };
85
- /**
86
- * Read one block's lineage ring, oldest → newest — or `undefined` when
87
- * the block carries no record. Entries are the stored content values;
88
- * callers deep-copy before exposing them publicly.
89
- */
90
- export const lineageOf = (doc, id) => {
91
- const rec = recordOf(doc, id);
92
- return rec === null ? undefined : rec.toArray();
93
- };
94
69
  /**
95
70
  * Bound write helpers. `stampChange`/`stampCreated`/`unionContributors`
96
71
  * must be called INSIDE the operation's `doc.transact` — they perform
@@ -205,124 +180,6 @@ export const bindBlockAttribution = (Y) => {
205
180
  const into = ensureRecord(doc, intoId, blockNodeOf(doc, intoId));
206
181
  for (const a of contributorsOfRecord(from))
207
182
  addContributor(into, a);
208
- },
209
- /**
210
- * Append a displaced-state checkpoint to the block's ring and trim
211
- * to the ring's watermark — `max` of surviving entries' `d`,
212
- * including the fresh one. The caller captures `entry.j` BEFORE its
213
- * model write (see `lineagePending` in `edytor-doc.ts`) and calls
214
- * this only after the write proves out, so a refused write appends
215
- * nothing. The watermark is THE retention policy — identical on
216
- * append, on receive (`attachRingTrim`), and on read — so a shallow
217
- * replica never evicts a deeper writer's surviving history, and the
218
- * bound shrinks only once the deepest entries have themselves
219
- * aged out. Concurrent appends under partition can still merge a
220
- * ring past the watermark — neither side saw the other's entry —
221
- * which the receive-side repair converges back.
222
- */
223
- appendLineage: (doc, id, entry, depth) => {
224
- const rec = ensureRecord(doc, id);
225
- rec.insert(rec.length, [{ ...entry, s: rec.length, d: depth }]);
226
- const wm = lineageWatermarkOf(rec.toArray());
227
- if (rec.length > wm)
228
- rec.delete(0, rec.length - wm);
229
- },
230
- /**
231
- * The block's lineage ring, oldest → newest — or `undefined` when
232
- * the block has no record at all. Entries are the stored content
233
- * values; the public surface copies them before handing them out.
234
- */
235
- lineageOf,
236
- /**
237
- * Attach the doc's shared ring-watermark repair — once per doc for
238
- * the doc's lifetime (module-level dedupe). See the module-level comment
239
- * below.
240
- */
241
- attachRingTrim: (doc) => {
242
- if (ringTrimAttached.has(doc))
243
- return;
244
- ringTrimAttached.set(doc, true);
245
- const trimToWatermark = (rec) => {
246
- const wm = lineageWatermarkOf(rec.toArray());
247
- if (rec.length > wm)
248
- rec.delete(0, rec.length - wm);
249
- };
250
- onTransaction(doc, 'afterTransaction', (transaction) => {
251
- try {
252
- const changed = transaction?.changed;
253
- if (changed === undefined)
254
- return;
255
- let over;
256
- for (const type of changed.keys()) {
257
- const rec = type;
258
- if (rec?.name === REC_NODE &&
259
- rec.length > lineageWatermarkOf(rec.toArray())) {
260
- (over ??= []).push(rec);
261
- }
262
- }
263
- if (over === undefined)
264
- return;
265
- // A follow-up transaction in the same cleanup sweep — the
266
- // trim deletes exactly the items the next append would
267
- // evict, so concurrent trims (each replica runs this on
268
- // the same merged state) delete the SAME items and stay
269
- // convergent. The watermark never goes below a surviving
270
- // entry's own configured depth.
271
- doc.transact(() => {
272
- for (const rec of over)
273
- trimToWatermark(rec);
274
- }, LINEAGE_TRIM_ORIGIN);
275
- }
276
- catch (err) {
277
- // A failure here must never propagate — throwing inside
278
- // `afterTransaction` would break the host transaction's
279
- // cleanup sweep. An untrimmed ring still converges.
280
- console.error('[edytor-doc] lineage ring trim failed; leaving over-cap state', err);
281
- }
282
- });
283
- // Install-time sweep: a doc that arrived over-cap BEFORE this
284
- // listener existed — `loadDocument`/`attachDocument` integrate
285
- // the payload before the facade composes — never fires the
286
- // hook above for that data. One O(records) pass converges it.
287
- try {
288
- const root = doc.get(BLOCK_ATTR_ROOT);
289
- let over;
290
- for (const key of root.attrKeys()) {
291
- if (!key.startsWith(REC_PREFIX))
292
- continue;
293
- const rec = root.getAttr(key);
294
- if (isNodeLike(rec) &&
295
- rec.name === REC_NODE &&
296
- rec.length > lineageWatermarkOf(rec.toArray())) {
297
- (over ??= []).push(rec);
298
- }
299
- }
300
- if (over !== undefined) {
301
- doc.transact(() => {
302
- for (const rec of over)
303
- trimToWatermark(rec);
304
- }, LINEAGE_TRIM_ORIGIN);
305
- }
306
- }
307
- catch (err) {
308
- console.error('[edytor-doc] lineage ring sweep failed; leaving over-cap state', err);
309
- }
310
183
  }
311
184
  };
312
185
  };
313
- /**
314
- * Per-doc attach table for the shared ring-trim listener — module level
315
- * (not binding- or facade-scoped) so the listener is installed ONCE per
316
- * doc across every binding's facade `create()`, and never detached: a
317
- * ring pushed over its watermark by concurrent appends is converged even
318
- * after the last facade disposes. The `WeakMap` entry and the doc-held
319
- * listener die with the doc — no leak.
320
- */
321
- const ringTrimAttached = new WeakMap();
322
- /**
323
- * Origin of the ring-trim's delete writes — an origin no UndoManager
324
- * tracks, so trims never enter an undo stack and never recurse (the trim
325
- * only deletes ring items: the follow-up `afterTransaction` pass finds
326
- * the ring at exactly the watermark and stops).
327
- */
328
- const LINEAGE_TRIM_ORIGIN = Symbol('edytor.lineage-trim');
@@ -21,15 +21,11 @@
21
21
  * Read rule: the leaves are read as a tree; a path with live items is an
22
22
  * array (sorted by rank, then id), one with keys an object (it beats a
23
23
  * primitive leaf at the same path: Ada sets `a = 1` while Bob sets
24
- * `a.b = 2`), else its leaf. The legacy whole `data` attr (documents
25
- * written before 0.1.0-next.6) is a base each leaf shadows at, above and
26
- * under its path; an array leaf with values (next.6's atomic arrays, and
27
- * every array of the attr) reads as items with ids and ranks derived from
28
- * the array (as any array assigned where no item is), so two replicas
29
- * exploding it write the same items. A patch
30
- * writes its leaves over the attr while it still reads right, else deletes
31
- * it and writes every leaf (residual: a peer's concurrent set of a key it
32
- * held, or its removal of an item, may then lose to the exploded value).
24
+ * `a.b = 2`), else its leaf. A leaf holding an object or an array (an
25
+ * atomic path's, `data.atomic`, or an array 0.1.0-next.6 wrote) reads as
26
+ * its keys or as items with ids and ranks derived from the array (as any
27
+ * array assigned where no item is), so two replicas writing into it write
28
+ * the same items; a patch opens it only along its path.
33
29
  */
34
30
  import type { EngineNode } from './engine-api.js';
35
31
  type JsonObj = Record<string, unknown>;
@@ -77,16 +73,25 @@ export declare const readData: (node: EngineNode) => JsonObj | undefined;
77
73
  * in `node`'s data, in order; `[]` where no array is.
78
74
  */
79
75
  export declare const itemIds: (node: EngineNode, path: readonly string[]) => string[];
76
+ /**
77
+ * `node`'s data as it reads once `patches` are applied (nothing written),
78
+ * with the ids of the array items at a path (`itemIds`): an item a patch
79
+ * makes has no id yet (`''`), so a later patch names it by index.
80
+ * `null` when a patch fits no value.
81
+ */
82
+ export declare const previewData: (node: EngineNode | undefined, patches: readonly DataPatch[]) => {
83
+ data: JsonObj;
84
+ ids: (path: readonly string[]) => string[];
85
+ } | null;
80
86
  /** `data` with `patches` applied in order, as a fresh value (a root patch replaces it); `null` when one fits no value. */
81
87
  export declare const applyPatch: (data: JsonObj, patches: readonly DataPatch[]) => JsonObj | null;
82
88
  /**
83
89
  * The attr writes that give `node` the data `patches` make of its own (new
84
90
  * items get ids from `rand`, ranks from `client`), or `null` when a patch
85
91
  * fits no value there: only the leaves of the keys and items a patch
86
- * touches change, so a concurrent edit of another key or item is kept. A
87
- * legacy base (the attr, an atomic array leaf) stays under the leaves while
88
- * they still read as the patched value, else it is exploded: every leaf
89
- * written, the attr deleted. An unchanged value writes nothing.
92
+ * touches change, so a concurrent edit of another key or item is kept. An
93
+ * atomic path is written as one leaf and the leaves under it are deleted.
94
+ * An unchanged value writes nothing.
90
95
  */
91
96
  export declare const patchWrites: (node: EngineNode, patches: readonly DataPatch[], client?: number, rand?: () => number, atomic?: readonly string[]) => LeafWrite[] | null;
92
97
  /** Write `writes` on `node` (a detached one too: a block or atom being created). */
package/dist/crdt/data.js CHANGED
@@ -1,4 +1,4 @@
1
- import { DATA, DATA_LEAF_PREFIX } from './schema.js';
1
+ import { DATA_LEAF_PREFIX } from './schema.js';
2
2
  import { rankAfter } from './placement/rank.js';
3
3
  import { hash32 } from './rand.js';
4
4
  import { jsonEquals } from '../utils/json.js';
@@ -33,8 +33,21 @@ const itemsOf = (t) => {
33
33
  const isArr = (t) => Array.isArray(t.v) || itemsOf(t).length > 0;
34
34
  /** The item `seg` names among `items`: by its id (`~…`) or by its index. */
35
35
  const itemAt = (items, seg) => itemish(seg) ? items.find((i) => i.id === seg) : items[index(seg)];
36
- /** The JSON `t` reads as (`undefined` for nothing). */
36
+ /** Whether `t` holds a non-empty object or array as one leaf (no subtree under it). */
37
+ const closed = (t) => t.k.size === 0 && t.v !== null && typeof t.v === 'object' && Object.keys(t.v).length > 0;
38
+ /** `t` with a container leaf's value as its subtree: its keys, or derived items. */
39
+ const open = (t) => {
40
+ if (closed(t)) {
41
+ const value = t.v;
42
+ t.v = undefined;
43
+ derived.assign(t, value);
44
+ }
45
+ return t;
46
+ };
47
+ /** The JSON `t` reads as (`undefined` for nothing): a fresh value. */
37
48
  const valueOf = (t) => {
49
+ if (closed(t))
50
+ return valueOf(open(tree(t.v)));
38
51
  const items = itemsOf(t);
39
52
  if (items.length)
40
53
  return items.map(({ id }) => valueOf(t.k.get(id) ?? tree()) ?? null);
@@ -176,7 +189,7 @@ const edits = (rand, client = 0) => {
176
189
  };
177
190
  /** Make `t` read as `value`, writing only what differs: objects key by key, arrays item by item. */
178
191
  const assign = (t, value) => {
179
- if (Array.isArray(value) && itemsOf(t).length)
192
+ if (Array.isArray(value) && itemsOf(open(t)).length)
180
193
  return arrange(t, value);
181
194
  // Anything else replaces what `t` held, but an object's equal keys.
182
195
  const object = isObject(value) && Object.keys(value).length > 0;
@@ -228,7 +241,7 @@ const edits = (rand, client = 0) => {
228
241
  for (const k of path) {
229
242
  if (!t)
230
243
  return t;
231
- if (isArr(t)) {
244
+ if (isArr(open(t))) {
232
245
  const item = itemAt(itemsOf(t), k);
233
246
  t = item && kid(t, item.id);
234
247
  }
@@ -239,7 +252,7 @@ const edits = (rand, client = 0) => {
239
252
  t = kid(t, enc(segmentKey(k)));
240
253
  }
241
254
  }
242
- return t;
255
+ return t && open(t);
243
256
  };
244
257
  /** Apply `patch` to `root`; `false` when it fits no value there. */
245
258
  const apply = (root, { path, value, splice, order }) => {
@@ -314,41 +327,6 @@ const leavesOfValue = (value, prefix = DATA_LEAF_PREFIX) => {
314
327
  };
315
328
  /** A new node's data, as leaves. */
316
329
  export const dataLeaves = (data) => leavesOfValue(isObject(data) ? data : {});
317
- /**
318
- * `leaves` over the bases they shadow (each leaf at, above and under its
319
- * path): the legacy attr, and each array leaf with values (as items).
320
- */
321
- const effective = (base, leaves) => {
322
- /** `key` and the paths above it longer than `floor`. */
323
- const above = (key, floor = 0) => {
324
- const out = [];
325
- for (let i = key.length; i > floor; i = key.lastIndexOf('/', i - 1))
326
- out.push(key.slice(0, i));
327
- return out;
328
- };
329
- const near = new Set([...leaves.keys()].flatMap((key) => above(key)));
330
- const out = new Map();
331
- const under = (prefix, value) => {
332
- for (const [key, v] of leavesOfValue(value, prefix))
333
- if (!near.has(key) && !above(key, prefix.length - 1).some((p) => leaves.has(p)))
334
- out.set(key, v);
335
- };
336
- if (isObject(base))
337
- under(DATA_LEAF_PREFIX, base);
338
- for (const [key, v] of leaves) {
339
- out.set(key, v);
340
- if (Array.isArray(v) && v.length) {
341
- under(`${key}/`, v);
342
- out.set(key, []);
343
- }
344
- else if (isObject(v) && Object.keys(v).length) {
345
- // An object written as one leaf (an atomic path, `data.atomic`) reads as its keys.
346
- under(`${key}/`, v);
347
- out.set(key, {});
348
- }
349
- }
350
- return out;
351
- };
352
330
  /** A path of the data as a leaf key (`d/` and its pointer). */
353
331
  export const leafKey = (path) => DATA_LEAF_PREFIX + path.map((k) => enc(k)).join('/');
354
332
  /**
@@ -370,23 +348,40 @@ const collapse = (leaves, atomic) => {
370
348
  }
371
349
  return leavesFrom(root);
372
350
  };
373
- const read = (base, leaves) => valueOf(treeOf(effective(base, leaves)));
374
351
  /** `node`'s data (`undefined` when it has none). */
375
- export const readData = (node) => read(node.getAttr(DATA), leavesOf(node));
352
+ export const readData = (node) => valueOf(treeOf(leavesOf(node)));
376
353
  /**
377
354
  * The ids of the items of the array at `path` (keys, item indexes or ids)
378
355
  * in `node`'s data, in order; `[]` where no array is.
379
356
  */
380
- export const itemIds = (node, path) => {
381
- let t = treeOf(effective(node.getAttr(DATA), leavesOf(node)));
357
+ export const itemIds = (node, path) => idsAt(treeOf(leavesOf(node)), path);
358
+ const idsAt = (root, path) => {
359
+ let t = root;
382
360
  for (const k of path)
383
- if (t && isArr(t)) {
361
+ if (t && isArr(open(t))) {
384
362
  const item = itemAt(itemsOf(t), k);
385
363
  t = item && t.k.get(item.id);
386
364
  }
387
365
  else
388
366
  t = itemish(k) ? undefined : t?.k.get(enc(segmentKey(k)));
389
- return t ? itemsOf(t).map(({ id }) => id) : [];
367
+ return t ? itemsOf(open(t)).map(({ id }) => id) : [];
368
+ };
369
+ /**
370
+ * `node`'s data as it reads once `patches` are applied (nothing written),
371
+ * with the ids of the array items at a path (`itemIds`): an item a patch
372
+ * makes has no id yet (`''`), so a later patch names it by index.
373
+ * `null` when a patch fits no value.
374
+ */
375
+ export const previewData = (node, patches) => {
376
+ const base = node ? leavesOf(node) : new Map();
377
+ const root = treeOf(base);
378
+ if (!patches.every((p) => edits().apply(root, p)))
379
+ return null;
380
+ const known = new Set([...base.keys()].flatMap((key) => key.split('/')));
381
+ return {
382
+ data: valueOf(root) ?? {},
383
+ ids: (path) => idsAt(root, path).map((id) => (known.has(`${id}#`) ? id : ''))
384
+ };
390
385
  };
391
386
  /** `data` with `patches` applied in order, as a fresh value (a root patch replaces it); `null` when one fits no value. */
392
387
  export const applyPatch = (data, patches) => {
@@ -399,40 +394,23 @@ export const applyPatch = (data, patches) => {
399
394
  * The attr writes that give `node` the data `patches` make of its own (new
400
395
  * items get ids from `rand`, ranks from `client`), or `null` when a patch
401
396
  * fits no value there: only the leaves of the keys and items a patch
402
- * touches change, so a concurrent edit of another key or item is kept. A
403
- * legacy base (the attr, an atomic array leaf) stays under the leaves while
404
- * they still read as the patched value, else it is exploded: every leaf
405
- * written, the attr deleted. An unchanged value writes nothing.
397
+ * touches change, so a concurrent edit of another key or item is kept. An
398
+ * atomic path is written as one leaf and the leaves under it are deleted.
399
+ * An unchanged value writes nothing.
406
400
  */
407
401
  export const patchWrites = (node, patches, client = 0, rand, atomic = []) => {
408
- const [base, now] = [node.getAttr(DATA), leavesOf(node)];
409
- const was = effective(base, now);
410
- const root = treeOf(was);
402
+ const now = leavesOf(node);
403
+ const root = treeOf(now);
411
404
  const before = valueOf(root);
412
405
  const { apply } = edits(rand, client);
413
406
  if (!patches.every((p) => apply(root, p)))
414
407
  return null;
415
- const value = valueOf(root);
416
- if (jsonEquals(before, value))
408
+ if (jsonEquals(before, valueOf(root)))
417
409
  return [];
418
- // An atomic path is written as one leaf, and every leaf stored under it goes.
419
410
  const want = collapse(leavesFrom(root), atomic);
420
- const under = (key) => atomic.some((a) => key.startsWith(`${a}/`));
421
- const diff = (from) => [...new Set([...from.keys(), ...want.keys()])]
422
- .filter((key) => !jsonEquals(from.get(key), want.get(key)))
411
+ return [...new Set([...now.keys(), ...want.keys()])]
412
+ .filter((key) => !jsonEquals(now.get(key), want.get(key)))
423
413
  .map((key) => [key, want.get(key)]);
424
- const own = [
425
- ...diff(collapse(was, atomic)),
426
- ...[...now.keys()]
427
- .filter((key) => under(key) && !want.has(key))
428
- .map((key) => [key, undefined])
429
- ];
430
- const after = new Map(now);
431
- for (const [key, value] of own)
432
- value === undefined ? after.delete(key) : after.set(key, value);
433
- if (jsonEquals(read(base, after), value))
434
- return own;
435
- return [...(base === undefined ? [] : [[DATA, undefined]]), ...diff(now)];
436
414
  };
437
415
  /** Write `writes` on `node` (a detached one too: a block or atom being created). */
438
416
  export const writeLeaves = (node, writes) => {
@@ -4,11 +4,11 @@
4
4
  * resolved to the block that displays it now (`resolveAnchor`).
5
5
  */
6
6
  import { isLiveIn } from '../placement/model.js';
7
- import { DEAD, displayOf, locate, ownedLength } from '../text/model.js';
7
+ import { anchorAt as textAnchorAt, DEAD, displayOf, locate, ownedLength, resolveAnchor as textResolveAnchor } from '../text/model.js';
8
8
  import { followRedone } from '../structs.js';
9
9
  /** The anchors of one facade. */
10
10
  export const docAnchors = (c) => {
11
- const { Y, doc, T, view } = c;
11
+ const { Y, doc, view } = c;
12
12
  // ── anchors ─────────────────────────────────────────────────
13
13
  // An anchor is the home text id plus a relative position; the stream
14
14
  // containing the position says which block displays it. Both reads use
@@ -31,7 +31,7 @@ export const docAnchors = (c) => {
31
31
  const hit = locate(segs, Math.max(0, Math.min(offset, ownedLength(segs))), affinity);
32
32
  if (hit === null)
33
33
  return { b: blockId, a: { i: null, a: assoc } };
34
- return { b: hit.seg.t, a: T.anchorAt(hit.seg.text, hit.idx, assoc) };
34
+ return { b: hit.seg.t, a: textAnchorAt(hit.seg.text, hit.idx, assoc) };
35
35
  };
36
36
  /**
37
37
  * `anchor` rebound to the copy this replica's last undo/redo
@@ -64,7 +64,7 @@ export const docAnchors = (c) => {
64
64
  ? { blockId: anchor.b, offset: 0 }
65
65
  : null;
66
66
  }
67
- const i = T.resolveAnchor(doc, text, anchor.a);
67
+ const i = textResolveAnchor(doc, text, anchor.a);
68
68
  if (i === null)
69
69
  return null;
70
70
  const s = own.streamAt(anchor.b, i);
@@ -1,12 +1,16 @@
1
1
  import type { BlockId, InlineSpec } from '../placement/model.js';
2
2
  import type { Prepared } from './types.js';
3
3
  import type { OpsContext } from './steps.js';
4
+ /** An inline atom to insert: its id is minted when it names none. */
5
+ export type NewInline = Omit<InlineSpec, 'id'> & {
6
+ id?: string;
7
+ };
4
8
  /** The content ops of one facade, prepared. */
5
9
  export declare const contentOps: (c: OpsContext) => {
6
10
  insertText: (id: BlockId, offset: number, text: string, marks?: Record<string, unknown>) => Prepared;
7
11
  deleteText: (id: BlockId, offset: number, length: number) => Prepared;
8
12
  formatRange: (id: BlockId, offset: number, length: number, marks: Record<string, unknown>) => Prepared;
9
13
  clearMarks: (id: BlockId, offset: number, length: number) => Prepared;
10
- insertInline: (id: BlockId, offset: number, atom: InlineSpec) => Prepared;
14
+ insertInline: (id: BlockId, offset: number, atom: NewInline) => Prepared;
11
15
  removeInline: (id: BlockId, inlineId: string) => Prepared;
12
16
  };
@@ -3,6 +3,7 @@
3
3
  * inside voids — the caption contract), and marks over a range.
4
4
  */
5
5
  import { sanitizeWireJson, jsonEquals } from '../../utils/json.js';
6
+ import { id as newId } from '../../utils.js';
6
7
  import { ref, sanitizeInline } from './plan.js';
7
8
  /** The content ops of one facade, prepared. */
8
9
  export const contentOps = (c) => {
@@ -50,9 +51,10 @@ export const contentOps = (c) => {
50
51
  }
51
52
  return formatRange(id, offset, length, clears);
52
53
  };
54
+ /** An atom without an id gets a fresh one. */
53
55
  const insertInline = (id, offset, atom) => {
54
56
  id = ref(id);
55
- const clean = sanitizeInline(atom);
57
+ const clean = sanitizeInline({ ...atom, id: atom.id ?? newId('i') });
56
58
  if (!contentTarget(id))
57
59
  return REFUSED;
58
60
  return plan([id], [{ op: 'insertInline', id, offset: clamp(id, offset, 0)[0], atom: clean }]);
@@ -12,3 +12,4 @@ export declare const deleteOps: (c: OpsContext) => {
12
12
  keepChildren?: boolean;
13
13
  }) => Prepared;
14
14
  };
15
+ export type DeleteOps = ReturnType<typeof deleteOps>;
@@ -1,13 +1,4 @@
1
- /**
2
- * The write funnel: every facade write goes through `write` (disposal and the
3
- * document's writable guard), and every prepared plan through `apply` — one
4
- * transaction, its result read from what the transaction wrote, and the
5
- * frame's one attribution and lineage pass.
6
- */
7
- import type { BlockId } from '../placement/model.js';
8
1
  import type { BlockAttributionApi } from '../attribution/block.js';
9
- import type { AttributionActor } from '../attribution/index.js';
10
- import type { JSONBlock } from '../../utils/json.js';
11
2
  import type { EdytorDocConfig, OpResult, Prepared } from './types.js';
12
3
  import type { DocBase, DocReads } from './reads.js';
13
4
  /**
@@ -20,12 +11,6 @@ import type { DocBase, DocReads } from './reads.js';
20
11
  export declare class EdytorDocDisposedError extends Error {
21
12
  constructor(service?: string);
22
13
  }
23
- /**
24
- * The lineage ring depth, validated — `NaN`/`Infinity`/fractional/negative
25
- * values would silently disable the ring's trim bound. The one check every
26
- * entry path (facade creation, document attach and reattach) runs.
27
- */
28
- export declare const lineageDepthOf: (depth: number | undefined) => number;
29
14
  /** What the write funnel writes with: the reads, the attribution writer and the facade's configuration. */
30
15
  export type FunnelContext = DocBase & DocReads & {
31
16
  BA: BlockAttributionApi;
@@ -35,14 +20,6 @@ export type FunnelContext = DocBase & DocReads & {
35
20
  export declare const writeFunnel: (c: FunnelContext) => {
36
21
  write: <R>(fn: () => R) => R;
37
22
  apply: (p: Prepared) => OpResult;
38
- actorOf: () => AttributionActor | undefined;
39
- lineageDepth: number;
40
- lineagePending: (id: BlockId, force?: boolean) => {
41
- a?: string;
42
- by: string;
43
- t: number;
44
- j: JSONBlock;
45
- } | undefined;
46
23
  /** Disposal is terminal for writes. */
47
24
  dispose: () => void;
48
25
  disposed: () => boolean;