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
@@ -13,6 +13,15 @@ import type { JSONBlock, JSONText } from '../utils/json.js';
13
13
  * the same.
14
14
  */
15
15
  export declare const unlistedRank: (column: string) => number;
16
+ /**
17
+ * The column each entry of a table's `data.columns` names (`null`: none),
18
+ * or `null` when the table lists no columns: its cells then show in their
19
+ * own order (`table.columns`). A column is its first entry
20
+ * ({@link listedColumns}).
21
+ */
22
+ export declare const columnIds: (data: unknown) => (string | null)[] | null;
23
+ /** The columns a table lists, in order, each once ({@link columnIds}); `null` when none. */
24
+ export declare const listedColumns: (data: unknown) => string[] | null;
16
25
  /** The unlisted columns `ids` in their shown order ({@link unlistedRank}). */
17
26
  export declare const unlistedOrder: (ids: Iterable<string>) => string[];
18
27
  /** What {@link tableBlock} builds. */
@@ -7,6 +7,26 @@ import { hash32 } from './rand.js';
7
7
  * the same.
8
8
  */
9
9
  export const unlistedRank = (column) => hash32(column);
10
+ /**
11
+ * The column each entry of a table's `data.columns` names (`null`: none),
12
+ * or `null` when the table lists no columns: its cells then show in their
13
+ * own order (`table.columns`). A column is its first entry
14
+ * ({@link listedColumns}).
15
+ */
16
+ export const columnIds = (data) => {
17
+ const columns = data?.columns;
18
+ return Array.isArray(columns)
19
+ ? columns.map((c) => {
20
+ const id = c?.id;
21
+ return typeof id === 'string' ? id : null;
22
+ })
23
+ : null;
24
+ };
25
+ /** The columns a table lists, in order, each once ({@link columnIds}); `null` when none. */
26
+ export const listedColumns = (data) => {
27
+ const ids = columnIds(data);
28
+ return ids && [...new Set(ids)].filter((id) => id !== null);
29
+ };
10
30
  /** The unlisted columns `ids` in their shown order ({@link unlistedRank}). */
11
31
  export const unlistedOrder = (ids) => [...new Set(ids)].sort((a, b) => unlistedRank(a) - unlistedRank(b) || (a < b ? -1 : a > b ? 1 : 0));
12
32
  /**
@@ -108,20 +108,7 @@ export declare const deleteIndex: (Y: EngineApi) => {
108
108
  liveRoots: (s: State, m: Member) => Span[];
109
109
  shown: (s: State, roots: readonly Span[]) => Span[];
110
110
  indexOf: (s: State, c: number, k: number) => number;
111
- order: (s: State, a: {
112
- c: number;
113
- k: number;
114
- }, b: {
115
- c: number;
116
- k: number;
117
- }) => number;
118
111
  leaves: (s: State, r: Span) => Member[];
119
- alive: (s: State, r: Rec) => boolean;
120
- heldOf: (s: State, c: number) => {
121
- k: number;
122
- n: number;
123
- mark: Rec;
124
- }[];
125
112
  holders: (s: State, r: Span, skip?: (mark: Rec) => boolean) => Rec[];
126
113
  minus: (r: Span, done: readonly Span[]) => Span[];
127
114
  parts: (s: State, r: Span) => Span[];
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import * as decoding from 'lib0-v14/decoding';
8
8
  import * as encoding from 'lib0-v14/encoding';
9
- import { asYDoc, clientsOf, collectable, collectNow, collects, engineOps, structAt, walkIdSetStructs } from '../structs.js';
9
+ import { asYDoc, clientsOf, collectable, collectNow, collects, engineOps, structAt, walkIdSet } from '../structs.js';
10
10
  export const overlaps = (a, b) => a.k < b.k + b.n && b.k < a.k + a.n;
11
11
  export const push = (map, key, v) => {
12
12
  const list = map.get(key);
@@ -96,12 +96,8 @@ export const deleteIndex = (Y) => {
96
96
  /** The live parts of member `m`, in root coordinates. */
