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
@@ -275,8 +275,6 @@
275
275
  height: 24px;
276
276
  border-radius: 6px;
277
277
  background: currentColor;
278
- -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.5 8.8h7a.5.5 0 0 1 .4.8l-3.5 4.7a.5.5 0 0 1-.8 0L8.1 9.6a.5.5 0 0 1 .4-.8z'/%3E%3C/svg%3E")
279
- center / 24px no-repeat;
280
278
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.5 8.8h7a.5.5 0 0 1 .4.8l-3.5 4.7a.5.5 0 0 1-.8 0L8.1 9.6a.5.5 0 0 1 .4-.8z'/%3E%3C/svg%3E")
281
279
  center / 24px no-repeat;
282
280
  transform: rotate(-90deg);
@@ -342,9 +340,16 @@
342
340
  .edytor-notion [data-edytor-callout-title] {
343
341
  font-weight: 600;
344
342
  }
345
- /* The icon button: a soft hover, as Notion's. */
343
+ /* The icon button reads as the icon, with a soft hover, as Notion's. */
346
344
  .edytor-notion button[data-edytor-callout-icon] {
345
+ padding: 0;
346
+ border: 0;
347
347
  border-radius: 4px;
348
+ background: transparent;
349
+ color: inherit;
350
+ font: inherit;
351
+ font-size: 18px;
352
+ cursor: pointer;
348
353
  transition: background-color 120ms ease-in;
349
354
  }
350
355
  .edytor-notion button[data-edytor-callout-icon]:hover,
@@ -377,6 +382,7 @@
377
382
  padding: 3px 2px;
378
383
  color: var(--notion-text-secondary);
379
384
  font-weight: 400;
385
+ cursor: pointer;
380
386
  }
381
387
  .edytor-notion [data-edytor-empty-body]:hover {
382
388
  border-radius: 4px;
@@ -412,62 +418,6 @@
412
418
  flex-direction: column;
413
419
  gap: 8px;
414
420
  }
415
- .edytor-notion [data-edytor-image-add],
416
- .edytor-notion [data-edytor-image-placeholder] {
417
- display: flex;
418
- align-items: center;
419
- gap: 10px;
420
- width: 100%;
421
- padding: 12px 36px 12px 12px;
422
- border-radius: 6px;
423
- background: rgba(33, 27, 23, 0.04);
424
- color: var(--notion-text-secondary);
425
- font: inherit;
426
- font-size: 14px;
427
- text-align: left;
428
- cursor: pointer;
429
- transition: background-color 80ms ease;
430
- }
431
- .edytor-notion [data-edytor-image-placeholder] {
432
- cursor: default;
433
- }
434
- .edytor-notion [data-edytor-image-add]:hover {
435
- background: rgba(33, 27, 23, 0.07);
436
- }
437
- .edytor-notion [data-edytor-image-form] {
438
- display: flex;
439
- flex-wrap: wrap;
440
- align-items: center;
441
- gap: 8px;
442
- }
443
- .edytor-notion [data-edytor-image-form] input:not([type='file']) {
444
- flex: 1;
445
- min-width: 200px;
446
- height: 32px;
447
- padding: 0 10px;
448
- border-radius: 6px;
449
- background: rgba(242, 241, 238, 0.6);
450
- box-shadow: inset 0 0 0 1px rgba(15, 15, 15, 0.1);
451
- font: inherit;
452
- font-size: 14px;
453
- outline: 0;
454
- }
455
- .edytor-notion [data-edytor-image-form] button,
456
- .edytor-notion [data-edytor-image-upload] {
457
- height: 32px;
458
- padding: 0 12px;
459
- border-radius: 6px;
460
- background: var(--notion-blue);
461
- color: #fff;
462
- font-size: 14px;
463
- font-weight: 500;
464
- line-height: 32px;
465
- cursor: pointer;
466
- }
467
- .edytor-notion [data-edytor-image-form] small {
468
- flex-basis: 100%;
469
- color: #cf5148;
470
- }
471
421
  .edytor-notion [data-edytor-type='image'] figcaption {
472
422
  padding: 6px 2px 2px;
473
423
  color: var(--notion-text-secondary);
@@ -498,8 +448,6 @@
498
448
  flex-direction: column;
499
449
  gap: 8px;
500
450
  }