97
97
  const liveRoots = (s, m) => {
98
98
  const out = [];
99
- walkIdSetStructs(Y, s.doc, idSet([m]), (st) => {
100
- if (st.deleted)
101
- return;
102
- const lo = Math.max(m.k, st.id.clock);
103
- const hi = Math.min(m.k + m.n, st.id.clock + st.length);
104
- if (hi > lo)
99
+ walkIdSet(Y, s.doc, idSet([m]), (st, lo, hi) => {
100
+ if (!st.deleted && hi > lo)
105
101
  out.push({ c: m.c, k: m.rk + lo - m.k, n: hi - lo });
106
102
  });
107
103
  return out;
@@ -109,7 +105,7 @@ export const deleteIndex = (Y) => {
109
105
  /** The live ids showing root spans `roots`. */
110
106
  const shown = (s, roots) => roots.flatMap((r) => members(s, r).flatMap((m) => liveRoots(s, m).map((p) => clip(m, p.k, p.k + p.n))));
111
107
  /** The live index of id `c:k` in its text (YATA order: the same on every replica). */
112
- const indexOf = (s, c, k) => Y.createAbsolutePositionFromRelativePosition(Y.createRelativePositionFromJSON({ item: { client: c, clock: k }, assoc: 0 }), asYDoc(s.doc), false)?.index ?? Infinity;
108
+ const indexOf = (s, c, k) => Y.indexOfId(asYDoc(s.doc), Y.createID(c, k))?.index ?? Infinity;
113
109
  /**
114
110
  * List order of ids `a` and `b` of one text (negative: `a` first): their
115
111
  * live indices, and where no live unit separates them, the walk from one
@@ -287,7 +283,7 @@ export const deleteIndex = (Y) => {
287
283
  if (!tr.changed.has(s.marks) && !tr.changed.has(s.restored))
288
284
  return fresh;
289
285
  const inserted = [];
290
- walkIdSetStructs(Y, s.doc, tr.insertSet, (st) => {
286
+ walkIdSet(Y, s.doc, tr.insertSet, (st) => {
291
287
  if (st.parent === s.restored || st.parent === s.marks)
292
288
  inserted.push(st);
293
289
  });
@@ -301,7 +297,7 @@ export const deleteIndex = (Y) => {
301
297
  if (indexMark(s, r, bytes))
302
298
  fresh.marks.push(r);
303
299
  const dropped = [];
304
- walkIdSetStructs(Y, s.doc, tr.deleteSet, (st) => {
300
+ walkIdSet(Y, s.doc, tr.deleteSet, (st) => {
305
301
  if (st.parent === s.marks)
306
302
  for (const [r] of recordsIn(st, tr.deleteSet))
307
303
  dropped.push(r);
@@ -333,7 +329,7 @@ export const deleteIndex = (Y) => {
333
329
  const collect = (s, tr, copies) => {
334
330
  if (!collects(s.doc) || copies.length === 0)
335
331
  return;
336
- walkIdSetStructs(Y, s.doc, idSet(copies), (st) => {
332
+ walkIdSet(Y, s.doc, idSet(copies), (st) => {
337
333
  const it = st;
338
334
  const inside = copies.some((e) => e.c === it.id.client && e.k <= it.id.clock && it.id.clock + it.length <= e.k + e.n);
339
335
  if (inside &&
@@ -352,10 +348,7 @@ export const deleteIndex = (Y) => {
352
348
  liveRoots,
353
349
  shown,
354
350
  indexOf,
355
- order,
356
351
  leaves,
357
- alive,
358
- heldOf,
359
352
  holders,
360
353
  minus,
361
354
  parts,
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Per-writer text delete marks — the block delete marks' rule applied to text (fork patch YP11).
2
+ * Per-writer text delete marks — the block delete marks' rule applied to text.
3
3
  *
4
- * Deleting text tombstones its engine items, and the engine's undo brings
4
+ * Deleting text tombstones its engine items, and an undo brings
5
5
  * text back as COPIES (new items). The engine records no writer for a
6
6
  * delete, so two writers who deleted the same character concurrently could
7
7
  * not tell each other's delete from their own: one undo brought it back
@@ -21,8 +21,8 @@
21
21
  * text keeps its order whoever restores it. Every decision is made by the
22
22
  * replica whose fact it is, never on another replica's stale state:
23
23
  *
24
- * - restoring (the undoing history): the engine hands every text unit of a
25
- * popped step to `restoreFilter`, which withholds it, and `onApply`
24
+ * - restoring (the undoing history): the history hands every text unit of a
25
+ * replayed step to `restoreFilter`, which withholds it, and `onApply`
26
26
  * restores each character of the step no other live mark holds and no
27
27
  * copy shows, once. A character another mark holds stays PENDING on that
28
28
  * history, which restores it once no mark holds it and no copy shows (two
@@ -48,6 +48,7 @@
48
48
  * writes the marks, restores, holds and deduplicates.
49
49
  */
50
50
  import type { EngineApi, EngineDoc, EngineNode, YUndoManager } from '../engine-api.js';
51
+ import { type State, type Step, type Tr } from './delete-index.js';
51
52
  /** Engine ids `c:k … c:k+n-1`. */
52
53
  export type Span = {
53
54
  c: number;
@@ -62,24 +63,10 @@ export declare const bindDeletes: (Y: EngineApi) => {
62
63
  * transaction) as this writer's, and hide their other visible copies.
63
64
  */
64
65
  markDeleted: (doc: EngineDoc, deleted: readonly Span[]) => void;
65
- /**
66
- * Whether every live mark holding a character of `spans` was written
67
- * where `old` says (a withdrawn block's content was deleted
68
- * before the horizon). Characters no mark holds count as old.
69
- */
70
- heldBefore: (doc: EngineDoc, spans: readonly Span[], old: (client: number, clock: number) => boolean) => boolean;
71
- /**
72
- * The purge's part (`room.purge.what`), inside the purge
73
- * transaction: delete every text delete mark record `old` names, and
74
- * every restoration record `old` names whose copies are all deleted
75
- * and that no remaining mark holds; its copies are forgotten (the
76
- * `gcFilter` no longer keeps them) and collected. Writes no mark.
77
- */
78
- purge: (doc: EngineDoc, old: (client: number, clock: number) => boolean) => {
79
- marks: number;
80
- records: number;
81
- };
82
- /** The `restoreFilter` and `onApply` options of a history on `doc` (fork patch YP11). */
66
+ /** A doc's index of marks and copies, and the delete the purge writes (`purge.ts`). */
67
+ state: (doc: EngineDoc) => State;
68
+ remove: (tr: Tr, live: readonly Span[], into?: Step, keep?: boolean) => void;
69
+ /** The restore and apply rules of a history on `doc` (`doc/history.ts`). */
83
70
  history: (doc: EngineDoc, um: () => YUndoManager) => {
84
71
  /** Text units are restored by `onApply`, character by character. */
85
72
  restoreFilter: (item: unknown) => boolean;
@@ -1,10 +1,10 @@
1
1
  import { CONTENT_NODE, HORIZON_ROOT, INLINE_NODE, RESTORED_ROOT, TEXT_DELETES_ROOT } from '../schema.js';
2
- import { attrItems, clientsOf, dropSearchMarkers, engineOps, firstItem, keepFromCollection, nextClock, onTransaction, stepsOf, structAt, walkIdSetStructs } from '../structs.js';
2
+ import { attrItems, clientsOf, dropSearchMarkers, engineOps, firstItem, keepFromCollection, nextClock, onTransaction, stepsOf, structAt, walkIdSet } from '../structs.js';
3
3
  import { clip, decode, deleteIndex, encode, FOLD_SPANS, keyOf, mergeSpans, overlaps } from './delete-index.js';
4
4
  const REACT = Symbol('edytor.text-deletes');
5
5
  const states = new WeakMap();
6
6
  export const bindDeletes = (Y) => {
7
- const { idSet, each, rootSpans, members, liveRoots, shown, indexOf, leaves, holders, minus, parts, addCopies, indexRecord, indexMark, dropMarks, recordsIn, sync, copiesOf, forget, collect } = deleteIndex(Y);
7
+ const { idSet, each, rootSpans, members, liveRoots, shown, indexOf, leaves, holders, minus, parts, addCopies, indexRecord, indexMark, recordsIn, sync } = deleteIndex(Y);
8
8
  const ops = engineOps(Y);
9
9
  const attach = (doc) => {
10
10
  let s = states.get(doc);
@@ -75,7 +75,7 @@ export const bindDeletes = (Y) => {
75
75
  // A leaf has no copy: a local `redone` link left by an earlier
76
76
  // restoration points at a copy this lineage no longer shows.
77
77
  it.redone = null;
78
- const copy = ops.redo(tr, it, new Set([it]), p.um());
78
+ const copy = ops.redo(tr, it, new Set([it]));
79
79
  if (copy === null)
80
80
  continue;
81
81
  dropSearchMarkers(copy.parent);
@@ -85,7 +85,7 @@ export const bindDeletes = (Y) => {
85
85
  if (attrs !== undefined) {
86
86
  const kids = [...attrs.values()].filter((c) => c.deleted);
87
87
  for (const kid of kids)
88
- ops.redo(tr, kid, new Set(kids), p.um());
88
+ ops.redo(tr, kid, new Set(kids));
89
89
  }
90
90
  const e = {
91
91
  c: copy.id.client,
@@ -252,14 +252,9 @@ export const bindDeletes = (Y) => {
252
252
  /** The text units `ids` names, as spans. */
253
253
  const unitsIn = (s, ids) => {
254
254
  const out = [];
255
- ids.clients.forEach((ranges, c) => {
256
- for (const r of ranges.getIds())
257
- walkIdSetStructs(Y, s.doc, idSet([{ c, k: r.clock, n: r.len }]), (st) => {
258
- const lo = Math.max(r.clock, st.id.clock);
259
- const hi = Math.min(r.clock + r.len, st.id.clock + st.length);
260
- if (hi > lo && isUnit(st))
261
- out.push({ c, k: lo, n: hi - lo });
262
- });
255
+ walkIdSet(Y, s.doc, ids, (st, lo, hi) => {
256
+ if (hi > lo && isUnit(st))
257
+ out.push({ c: st.id.client, k: lo, n: hi - lo });
263
258
  });
264
259
  return out;
265
260
  };
@@ -320,68 +315,10 @@ export const bindDeletes = (Y) => {
320
315
  if (tr !== null)
321
316
  remove(tr, shown(s, spans.flatMap((sp) => rootSpans(s, sp))));
322
317
  },
323
- /**
324
- * Whether every live mark holding a character of `spans` was written
325
- * where `old` says (a withdrawn block's content was deleted
326
- * before the horizon). Characters no mark holds count as old.
327
- */
328
- heldBefore: (doc, spans, old) => {
329
- const s = attach(doc);
330
- return spans
331
- .flatMap((sp) => rootSpans(s, sp))
332
- .every((r) => holders(s, r).every((mark) => old(mark.client, mark.clock)));
333
- },
334
- /**
335
- * The purge's part (`room.purge.what`), inside the purge
336
- * transaction: delete every text delete mark record `old` names, and
337
- * every restoration record `old` names whose copies are all deleted
338
- * and that no remaining mark holds; its copies are forgotten (the
339
- * `gcFilter` no longer keeps them) and collected. Writes no mark.
340
- */
341
- purge: (doc, old) => {
342
- const s = attach(doc);
343
- const tr = s.doc._transaction;
344
- if (tr === null)
345
- throw new Error('purge: outside a transaction');
346
- const spans = [];
347
- const dropped = [];
348
- for (let it = firstItem(s.marks); it; it = it.right)
349
- if (!it.deleted)
350
- for (let j = 0; j < it.length; j++) {
351
- const r = { client: it.id.client, clock: it.id.clock + j };
352
- if (!old(r.client, r.clock))
353
- continue;
354
- dropped.push(r);
355
- const last = spans[spans.length - 1];
356
- if (last !== undefined && last.c === r.client && last.k + last.n === r.clock)
357
- last.n++;
358
- else
359
- spans.push({ c: r.client, k: r.clock, n: 1 });
360
- }
361
- dropMarks(s, dropped);
362
- const marks = dropped.length;
363
- remove(tr, spans);
364
- const doomed = [];
365
- attrItems(s.restored).forEach((it, key) => {
366
- if (it.deleted || !old(it.id.client, it.id.clock))
367
- return;
368
- const [record, bytes] = recordsIn(it, null)[0] ?? [];
369
- if (bytes === undefined)
370
- return;
371
- const copies = copiesOf(record, bytes);
372
- const dead = copies.every((e) => liveRoots(s, { c: e.c, k: e.k, n: e.n, rk: e.k }).length === 0 &&
373
- holders(s, { c: e.rc, k: e.rk, n: e.n }).length === 0);
374
- if (dead)
375
- doomed.push({ key, copies });
376
- });
377
- for (const { key, copies } of doomed) {
378
- s.restored.deleteAttr(key);
379
- forget(s, copies);
380
- collect(s, tr, copies);
381
- }
382
- return { marks, records: doomed.length };
383
- },
384
- /** The `restoreFilter` and `onApply` options of a history on `doc` (fork patch YP11). */
318
+ /** A doc's index of marks and copies, and the delete the purge writes (`purge.ts`). */
319
+ state: attach,
320
+ remove,
321
+ /** The restore and apply rules of a history on `doc` (`doc/history.ts`). */
385
322
  history: (doc, um) => {
386
323
  const s = attach(doc);
387
324
  const p = { um, watch: [], tr: null, units: [] };
@@ -3,11 +3,11 @@
3
3
  * when a fold invalidates it, sharing unchanged runs and interned payloads.
4
4
  */
5
5
  import { cloneJsonSafe } from '../../../utils/json.js';
6
- import { canonKey, deepFreeze, displayOf } from '../model.js';
6
+ import { canonKey, deepFreeze, displayOf, readSegs } from '../model.js';
7
7
  import { runEquals } from './shared.js';
8
8
  /** The run cache of one doc's index. */
9
9
  export const indexCache = (ix) => {
10
- const { T, blocks, textConsumers, listConsumers, cache, dirty, foldStats, frames, ownShim } = ix;
10
+ const { blocks, textConsumers, listConsumers, cache, dirty, foldStats, frames, ownShim } = ix;
11
11
  const rangeStats = { items: 0, markers: 0 };
12
12
  // ── run cache ────────────────────────────────────────────────────
13
13
  const internMap = new Map();
@@ -97,7 +97,7 @@ export const indexCache = (ix) => {
97
97
  deps.lists.add(c.m);
98
98
  }) ?? [];
99
99
  const fresh = [];
100
- for (const item of T.readSegs(segs, rangeStats)) {
100
+ for (const item of readSegs(segs, rangeStats)) {
101
101
  if (item.kind === 'text') {
102
102
  const last = fresh[fresh.length - 1];
103
103
  const marks = item.marks === undefined ? undefined : intern(item.marks);
@@ -1,4 +1,3 @@
1
- import type { EngineDeepEvent } from '../../engine-api.js';
2
1
  import { type BlockId } from '../../placement/model.js';
3
2
  import type { ContentRun } from '../runs.js';
4
3
  import type { IndexAnchored } from './anchored.js';
@@ -17,7 +16,7 @@ export declare const indexFold: (ix: IndexState & IndexClaims & IndexStreams & I
17
16
  openTx: () => Tx | null | undefined;
18
17
  syncAll: () => void;
19
18
  unfolded: () => boolean;
20
- onCommit: (e: EngineDeepEvent) => void;
19
+ onCommit: (tr: Tx) => void;
21
20
  committed: WeakSet<Tx>;
22
21
  };
23
22
  export type IndexFold = ReturnType<typeof indexFold>;
@@ -4,16 +4,17 @@
4
4
  * pending part of every transaction whose commit fold has not run.
5
5
  */
6
6
  import { readData } from '../../data.js';
7
+ import { Y } from '../../engine.js';
7
8
  import { LIVE_WRITERS, baseIdOf, incarnationId } from '../../incarnations.js';
8
9
  import { candidatesOf } from '../../placement/model.js';
9
10
  import { CONTENT, NONCE, hasDeleteMark, isNodeLike } from '../../schema.js';
10
- import { engineOps, itemOf, queuedTransactions, sequenceLength, walkIdSetRanges, walkIdSetStructs } from '../../structs.js';
11
+ import { changedUnder, engineOps, itemOf, queuedTransactions, sequenceLength, walkIdSet } from '../../structs.js';
11
12
  import { DEAD, isBoundary } from '../model.js';
12
13
  import { gapOfItem, headOf, rowLength, segmentOfGap, shiftGap } from '../rows.js';
13
- import { CONTENT_ATTR, EMPTY_RUNS, ENTRY_FACET, facetOf, indexChecks, sameShape, typeAttr } from './shared.js';
14
+ import { CONTENT_ATTR, EMPTY_RUNS, ENTRY_FACET, facetOf, checksOf, indexChecks, sameShape, typeAttr } from './shared.js';
14
15
  /** The fold of one doc's index, over every part it folds into. */
15
16
  export const indexFold = (ix) => {
16
- const { Y, doc, registry, dataRoot, blocks, shells, textConsumers, ownerSeeds, rows, retargets, unresolved, reclaim, placementSeeds, stateSeeds, incarnations, cache, dirty, foldStats, frames, candidates, ownerOf, invalidateBlock, streamOf, streamsIn, setRow, scanRow, refreshDelims, placeHome, applyRetargets, noteKind, argParent, noteCands, kept, updateBlockRec, ensureRec, syncIncarnations, computeRuns, tableFacts } = ix;
17
+ const { doc, registry, dataRoot, blocks, shells, textConsumers, ownerSeeds, rows, retargets, unresolved, reclaim, placementSeeds, stateSeeds, incarnations, cache, dirty, foldStats, frames, candidates, ownerOf, invalidateBlock, streamOf, streamsIn, setRow, scanRow, refreshDelims, placeHome, applyRetargets, noteKind, argParent, noteCands, kept, updateBlockRec, ensureRec, syncIncarnations, computeRuns, tableFacts } = ix;
17
18
  const ops = engineOps(Y);
18
19
  const NO_EDITS = Object.freeze({
19
20
  edits: [],
@@ -38,7 +39,7 @@ export const indexFold = (ix) => {
38
39
  if (ins === undefined || del === undefined)
39
40
  return (built = null);
40
41
  const out = new Map();
41
- const visit = (idSet, deleted) => walkIdSetRanges(Y, doc, idSet, (s, from, to) => {
42
+ const visit = (idSet, deleted) => walkIdSet(Y, doc, idSet, (s, from, to) => {
42
43
  const parent = s.parent;
43
44
  if (s.parentSub !== null || !isNodeLike(parent))
44
45
  return;
@@ -384,7 +385,7 @@ export const indexFold = (ix) => {
384
385
  for (const b of ctx.invalidated)
385
386
  dirty.add(b);
386
387
  if (indexChecks.on)
387
- ix.checks.check();
388
+ checksOf(ix).check();
388
389
  if (derived)
389
390
  ix.version++;
390
391
  if (ix.reporting) {
@@ -449,8 +450,8 @@ export const indexFold = (ix) => {
449
450
  changed.set(s.parent, (subs = new Set()));
450
451
  subs.add(s.parentSub);
451
452
  };
452
- walkIdSetStructs(Y, doc, ins, note);
453
- walkIdSetStructs(Y, doc, del, note);
453
+ walkIdSet(Y, doc, ins, note);
454
+ walkIdSet(Y, doc, del, note);
454
455
  fold(changed, makeEditIndex(ins, del));
455
456
  return true;
456
457
  };
@@ -473,9 +474,13 @@ export const indexFold = (ix) => {
473
474
  tr.insertSet !== undefined &&
474
475
  tr.deleteSet !== undefined &&
475
476
  lengthOf(tr.insertSet) + lengthOf(tr.deleteSet) !== (cursors.get(tr)?.mark ?? 0));
476
- /** The commit: fold `transaction.changed` once (the report publishes from `update`). */
477
- const onCommit = (e) => {
478
- const tr = e.transaction;
477
+ /**
478
+ * The commit of a transaction that changed the registry or a node under
479
+ * it: fold `transaction.changed` once (the report publishes from `update`).
480
+ */
481
+ const onCommit = (tr) => {
482
+ if (!changedUnder(tr, [registry]))
483
+ return;
479
484
  let [ins, del] = [tr.insertSet, tr.deleteSet];
480
485
  // The writes a read folded already moved the rows: only the rest
481
486
  // are edits now (the facets fold again, idempotent).
@@ -18,16 +18,6 @@ export declare const indexLayout: (ix: IndexState) => {
18
18
  cellRank: (row: BlockId, id: BlockId) => string | undefined;
19
19
  tableFacts: (b: BlockId, data: unknown) => string;
20
20
  declaredItems: () => Set<string>;
21
- dissolveVisit: (kids: Map<BlockId | null, ChildSlot[]>, out: Set<BlockId>, ids: readonly BlockId[], layout: boolean, ctx?: {
22
- table: BlockId;
23
- } | {
24
- row: BlockId;
25
- columns: Map<string, number> | null;
26
- seen: Set<string>;
27
- } | null) => {
28
- id: BlockId;
29
- kids: BlockId[];
30
- }[];
31
21
  dissolve: (kids: Map<BlockId | null, ChildSlot[]>) => Set<BlockId>;
32
22
  redissolve: (changed: Map<BlockId, [BlockId | null | undefined, BlockId | null | undefined]>, kinds: Iterable<BlockId>) => Set<BlockId>;
33
23
  };
@@ -1,5 +1,5 @@
1
1
  import { encodeRank, RANK_VMAX } from '../../placement/rank.js';
2
- import { unlistedRank } from '../../tables.js';
2
+ import { listedColumns, unlistedRank } from '../../tables.js';
3
3
  /** The layout rules of one doc's index, over its state. */
4
4
  export const indexLayout = (ix) => {
5
5
  const { blocks, kindsOf } = ix;
@@ -46,19 +46,10 @@ export const indexLayout = (ix) => {
46
46
  if (data === null || typeof data !== 'object')
47
47
  return null;
48
48
  let index = columnsMemo.get(data);
49
- if (index !== undefined)
50
- return index;
51
- const columns = data.columns;
52
- index = null;
53
- if (Array.isArray(columns)) {
54
- index = new Map();
55
- for (const c of columns) {
56
- const id = c?.id;
57
- if (typeof id === 'string' && !index.has(id))
58
- index.set(id, index.size);
59
- }
49
+ if (index === undefined) {
50
+ const ids = listedColumns(data);
51
+ columnsMemo.set(data, (index = ids && new Map(ids.map((id, i) => [id, i]))));
60
52
  }
61
- columnsMemo.set(data, index);
62
53
  return index;
63
54
  };
64
55
  /** The column a cell names (`data.column`), if any. */
@@ -75,12 +66,8 @@ export const indexLayout = (ix) => {
75
66
  const k = kindsOf.get(b);
76
67
  if (data === null || typeof data !== 'object')
77
68
  return '';
78
- if (k?.table) {
79
- const columns = data.columns;
80
- return Array.isArray(columns)
81
- ? JSON.stringify(columns.map((c) => c?.id ?? null))
82
- : '';
83
- }
69
+ if (k?.table)
70
+ return JSON.stringify(listedColumns(data));
84
71
  if (k?.cell) {
85
72
  const c = data.column;
86
73
  return typeof c === 'string' ? c : '';
@@ -281,7 +268,6 @@ export const indexLayout = (ix) => {
281
268
  cellRank,
282
269
  tableFacts,
283
270
  declaredItems,
284
- dissolveVisit,
285
271
  dissolve,
286
272
  redissolve
287
273
  };
@@ -4,6 +4,7 @@
4
4
  * the maintained facts must re-decide.
5
5
  */
6
6
  import { readData } from '../../data.js';
7
+ import { Y } from '../../engine.js';
7
8
  import { baseIdOf, incarnationNode, incarnationsOf, isIncarnationId } from '../../incarnations.js';
8
9
  import { candidatesOf } from '../../placement/model.js';
9
10
  import { engineOps } from '../../structs.js';
@@ -12,7 +13,7 @@ import { readClaims } from '../model.js';
12
13
  import { dropFrom, sameShape, typeAttr } from './shared.js';
13
14
  /** The block records of one doc's index. */
14
15
  export const indexRecords = (ix) => {
15
- const { Y, registry, blocks, shells, attachOf, foreignOf, retargets, reclaim, byArgParent, placementSeeds, stateSeeds, incarnations, noteClaims, effectiveClaims, noteKind, argParent, noteCands } = ix;
16
+ const { registry, blocks, shells, attachOf, foreignOf, retargets, reclaim, byArgParent, placementSeeds, stateSeeds, incarnations, noteClaims, effectiveClaims, noteKind, argParent, noteCands } = ix;
16
17
  // ── records ──────────────────────────────────────────────────────
17
18
  /** Fork patch YP14's predicate: the registry values the engine keeps. */
18
19
  const kept = engineOps(Y).isKeptReplaced;
@@ -5,16 +5,15 @@
5
5
  import { cloneJsonSafe, sameIds } from '../../../utils/json.js';
6
6
  import { readData } from '../../data.js';
7
7
  import { callEach } from '../../protocols/observable.js';
8
- import { protectItems } from '../model.js';
9
- import { EMPTY_IDS, dataOf, indexChecks, keyOf } from './shared.js';
8
+ import { EMPTY_IDS, checksOf, dataOf, indexChecks, keyOf } from './shared.js';
10
9
  /** The change report of one doc's index. */
11
10
  export const indexReporter = (ix) => {
12
- const { T, doc, dataRoot, blocks, following, dirtyLists, leftLists, candidates, ownShim, ensurePlacements, typeOf, intern, runs, syncAll } = ix;
11
+ const { doc, dataRoot, blocks, following, dirtyLists, leftLists, candidates, ensurePlacements, typeOf, runs, syncAll } = ix;
13
12
  const docData = () => cloneJsonSafe(readData(dataRoot) ?? {});
14
13
  let dataChanged = false;
15
14
  // ── projection ───────────────────────────────────────────────────
16
- /** `id`'s visible content items, canonical and frozen. */
17
- const itemsOf = (id) => protectItems(T.readSegs(ownShim.display(id) ?? []), intern);
15
+ /** `id`'s visible content items: its runs, as fresh wrappers over their shared payloads. */
16
+ const itemsOf = (id) => runs(id).map((r) => ({ ...r }));
18
17
  const projectBlock = (id) => {
19
18
  const rec = blocks.get(id);
20
19
  const projected = {
@@ -290,7 +289,7 @@ export const indexReporter = (ix) => {
290
289
  leftLists.clear();
291
290
  ix.allListsDirty = false;
292
291
  if (indexChecks.on)
293
- ix.checks.checkPublished(published);
292
+ checksOf(ix).checkPublished(published);
294
293
  const empty = r.added.size + r.removed.size + r.moved.size + r.meta.size + r.content.size + r.order.size;
295
294
  return empty === 0 && !r.data ? null : r;
296
295
  };
@@ -1,6 +1,7 @@
1
1
  import type { EngineNode } from '../../engine-api.js';
2
2
  import type { BlockId, BlockRec } from '../../placement/model.js';
3
3
  import type { ContentRun, DisplayRoles } from '../runs.js';
4
+ import type { SelfChecks } from './state.js';
4
5
  /**
5
6
  * The facet name of a block's registry entry itself (inserted or removed) —
6
7
  * every other facet is named by the block attr it entered through.
@@ -48,14 +49,20 @@ export type Cached = {
48
49
  */
49
50
  export declare const sameShape: (roles: DisplayRoles, a: string, b: string) => boolean;
50
51
  /**
51
- * Test lanes turn this on (`globalThis.__EDYTOR_INDEX_CHECKS__`, set before
52
- * the index loads): after every fold the index checks each fact it keeps
53
- * incrementally against a rebuild from the replicated state and throws on
54
- * the first difference. Off in production.
52
+ * The index's self-checks, off in production: a test lane's setup installs
53
+ * `of`, which builds an index's checker (on its first check), and turns them
54
+ * `on`. After every fold the index checks each fact it keeps incrementally
55
+ * against a rebuild from the replicated state and throws on the first
56
+ * difference; after every report, the published tree.
55
57
  */
56
58
  export declare const indexChecks: {
57
59
  on: boolean;
60
+ of?: (ix: never) => SelfChecks;
58
61
  };
62
+ /** `ix`'s checker ({@link indexChecks}), built on its first check. */
63
+ export declare const checksOf: (ix: {
64
+ checks: SelfChecks | null;
65
+ }) => SelfChecks;
59
66
  /** Add `value` to `key`'s set in `index`. */
60
67
  export declare const addTo: <K, V>(index: Map<K, Set<V>>, key: K, value: V) => void;
61
68
  /** Remove `value` from `key`'s set in `index` (the set goes once empty). */
@@ -74,14 +74,15 @@ export const sameShape = (roles, a, b) => {
74
74
  cells.has(a) === cells.has(b));
75
75
  };
76
76
  /**
77
- * Test lanes turn this on (`globalThis.__EDYTOR_INDEX_CHECKS__`, set before
78
- * the index loads): after every fold the index checks each fact it keeps
79
- * incrementally against a rebuild from the replicated state and throws on
80
- * the first difference. Off in production.
77
+ * The index's self-checks, off in production: a test lane's setup installs
78
+ * `of`, which builds an index's checker (on its first check), and turns them
79
+ * `on`. After every fold the index checks each fact it keeps incrementally
80
+ * against a rebuild from the replicated state and throws on the first
81
+ * difference; after every report, the published tree.
81
82
  */
82
- export const indexChecks = {
83
- on: globalThis.__EDYTOR_INDEX_CHECKS__ === true
84
- };
83
+ export const indexChecks = { on: false };
84
+ /** `ix`'s checker ({@link indexChecks}), built on its first check. */
85
+ export const checksOf = (ix) => (ix.checks ??= indexChecks.of(ix));
85
86
  /** Add `value` to `key`'s set in `index`. */
86
87
  export const addTo = (index, key, value) => {
87
88
  let set = index.get(key);