501
- .edytor-notion [data-edytor-media-add],
502
- .edytor-notion [data-edytor-media-placeholder],
503
451
  .edytor-notion [data-edytor-embed-unsupported] a,
504
452
  .edytor-notion [data-edytor-file] a {
505
453
  display: flex;
@@ -525,48 +473,10 @@
525
473
  color: var(--notion-text-secondary);
526
474
  font-size: 12px;
527
475
  }
528
- .edytor-notion [data-edytor-media-placeholder] {
529
- cursor: default;
530
- }
531
- .edytor-notion [data-edytor-media-add]:hover,
532
476
  .edytor-notion [data-edytor-embed-unsupported] a:hover,
533
477
  .edytor-notion [data-edytor-file] a:hover {
534
478
  background: rgba(33, 27, 23, 0.07);
535
479
  }
536
- .edytor-notion [data-edytor-media-form] {
537
- display: flex;
538
- flex-wrap: wrap;
539
- align-items: center;
540
- gap: 8px;
541
- }
542
- .edytor-notion [data-edytor-media-form] input:not([type='file']) {
543
- flex: 1;
544
- min-width: 200px;
545
- height: 32px;
546
- padding: 0 10px;
547
- border-radius: 6px;
548
- background: rgba(242, 241, 238, 0.6);
549
- box-shadow: inset 0 0 0 1px rgba(15, 15, 15, 0.1);
550
- font: inherit;
551
- font-size: 14px;
552
- outline: 0;
553
- }
554
- .edytor-notion [data-edytor-media-form] button,
555
- .edytor-notion [data-edytor-media-upload] {
556
- height: 32px;
557
- padding: 0 12px;
558
- border-radius: 6px;
559
- background: var(--notion-blue);
560
- color: #fff;
561
- font-size: 14px;
562
- font-weight: 500;
563
- line-height: 32px;
564
- cursor: pointer;
565
- }
566
- .edytor-notion [data-edytor-media-form] small {
567
- flex-basis: 100%;
568
- color: #cf5148;
569
- }
570
480
  .edytor-notion [data-edytor-bookmark] a {
571
481
  display: flex;
572
482
  overflow: hidden;
@@ -641,17 +551,140 @@
641
551
  }
642
552
 
643
553
  /* ── Code ───────────────────────────────────────────────────────────── */
554
+ /* A warm gray panel with room at its top for the app's header (the
555
+ language's button, Copy), placed over it; `--edytor-code-background`
556
+ and `--edytor-code-color` set the panel and its text. */
644
557
  .edytor-notion [data-edytor-type='code'] {
558
+ position: relative;
645
559
  margin: 4px 0;
646
560
  padding: 34px 16px 32px 32px;
647
561
  border-radius: 10px;
648
- background: var(--notion-code-panel);
562
+ background: var(--edytor-code-background, var(--notion-code-panel));
563
+ color: var(--edytor-code-color, var(--notion-text));
564
+ }
565
+ .edytor-notion [data-edytor-code-header] {
566
+ position: absolute;
567
+ top: 6px;
568
+ left: 10px;
569
+ right: 8px;
570
+ display: flex;
571
+ align-items: center;
572
+ justify-content: space-between;
649
573
  }
650
574
  .edytor-notion [data-edytor-type='codeLine'] {
651
575
  margin: 0;
652
576
  padding: 0;
653
577
  border-radius: 0;
654
578
  }
579
+ .edytor-notion pre.th-code {
580
+ margin: 0;
581
+ color: inherit;
582
+ font-family: var(--notion-mono);
583
+ font-size: 85%;
584
+ line-height: 1.5;
585
+ text-align: left;
586
+ hyphens: none;
587
+ }
588
+ [data-edytor]:is(.edytor-notion, .edytor-notion *) pre.th-code code {
589
+ padding: 0;
590
+ background: none;
591
+ color: inherit;
592
+ font: inherit;
593
+ }
594
+ /* Notion's light syntax theme: Prism's palette, each colour darkened to a
595
+ 4.5:1 contrast on the panel (WCAG AA), over TanStack Highlight's classes. */
596
+ .edytor-notion :is(.th-comment, .th-meta) {
597
+ color: #63717f;
598
+ }
599
+ .edytor-notion :is(.th-keyword, .th-link) {
600
+ color: #0077aa;
601
+ }
602
+ .edytor-notion :is(.th-string, .th-attr, .th-selector, .th-inserted) {
603
+ color: #527a00;
604
+ }
605
+ .edytor-notion :is(.th-function, .th-type) {
606
+ color: #c2415c;
607
+ }
608
+ .edytor-notion :is(.th-number, .th-literal, .th-tag, .th-property, .th-deleted) {
609
+ color: #990055;
610
+ }
611
+ .edytor-notion .th-variable {
612
+ color: #9b6300;
613
+ }
614
+ .edytor-notion .th-operator {
615
+ color: #916737;
616
+ }
617
+
618
+ /* ── Equations ──────────────────────────────────────────────────────── */
619
+ .edytor-notion [data-edytor-equation] {
620
+ padding: 4px 0;
621
+ border-radius: 4px;
622
+ text-align: center;
623
+ cursor: pointer;
624
+ }
625
+ .edytor-notion [data-edytor-equation]:hover,
626
+ .edytor-notion [data-edytor-equation][data-editing='true'] {
627
+ background: rgba(55, 53, 47, 0.06);
628
+ }
629
+ .edytor-notion [data-edytor-inline-equation] {
630
+ border-radius: 3px;
631
+ cursor: pointer;
632
+ }
633
+ .edytor-notion [data-edytor-inline-equation]:is([data-editing='true'], [data-selected='true']) {
634
+ background: var(--notion-block-selection);
635
+ }
636
+ .edytor-notion [data-edytor-equation-placeholder] {
637
+ color: rgba(55, 53, 47, 0.5);
638
+ }
639
+ .edytor-notion [data-edytor-equation] [data-edytor-equation-placeholder] {
640
+ display: flex;
641
+ align-items: center;
642
+ gap: 8px;
643
+ padding: 8px 12px;
644
+ border-radius: 4px;
645
+ background: rgba(242, 241, 238, 0.6);
646
+ text-align: left;
647
+ }
648
+ .edytor-notion [data-edytor-equation-icon] {
649
+ margin-right: 4px;
650
+ font-style: italic;
651
+ }
652
+ .edytor-notion :is([data-edytor-equation-error], [data-edytor-equation-source]) {
653
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
654
+ font-size: 0.9em;
655
+ white-space: pre-wrap;
656
+ }
657
+ .edytor-notion [data-edytor-equation-error] {
658
+ color: #d44c47;
659
+ }
660
+
661
+ /* ── Tables: Notion's simple table ──────────────────────────────────── */
662
+ .edytor-notion [data-edytor-table] {
663
+ --edytor-table-border-color: var(--edytor-table-border, rgb(233, 233, 231));
664
+ padding-inline: 0;
665
+ }
666
+ .edytor-notion [data-edytor-table] [data-edytor-table-grid] {
667
+ border-top: 1px solid var(--edytor-table-border-color);
668
+ border-left: 1px solid var(--edytor-table-border-color);
669
+ }
670
+ .edytor-notion [data-edytor-table-row] {
671
+ margin: 0;
672
+ padding: 0;
673
+ border-radius: 0;
674
+ }
675
+ .edytor-notion :is([data-edytor-table-cell], [data-edytor-table-pad]) {
676
+ min-height: 33px;
677
+ margin: 0;
678
+ padding: 7px 9px;
679
+ border-radius: 0;
680
+ border-right: 1px solid var(--edytor-table-border-color);
681
+ border-bottom: 1px solid var(--edytor-table-border-color);
682
+ }
683
+ /* A header row's or header column's cells: Notion's gray, a little bolder. */
684
+ .edytor-notion [data-edytor-table-cell][data-edytor-table-header='true'] {
685
+ background: var(--edytor-table-header-background, rgb(247, 246, 243));
686
+ font-weight: 600;
687
+ }
655
688
 
656
689
  /* ── Marks ──────────────────────────────────────────────────────────── */
657
690
  [data-edytor]:is(.edytor-notion, .edytor-notion *) strong {
@@ -695,13 +728,31 @@
695
728
  background: var(--notion-page, #fff);
696
729
  }
697
730
 
698
- /* ── Columns: one highlight over a layout a block selection stands for ── */
731
+ /* ── Columns ────────────────────────────────────────────────────────── */
732
+ /* A layout and its columns reserve no inline space: a column's blocks start
733
+ at the column's edge (Notion's), its handles stand in the gap before it. */
734
+ .edytor-notion
735
+ :is(
736
+ [data-edytor-block][data-edytor-columns],
737
+ [data-edytor-block][data-edytor-column]:not([data-edytor-table-cell])
738
+ ) {
739
+ padding-inline: 0;
740
+ }
741
+ /* A column's first and last blocks sit flush with the layout's edges. */
742
+ .edytor-notion [data-edytor-column] > [data-edytor-children] > [data-edytor-block]:first-child {
743
+ margin-top: 0;
744
+ }
745
+ .edytor-notion [data-edytor-column] > [data-edytor-children] > [data-edytor-block]:last-child {
746
+ margin-bottom: 0;
747
+ }
748
+ /* One highlight over a layout a block selection stands for. */
699
749
  .edytor-notion [data-edytor-block][data-edytor-columns][data-edytor-selected] {
700
750
  background: transparent;
701
751
  }
702
752
  .edytor-notion
703
753
  [data-edytor-block][data-edytor-columns]
704
754
  > [data-edytor-children][data-edytor-columns-selected] {
755
+ border-radius: 4px;
705
756
  background: var(--notion-block-selection);
706
757
  }
707
758
  .edytor-notion
@@ -760,22 +811,27 @@
760
811
  .edytor-notion [data-edytor-type='page'] {
761
812
  margin: 1px 0;
762
813
  }
763
- .edytor-notion [data-edytor-page-link] {
814
+ .edytor-notion :where([data-edytor-page]) > [data-edytor-page-link] {
764
815
  display: flex;
765
816
  align-items: center;
766
817
  gap: 6px;
767
818
  width: 100%;
819
+ margin: 0;
768
820
  padding: 3px 2px;
821
+ border: 0;
769
822
  border-radius: 4px;
823
+ background: none;
770
824
  color: inherit;
825
+ font: inherit;
826
+ text-align: start;
771
827
  text-decoration: none;
772
828
  cursor: pointer;
773
829
  transition: background-color 20ms ease-in;
774
830
  }
775
- .edytor-notion [data-edytor-page-link]:hover {
831
+ .edytor-notion :where([data-edytor-page]) > [data-edytor-page-link]:hover {
776
832
  background: var(--notion-hover);
777
833
  }
778
- .edytor-notion [data-edytor-page-link]:disabled {
834
+ .edytor-notion :where([data-edytor-page]) > [data-edytor-page-link]:disabled {
779
835
  cursor: default;
780
836
  }
781
837
  .edytor-notion [data-edytor-page-icon] {
@@ -783,8 +839,6 @@
783
839
  width: 20px;
784
840
  height: 20px;
785
841
  background: var(--notion-text-secondary);
786
- -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.35' stroke-linejoin='round'%3E%3Cpath d='M11.5 2.5H6A1.5 1.5 0 0 0 4.5 4v12A1.5 1.5 0 0 0 6 17.5h8a1.5 1.5 0 0 0 1.5-1.5V6.5z'/%3E%3Cpath d='M11.5 2.5v4h4M7.5 10.5h5M7.5 13.5h5'/%3E%3C/svg%3E")
787
- center / 20px no-repeat;
788
842
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.35' stroke-linejoin='round'%3E%3Cpath d='M11.5 2.5H6A1.5 1.5 0 0 0 4.5 4v12A1.5 1.5 0 0 0 6 17.5h8a1.5 1.5 0 0 0 1.5-1.5V6.5z'/%3E%3Cpath d='M11.5 2.5v4h4M7.5 10.5h5M7.5 13.5h5'/%3E%3C/svg%3E")
789
843
  center / 20px no-repeat;
790
844
  }
@@ -802,6 +856,10 @@
802
856
  .edytor-notion [data-edytor-toc-entry] {
803
857
  display: block;
804
858
  width: 100%;
859
+ margin: 0;
860
+ border: 0;
861
+ background: none;
862
+ font: inherit;
805
863
  padding: 6px 2px;
806
864
  padding-inline-start: calc(2px + var(--edytor-toc-depth, 0) * var(--edytor-nest-indent));
807
865
  border-radius: 4px;
@@ -818,7 +876,115 @@
818
876
  color: var(--notion-placeholder);
819
877
  }
820
878
  .edytor-notion [data-edytor-toc-empty] {
879
+ margin: 0;
821
880
  padding: 3px 2px;
822
881
  color: var(--notion-text-secondary);
823
882
  font-size: 14px;
824
883
  }
884
+
885
+ /* ── Mentions and page links (atoms in a line) ──────────────────────── */
886
+ .edytor-notion .edytor-mention {
887
+ color: var(--notion-text-secondary);
888
+ font-weight: 500;
889
+ }
890
+ .edytor-notion .edytor-page-link .title {
891
+ border-bottom: 1px solid rgba(55, 53, 47, 0.25);
892
+ font-weight: 500;
893
+ }
894
+ .edytor-notion .edytor-page-link .icon {
895
+ margin-right: 2px;
896
+ }
897
+ .edytor-notion :is(.edytor-mention, .edytor-page-link)[data-selected='true'] {
898
+ border-radius: 3px;
899
+ background: var(--notion-block-selection);
900
+ }
901
+
902
+ /* ── Visual cues in the overlay ─────────────────────────────────────── */
903
+ /*
904
+ * The plugins place these and say when they show (`data-shown`,
905
+ * `data-dragging`, `:hover`); the look is here. The overlay is the editor's
906
+ * next sibling, so each rule reaches it whether the class is on an element
907
+ * around the editor or on the editor itself.
908
+ */
909
+ /* A block drag's drop line: Notion's plain 4px bar. */
910
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-drop-indicator] {
911
+ background: var(--edytor-drop-indicator-color, rgba(35, 131, 226, 0.43));
912
+ }
913
+ /* The nest backdrop: the future parent's own row, softly tinted, fading in and out.
914
+ * One plain colour: lightningcss rewrites light-dark() into variables it only
915
+ * defines beside a `color-scheme`, voiding the background. */
916
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-drop-backdrop] {
917
+ border-radius: 4px;
918
+ background: var(--edytor-drop-backdrop-color, rgba(35, 131, 226, 0.14));
919
+ opacity: 0;
920
+ transition:
921
+ opacity 120ms ease,
922
+ visibility 120ms ease;
923
+ }
924
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay])
925
+ [data-edytor-drop-backdrop][data-shown='true'] {
926
+ opacity: 1;
927
+ }
928
+ /* A table grip's drop line and a column band's guide: Notion's blue. */
929
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-table-drop] {
930
+ border-radius: 2px;
931
+ background: var(--edytor-table-drop-color, rgba(35, 131, 226, 0.43));
932
+ }
933
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-table-resize]::after {
934
+ background: var(--edytor-table-resize-color, rgba(35, 131, 226, 0.43));
935
+ }
936
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay])
937
+ [data-edytor-table-resize]:focus-visible {
938
+ outline: none;
939
+ }
940
+ /* A layout gap's band: a thin gray rule on hover, blue from the keyboard and while it drags. */
941
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-column-resize]::after {
942
+ background: var(--edytor-columns-resize-color, rgba(55, 53, 47, 0.16));
943
+ opacity: 0;
944
+ transition:
945
+ opacity 80ms ease,
946
+ visibility 80ms ease;
947
+ }
948
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay])
949
+ [data-edytor-column-resize]:hover:not([data-dragging='true'])::after {
950
+ opacity: 1;
951
+ }
952
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay])
953
+ [data-edytor-column-resize]:focus-visible {
954
+ outline: none;
955
+ }
956
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay])
957
+ [data-edytor-column-resize]:focus-visible::after {
958
+ opacity: 1;
959
+ background: var(--edytor-column-resize-color, rgba(35, 131, 226, 0.43));
960
+ }
961
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-column-resize-guide] {
962
+ background: var(--edytor-column-resize-color, rgba(35, 131, 226, 0.43));
963
+ }
964
+ /* An image's resize handles: Notion's dark pill with a light ring. */
965
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-image-resize]::after {
966
+ border-radius: 20px;
967
+ background: var(--edytor-image-handle-color, rgba(15, 15, 15, 0.6));
968
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.9);
969
+ opacity: 0.8;
970
+ }
971
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay])
972
+ :is([data-edytor-image-resize]:hover, [data-edytor-image-resize][data-dragging='true'])::after {
973
+ opacity: 1;
974
+ }
975
+ /* Other users: a caret, a tinted range and a name pill in each one's colour. */
976
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-remote-selection] {
977
+ background: var(--edytor-remote-color);
978
+ opacity: 0.18;
979
+ }
980
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-remote-cursor] {
981
+ border-radius: 999px;
982
+ background: var(--edytor-remote-color);
983
+ }
984
+ :is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-remote-cursor-label] {
985
+ padding: 1px 6px;
986
+ border-radius: 999px;
987
+ background: var(--edytor-remote-color);
988
+ color: white;
989
+ font: 500 11px/1.4 sans-serif;
990
+ }
@@ -111,11 +111,13 @@ export declare const jsonContentToItems: (content: (JSONText | JSONInlineBlock)[
111
111
  export declare const jsonBlockToSpec: (block: JSONBlock, freshIds?: boolean, mint?: (prefix: "b" | "i") => string) => BlockSpec;
112
112
  /**
113
113
  * A canonical `JSONBlock` (from `facade.toJSON()`/`blockJSON`, a template, an
114
- * import) as the `BlockSpec` `facade.insertBlock` takes: ids are kept, and
114
+ * import) as the `BlockSpec` `facade.insertBlocks` takes: ids are kept, and
115
115
  * minted where missing; `freshIds` mints every id (a duplicate).
116
116
  */
117
117
  export declare const toBlockSpec: (block: JSONBlock, { freshIds }?: {
118
118
  freshIds?: boolean | undefined;
119
119
  }) => BlockSpec;
120
+ /** A content item from JSON content (a text run, an atom) or a facade item, as it is. */
121
+ export declare const asContentItem: (part: ContentItem | JSONText | JSONInlineBlock) => ContentItem;
120
122
  /** A `BlockSpec`, or the `JSONBlock` shape as one (ids kept, minted where missing). */
121
123
  export declare const asBlockSpec: (block: BlockSpec | JSONBlock) => BlockSpec;
@@ -40,7 +40,7 @@
40
40
  *
41
41
  * {@link jsonContentToItems} / {@link jsonBlockToSpec} are the canonical
42
42
  * JSON → facade `ContentItem`/`BlockSpec` converters — the admission shape
43
- * `facade.insertBlock`/`DocBlock.set` consume (see `placement/model.ts`
43
+ * `facade.insertBlocks` consumes (see `placement/model.ts`
44
44
  * `insertOne`/`appendItems`). Content preparation builds specs DIRECTLY
45
45
  * from JSON — never through disposable live-wrapper trees. The spec types
46
46
  * are imported type-only, so this module keeps its zero-runtime-dependency
@@ -61,59 +61,58 @@ const JSON_COERCION = {
61
61
  Promise: 'coerces to {}',
62
62
  ArrayBuffer: 'coerces to {}'
63
63
  };
64
+ const reportedJsonBoundaryViolations = new Set();
64
65
  /**
65
- * Dev-only: collect one line per value that will not survive a JSON
66
- * round-trip. Capped so a hostile payload cannot flood the report.
66
+ * Dev-only violation report shared by {@link cloneJson} and
67
+ * {@link cloneJsonSafe}: one line per value that will not survive a JSON
68
+ * round-trip, capped so a hostile payload cannot flood the report. The
69
+ * walk is declared in here: a recursive module-level helper survives the
70
+ * production build's tree-shaking even when nothing calls it.
67
71
  */
68
- const collectJsonBoundaryViolations = (value, path, violations, seen) => {
69
- if (violations.length >= MAX_JSON_BOUNDARY_VIOLATIONS || value === null) {
70
- return;
71
- }
72
- const type = typeof value;
73
- if (type === 'string' || type === 'boolean') {
74
- return;
75
- }
76
- if (type === 'number') {
77
- if (!Number.isFinite(value)) {
78
- violations.push(`${path}: non-finite number coerces to null`);
79
- }
80
- return;
81
- }
82
- if (type === 'undefined') {
83
- violations.push(`${path}: undefined key is dropped (array slot → null)`);
84
- return;
85
- }
86
- if (type === 'function' || type === 'symbol' || type === 'bigint') {
87
- violations.push(`${path}: ${type} is not serializable`);
88
- return;
89
- }
90
- if (seen.has(value)) {
91
- violations.push(`${path}: circular reference throws at serialize time`);
92
- return;
93
- }
94
- if (Array.isArray(value)) {
95
- seen.add(value);
96
- value.forEach((item, index) => collectJsonBoundaryViolations(item, `${path}[${index}]`, violations, seen));
97
- seen.delete(value);
98
- return;
99
- }
100
- const proto = Object.getPrototypeOf(value);
101
- if (proto !== Object.prototype && proto !== null) {
102
- const name = value.constructor?.name ?? 'non-plain object';
103
- violations.push(`${path}: ${name} is not JSON — ${JSON_COERCION[name] ?? 'coerces to {}'}`);
104
- return;
105
- }
106
- seen.add(value);
107
- for (const [key, item] of Object.entries(value)) {
108
- collectJsonBoundaryViolations(item, `${path}.${key}`, violations, seen);
109
- }
110
- seen.delete(value);
111
- };
112
- const reportedJsonBoundaryViolations = new Set();
113
- /** Dev-only violation report shared by {@link cloneJson} and {@link cloneJsonSafe}. */
114
72
  const warnJsonBoundary = (fn, value) => {
115
73
  const violations = [];
116
- collectJsonBoundaryViolations(value, '$', violations, new Set());
74
+ const seen = new Set();
75
+ const collect = (item, path) => {
76
+ if (violations.length >= MAX_JSON_BOUNDARY_VIOLATIONS || item === null)
77
+ return;
78
+ const type = typeof item;
79
+ if (type === 'string' || type === 'boolean')
80
+ return;
81
+ if (type === 'number') {
82
+ if (!Number.isFinite(item))
83
+ violations.push(`${path}: non-finite number coerces to null`);
84
+ return;
85
+ }
86
+ if (type === 'undefined') {
87
+ violations.push(`${path}: undefined key is dropped (array slot → null)`);
88
+ return;
89
+ }
90
+ if (type === 'function' || type === 'symbol' || type === 'bigint') {
91
+ violations.push(`${path}: ${type} is not serializable`);
92
+ return;
93
+ }
94
+ if (seen.has(item)) {
95
+ violations.push(`${path}: circular reference throws at serialize time`);
96
+ return;
97
+ }
98
+ if (Array.isArray(item)) {
99
+ seen.add(item);
100
+ item.forEach((each, index) => collect(each, `${path}[${index}]`));
101
+ seen.delete(item);
102
+ return;
103
+ }
104
+ const proto = Object.getPrototypeOf(item);
105
+ if (proto !== Object.prototype && proto !== null) {
106
+ const name = item.constructor?.name ?? 'non-plain object';
107
+ violations.push(`${path}: ${name} is not JSON — ${JSON_COERCION[name] ?? 'coerces to {}'}`);
108
+ return;
109
+ }
110
+ seen.add(item);
111
+ for (const [key, each] of Object.entries(item))
112
+ collect(each, `${path}.${key}`);
113
+ seen.delete(item);
114
+ };
115
+ collect(value, '$');
117
116
  if (violations.length === 0)
118
117
  return;
119
118
  const report = violations.join('\n ');
@@ -363,7 +362,7 @@ export const jsonBlockToSpec = (block, freshIds = false, mint = id) => ({
363
362
  });
364
363
  /**
365
364
  * A canonical `JSONBlock` (from `facade.toJSON()`/`blockJSON`, a template, an
366
- * import) as the `BlockSpec` `facade.insertBlock` takes: ids are kept, and
365
+ * import) as the `BlockSpec` `facade.insertBlocks` takes: ids are kept, and
367
366
  * minted where missing; `freshIds` mints every id (a duplicate).
368
367
  */
369
368
  export const toBlockSpec = (block, { freshIds = false } = {}) => jsonBlockToSpec(block, freshIds);
@@ -373,6 +372,8 @@ export const toBlockSpec = (block, { freshIds = false } = {}) => jsonBlockToSpec
373
372
  */
374
373
  const isSpecNode = (block) => typeof block.id === 'string' &&
375
374
  (block.content ?? []).every((item) => typeof item === 'object' && item !== null && 'kind' in item);
375
+ /** A content item from JSON content (a text run, an atom) or a facade item, as it is. */
376
+ export const asContentItem = (part) => 'kind' in part ? part : jsonContentToItems([part])[0];
376
377
  /** A `BlockSpec`, or the `JSONBlock` shape as one (ids kept, minted where missing). */
377
378
  export const asBlockSpec = (block) => {
378
379
  if (!isSpecNode(block))
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Listen for each of the space-separated `types` on `target` (none when it
3
+ * is missing); answers the cleanup. The one way the chrome adds a listener
4
+ * it removes itself.
5
+ */
6
+ export declare const listen: <E extends Event>(target: EventTarget | null | undefined, types: string, listener: (event: E) => void, capture?: boolean) => () => void;
7
+ /** Run every cleanup of `offs` (a list of `listen` answers and other teardowns). */
8
+ export declare const all: (...offs: (() => unknown)[]) => () => void;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Listen for each of the space-separated `types` on `target` (none when it
3
+ * is missing); answers the cleanup. The one way the chrome adds a listener
4
+ * it removes itself.
5
+ */
6
+ export const listen = (target, types, listener, capture = false) => {
7
+ const all = types.split(' ');
8
+ for (const type of all)
9
+ target?.addEventListener(type, listener, capture);
10
+ return () => {
11
+ for (const type of all)
12
+ target?.removeEventListener(type, listener, capture);
13
+ };
14
+ };
15
+ /** Run every cleanup of `offs` (a list of `listen` answers and other teardowns). */
16
+ export const all = (...offs) => () => {
17
+ for (const off of offs)
18
+ off();
19
+ };