edytor 1.0.0-rc.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. package/README.md +65 -25
  2. package/dist/block/block.svelte.d.ts +10 -85
  3. package/dist/block/block.svelte.js +47 -141
  4. package/dist/block/colors.d.ts +0 -9
  5. package/dist/block/colors.js +1 -18
  6. package/dist/block/contentRange.d.ts +5 -1
  7. package/dist/block/contentRange.js +15 -16
  8. package/dist/block/inlineBlock.svelte.d.ts +8 -10
  9. package/dist/block/inlineBlock.svelte.js +14 -22
  10. package/dist/clipboard/createClipboardFragment.js +22 -64
  11. package/dist/clipboard/fragmentData.js +17 -42
  12. package/dist/clipboard/htmlFlow.d.ts +6 -1
  13. package/dist/clipboard/htmlFlow.js +26 -13
  14. package/dist/clipboard/insertClipboardFragment.js +5 -4
  15. package/dist/clipboard/moveText.js +16 -8
  16. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  17. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  18. package/dist/cloudflare/DocumentRoom.d.ts +22 -17
  19. package/dist/cloudflare/DocumentRoom.js +10 -5
  20. package/dist/cloudflare/index.d.ts +1 -1
  21. package/dist/cloudflare/index.js +1 -1
  22. package/dist/cloudflare/move.d.ts +1 -18
  23. package/dist/cloudflare/move.js +2 -48
  24. package/dist/cloudflare/room/admission.d.ts +1 -60
  25. package/dist/cloudflare/room/admission.js +25 -29
  26. package/dist/cloudflare/room/comments.d.ts +1 -3
  27. package/dist/cloudflare/room/comments.js +6 -6
  28. package/dist/cloudflare/room/context.d.ts +20 -82
  29. package/dist/cloudflare/room/context.js +8 -8
  30. package/dist/cloudflare/room/forged.d.ts +1 -1
  31. package/dist/cloudflare/room/forged.js +2 -12
  32. package/dist/cloudflare/room/frames.d.ts +1 -1
  33. package/dist/cloudflare/room/frames.js +1 -1
  34. package/dist/cloudflare/room/history.d.ts +1 -25
  35. package/dist/cloudflare/room/history.js +39 -54
  36. package/dist/cloudflare/room/moves.d.ts +1 -13
  37. package/dist/cloudflare/room/moves.js +33 -57
  38. package/dist/cloudflare/room/presence.d.ts +1 -11
  39. package/dist/cloudflare/room/presence.js +4 -4
  40. package/dist/cloudflare/room/purge.d.ts +1 -2
  41. package/dist/cloudflare/room/purge.js +2 -2
  42. package/dist/cloudflare/room/replicas.d.ts +1 -7
  43. package/dist/cloudflare/room/replicas.js +2 -2
  44. package/dist/cloudflare/room/storage.d.ts +9 -30
  45. package/dist/cloudflare/room/storage.js +52 -104
  46. package/dist/cloudflare/room/updates.d.ts +4 -4
  47. package/dist/cloudflare/room/updates.js +17 -24
  48. package/dist/cloudflare/room/validation.d.ts +1 -5
  49. package/dist/cloudflare/room/validation.js +16 -37
  50. package/dist/collaboration/RemoteSelections.svelte +13 -17
  51. package/dist/collaboration/comments/client.d.ts +2 -2
  52. package/dist/collaboration/comments/client.js +1 -1
  53. package/dist/collaboration/history/index.d.ts +5 -5
  54. package/dist/collaboration/history/index.js +5 -5
  55. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  56. package/dist/collaboration/history/panel.svelte.js +223 -0
  57. package/dist/collaboration/providers.d.ts +12 -3
  58. package/dist/collaboration/providers.js +5 -4
  59. package/dist/components/Block.svelte +160 -119
  60. package/dist/components/Block.svelte.d.ts +8 -3
  61. package/dist/components/Content.svelte +91 -44
  62. package/dist/components/CustomMark.svelte +46 -0
  63. package/dist/components/CustomMark.svelte.d.ts +11 -0
  64. package/dist/components/Edytor.svelte +80 -95
  65. package/dist/components/Edytor.svelte.d.ts +8 -12
  66. package/dist/components/InlineBlock.svelte +4 -9
  67. package/dist/components/Mark.svelte +46 -35
  68. package/dist/components/Mark.svelte.d.ts +7 -0
  69. package/dist/components/Ranges.svelte +96 -0
  70. package/dist/components/Ranges.svelte.d.ts +19 -0
  71. package/dist/components/Suggestion.svelte +3 -2
  72. package/dist/components/Text.svelte +48 -14
  73. package/dist/components/Text.svelte.d.ts +1 -1
  74. package/dist/crdt/admission.d.ts +2 -9
  75. package/dist/crdt/admission.js +3 -9
  76. package/dist/crdt/attribution/attribution.d.ts +11 -72
  77. package/dist/crdt/attribution/attribution.js +5 -52
  78. package/dist/crdt/attribution/block.d.ts +0 -78
  79. package/dist/crdt/attribution/block.js +1 -144
  80. package/dist/crdt/data.d.ts +8 -13
  81. package/dist/crdt/data.js +30 -70
  82. package/dist/crdt/doc/anchors.js +4 -4
  83. package/dist/crdt/doc/content.d.ts +5 -1
  84. package/dist/crdt/doc/content.js +3 -1
  85. package/dist/crdt/doc/delete.d.ts +1 -0
  86. package/dist/crdt/doc/funnel.d.ts +0 -23
  87. package/dist/crdt/doc/funnel.js +34 -85
  88. package/dist/crdt/doc/gate.d.ts +8 -9
  89. package/dist/crdt/doc/gate.js +7 -17
  90. package/dist/crdt/doc/history.d.ts +87 -14
  91. package/dist/crdt/doc/history.js +334 -149
  92. package/dist/crdt/doc/layout.d.ts +0 -1
  93. package/dist/crdt/doc/layout.js +2 -3
  94. package/dist/crdt/doc/meta.d.ts +4 -4
  95. package/dist/crdt/doc/meta.js +10 -21
  96. package/dist/crdt/doc/moves.d.ts +4 -4
  97. package/dist/crdt/doc/moves.js +5 -5
  98. package/dist/crdt/doc/plan.d.ts +2 -0
  99. package/dist/crdt/doc/plan.js +2 -0
  100. package/dist/crdt/doc/reads.d.ts +1 -5
  101. package/dist/crdt/doc/reads.js +38 -49
  102. package/dist/crdt/doc/seed.d.ts +15 -6
  103. package/dist/crdt/doc/seed.js +27 -26
  104. package/dist/crdt/doc/split-merge.d.ts +1 -3
  105. package/dist/crdt/doc/split-merge.js +4 -5
  106. package/dist/crdt/doc/steps.d.ts +3 -7
  107. package/dist/crdt/doc/steps.js +20 -9
  108. package/dist/crdt/doc/types.d.ts +0 -10
  109. package/dist/crdt/document.d.ts +24 -115
  110. package/dist/crdt/document.js +207 -305
  111. package/dist/crdt/edytor-doc.d.ts +671 -90
  112. package/dist/crdt/edytor-doc.js +73 -149
  113. package/dist/crdt/engine-api.d.ts +15 -47
  114. package/dist/crdt/engine.d.ts +7 -17
  115. package/dist/crdt/engine.js +9 -19
  116. package/dist/crdt/flow.d.ts +9 -37
  117. package/dist/crdt/flow.js +260 -238
  118. package/dist/crdt/index.d.ts +26 -85
  119. package/dist/crdt/index.js +21 -47
  120. package/dist/crdt/operations.d.ts +24 -33
  121. package/dist/crdt/operations.js +7 -17
  122. package/dist/crdt/placement/display.d.ts +0 -2
  123. package/dist/crdt/placement/display.js +0 -15
  124. package/dist/crdt/placement/model.d.ts +160 -12
  125. package/dist/crdt/placement/model.js +413 -414
  126. package/dist/crdt/placement/rank.d.ts +1 -5
  127. package/dist/crdt/placement/rank.js +28 -38
  128. package/dist/crdt/protocol.d.ts +4 -5
  129. package/dist/crdt/protocol.js +3 -4
  130. package/dist/crdt/protocols/awareness.d.ts +3 -7
  131. package/dist/crdt/protocols/awareness.js +17 -33
  132. package/dist/crdt/protocols/envelope.d.ts +9 -29
  133. package/dist/crdt/protocols/envelope.js +8 -25
  134. package/dist/crdt/protocols/sync.d.ts +15 -30
  135. package/dist/crdt/protocols/sync.js +27 -89
  136. package/dist/crdt/providers/bound.d.ts +3 -1
  137. package/dist/crdt/providers/bound.js +3 -1
  138. package/dist/crdt/providers/container.d.ts +11 -17
  139. package/dist/crdt/providers/container.js +39 -27
  140. package/dist/crdt/providers/index.d.ts +34 -6
  141. package/dist/crdt/providers/index.js +106 -111
  142. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  143. package/dist/crdt/providers/indexeddb.js +29 -90
  144. package/dist/crdt/providers/room.d.ts +58 -2
  145. package/dist/crdt/providers/room.js +38 -21
  146. package/dist/crdt/providers/websocket.d.ts +1 -1
  147. package/dist/crdt/providers/websocket.js +3 -4
  148. package/dist/crdt/purge.d.ts +2 -2
  149. package/dist/crdt/purge.js +69 -6
  150. package/dist/crdt/rangeDelete.d.ts +4 -42
  151. package/dist/crdt/rangeDelete.js +7 -6
  152. package/dist/crdt/restore.d.ts +21 -1
  153. package/dist/crdt/restore.js +54 -59
  154. package/dist/crdt/schema.d.ts +2 -2
  155. package/dist/crdt/schema.js +4 -5
  156. package/dist/crdt/semantics.d.ts +10 -15
  157. package/dist/crdt/semantics.js +22 -21
  158. package/dist/crdt/storage.d.ts +7 -13
  159. package/dist/crdt/storage.js +10 -24
  160. package/dist/crdt/structs.d.ts +42 -47
  161. package/dist/crdt/structs.js +76 -67
  162. package/dist/crdt/tables.d.ts +9 -0
  163. package/dist/crdt/tables.js +20 -0
  164. package/dist/crdt/text/delete-index.d.ts +0 -13
  165. package/dist/crdt/text/delete-index.js +7 -14
  166. package/dist/crdt/text/deletes.d.ts +9 -22
  167. package/dist/crdt/text/deletes.js +11 -74
  168. package/dist/crdt/text/index/cache.js +3 -3
  169. package/dist/crdt/text/index/fold.d.ts +1 -2
  170. package/dist/crdt/text/index/fold.js +15 -10
  171. package/dist/crdt/text/index/layout.d.ts +0 -10
  172. package/dist/crdt/text/index/layout.js +6 -20
  173. package/dist/crdt/text/index/records.js +2 -1
  174. package/dist/crdt/text/index/report.js +5 -6
  175. package/dist/crdt/text/index/shared.d.ts +11 -4
  176. package/dist/crdt/text/index/shared.js +8 -7
  177. package/dist/crdt/text/index/state.d.ts +3 -33
  178. package/dist/crdt/text/index/state.js +2 -4
  179. package/dist/crdt/text/model.d.ts +82 -2
  180. package/dist/crdt/text/model.js +344 -354
  181. package/dist/crdt/text/rows.d.ts +0 -2
  182. package/dist/crdt/text/rows.js +0 -11
  183. package/dist/crdt/text/runs.d.ts +6 -3
  184. package/dist/crdt/text/runs.js +132 -137
  185. package/dist/crdt/text/streams.d.ts +1 -1
  186. package/dist/crdt/text/streams.js +1 -1
  187. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  188. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  189. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  190. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  191. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  192. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  193. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  194. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  195. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  196. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  197. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  198. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  199. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  200. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  201. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  202. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  203. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  204. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  205. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  206. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  207. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  208. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  209. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  210. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  211. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  212. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  213. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  214. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  215. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  216. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  217. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  218. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  219. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  220. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  221. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  222. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  223. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  224. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  225. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  226. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  227. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  228. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  229. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  230. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  231. package/dist/{plugins/blockHandles → dnd}/autoScroll.d.ts +2 -1
  232. package/dist/{plugins/blockHandles → dnd}/autoScroll.js +3 -3
  233. package/dist/dnd/pragmatic.d.ts +4 -22
  234. package/dist/dnd/pragmatic.js +7 -26
  235. package/dist/dnd/track.d.ts +14 -0
  236. package/dist/dnd/track.js +55 -0
  237. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  238. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  239. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  240. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  241. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  242. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  243. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  254. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +36 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  265. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  293. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  294. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  295. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  296. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  297. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  298. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  299. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  300. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  301. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  302. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  303. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  304. package/dist/edytor.svelte.d.ts +34 -64
  305. package/dist/edytor.svelte.js +118 -180
  306. package/dist/events/beforeInputCommands.d.ts +6 -11
  307. package/dist/events/beforeInputCommands.js +189 -184
  308. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  309. package/dist/events/beforeInputDeleteCommands.js +153 -204
  310. package/dist/events/domTextOffset.d.ts +9 -9
  311. package/dist/events/domTextOffset.js +20 -48
  312. package/dist/events/events.utils.d.ts +0 -2
  313. package/dist/events/events.utils.js +0 -4
  314. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  315. package/dist/events/nativeInteractiveControl.js +28 -56
  316. package/dist/events/onBeforeInput.d.ts +6 -1
  317. package/dist/events/onBeforeInput.js +207 -331
  318. package/dist/events/onCopy.js +1 -5
  319. package/dist/events/onDrop.d.ts +7 -1
  320. package/dist/events/onDrop.js +33 -72
  321. package/dist/events/onFocus.d.ts +9 -4
  322. package/dist/events/onFocus.js +92 -72
  323. package/dist/events/onInput.d.ts +8 -4
  324. package/dist/events/onInput.js +34 -147
  325. package/dist/events/onKeyDown.js +55 -122
  326. package/dist/events/onPaste.d.ts +13 -1
  327. package/dist/events/onPaste.js +46 -76
  328. package/dist/index.d.ts +10 -13
  329. package/dist/index.js +3 -3
  330. package/dist/kinds.d.ts +4 -6
  331. package/dist/kinds.js +28 -27
  332. package/dist/labels.d.ts +91 -314
  333. package/dist/labels.js +180 -396
  334. package/dist/plugins/Chrome.svelte +29 -0
  335. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  336. package/dist/plugins/Control.svelte +23 -0
  337. package/dist/plugins/Control.svelte.d.ts +30 -0
  338. package/dist/plugins/anchored.svelte.d.ts +47 -0
  339. package/dist/plugins/anchored.svelte.js +73 -0
  340. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  341. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  342. package/dist/plugins/bands.svelte.d.ts +57 -0
  343. package/dist/plugins/bands.svelte.js +95 -0
  344. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -151
  345. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  346. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +63 -97
  347. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +247 -268
  348. package/dist/plugins/blockHandles/BlockHandles.svelte +46 -29
  349. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  350. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +29 -23
  351. package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -162
  352. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  353. package/dist/plugins/blockHandles/dragPreview.js +20 -17
  354. package/dist/plugins/blockHandles/dropIndicator.js +52 -60
  355. package/dist/plugins/blockHandles/geometry.d.ts +46 -1
  356. package/dist/plugins/blockHandles/geometry.js +51 -4
  357. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +59 -28
  358. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +180 -105
  359. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  360. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  361. package/dist/plugins/brand.d.ts +8 -0
  362. package/dist/plugins/brand.js +8 -0
  363. package/dist/plugins/chrome.d.ts +79 -0
  364. package/dist/plugins/chrome.js +87 -0
  365. package/dist/plugins/code/CodeHeader.svelte +12 -58
  366. package/dist/plugins/code/CodeHeader.svelte.d.ts +1 -0
  367. package/dist/plugins/code/CodePlugin.svelte +75 -56
  368. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  369. package/dist/plugins/code/LanguageMenu.svelte +25 -0
  370. package/dist/plugins/code/LanguageMenu.svelte.d.ts +9 -0
  371. package/dist/plugins/code/code.css +5 -100
  372. package/dist/plugins/code/header.svelte.d.ts +47 -0
  373. package/dist/plugins/code/header.svelte.js +141 -0
  374. package/dist/plugins/code/languageMenu.svelte.d.ts +84 -0
  375. package/dist/plugins/code/languageMenu.svelte.js +199 -0
  376. package/dist/plugins/code/languages.d.ts +21 -10
  377. package/dist/plugins/code/languages.js +39 -126
  378. package/dist/plugins/columns/ColumnResize.svelte +13 -25
  379. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  380. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  381. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  382. package/dist/plugins/columns/columns.css +7 -26
  383. package/dist/plugins/columns/resize.svelte.d.ts +14 -51
  384. package/dist/plugins/columns/resize.svelte.js +70 -164
  385. package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
  386. package/dist/plugins/comments/CommentsController.svelte.js +14 -25
  387. package/dist/plugins/comments/CommentsSidebar.svelte +82 -430
  388. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +6 -7
  389. package/dist/plugins/comments/commentsPlugin.d.ts +31 -10
  390. package/dist/plugins/comments/commentsPlugin.js +12 -10
  391. package/dist/plugins/equation/EquationEditor.svelte +18 -129
  392. package/dist/plugins/equation/EquationEditor.svelte.d.ts +2 -1
  393. package/dist/plugins/equation/EquationPlugin.svelte +123 -168
  394. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +5 -3
  395. package/dist/plugins/equation/EquationView.svelte +20 -11
  396. package/dist/plugins/equation/equation.svelte.d.ts +74 -36
  397. package/dist/plugins/equation/equation.svelte.js +74 -66
  398. package/dist/plugins/equation/importUrl.d.ts +6 -0
  399. package/dist/plugins/equation/importUrl.js +6 -0
  400. package/dist/plugins/equation/katex.d.ts +8 -0
  401. package/dist/plugins/equation/katex.js +77 -0
  402. package/dist/plugins/find/FindController.svelte.d.ts +8 -13
  403. package/dist/plugins/find/FindController.svelte.js +34 -55
  404. package/dist/plugins/find/findPlugin.d.ts +4 -8
  405. package/dist/plugins/find/findPlugin.js +29 -9
  406. package/dist/plugins/image/ImageChrome.svelte +5 -151
  407. package/dist/plugins/image/ImagePlugin.svelte +49 -117
  408. package/dist/plugins/image/ImagePlugin.svelte.d.ts +1 -24
  409. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  410. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  411. package/dist/plugins/image/controls.svelte.d.ts +6 -57
  412. package/dist/plugins/image/controls.svelte.js +51 -174
  413. package/dist/plugins/image/image.d.ts +0 -5
  414. package/dist/plugins/image/image.js +0 -3
  415. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  416. package/dist/plugins/image/toolbar.svelte.js +145 -0
  417. package/dist/plugins/index.d.ts +39 -24
  418. package/dist/plugins/index.js +30 -22
  419. package/dist/plugins/list.svelte.d.ts +128 -0
  420. package/dist/plugins/list.svelte.js +217 -0
  421. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  422. package/dist/plugins/markdownShortcuts.js +6 -5
  423. package/dist/plugins/marquee/MarqueeBox.svelte +15 -0
  424. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +9 -0
  425. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +46 -0
  426. package/dist/plugins/marquee/MarqueeController.svelte.js +243 -0
  427. package/dist/plugins/marquee/marquee.d.ts +33 -0
  428. package/dist/plugins/marquee/marquee.js +89 -0
  429. package/dist/plugins/marquee/marqueePlugin.d.ts +32 -0
  430. package/dist/plugins/marquee/marqueePlugin.js +68 -0
  431. package/dist/plugins/media/AudioPlugin.svelte +3 -88
  432. package/dist/plugins/media/AudioPlugin.svelte.d.ts +1 -4
  433. package/dist/plugins/media/BookmarkPlugin.svelte +124 -112
  434. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +20 -7
  435. package/dist/plugins/media/EmbedPlugin.svelte +93 -77
  436. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +21 -9
  437. package/dist/plugins/media/EmptySlot.svelte +44 -0
  438. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  439. package/dist/plugins/media/FilePlugin.svelte +35 -111
  440. package/dist/plugins/media/FilePlugin.svelte.d.ts +12 -4
  441. package/dist/plugins/media/MediaEmpty.svelte +55 -112
  442. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  443. package/dist/plugins/media/SourceBlock.svelte +164 -0
  444. package/dist/plugins/media/SourceBlock.svelte.d.ts +33 -0
  445. package/dist/plugins/media/VideoPlugin.svelte +4 -97
  446. package/dist/plugins/media/VideoPlugin.svelte.d.ts +2 -5
  447. package/dist/plugins/media/empty.svelte.d.ts +69 -0
  448. package/dist/plugins/media/empty.svelte.js +111 -0
  449. package/dist/plugins/media/media.d.ts +93 -30
  450. package/dist/plugins/media/media.js +79 -86
  451. package/dist/plugins/media/urlPaste.svelte.d.ts +9 -32
  452. package/dist/plugins/media/urlPaste.svelte.js +46 -75
  453. package/dist/plugins/mention/MentionPlugin.svelte +47 -124
  454. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +11 -23
  455. package/dist/plugins/page/PageLink.svelte +54 -38
  456. package/dist/plugins/page/PagePlugin.svelte +20 -18
  457. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  458. package/dist/plugins/page/page.d.ts +35 -9
  459. package/dist/plugins/page/page.js +3 -4
  460. package/dist/plugins/pageLink/PageLinkPlugin.svelte +52 -108
  461. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +11 -23
  462. package/dist/plugins/planned.d.ts +10 -0
  463. package/dist/plugins/planned.js +12 -0
  464. package/dist/plugins/richtext/CalloutIcon.svelte +25 -0
  465. package/dist/plugins/richtext/CalloutIcon.svelte.d.ts +9 -0
  466. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  467. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  468. package/dist/plugins/richtext/EmptyBody.svelte +25 -0
  469. package/dist/plugins/richtext/EmptyBody.svelte.d.ts +8 -0
  470. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  471. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  472. package/dist/plugins/richtext/RichTextPlugin.svelte +272 -148
  473. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +37 -18
  474. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  475. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  476. package/dist/plugins/richtext/body.d.ts +9 -0
  477. package/dist/plugins/richtext/body.js +16 -0
  478. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +97 -0
  479. package/dist/plugins/richtext/calloutIcons.svelte.js +214 -0
  480. package/dist/plugins/richtext/callouts.d.ts +15 -0
  481. package/dist/plugins/richtext/callouts.js +23 -0
  482. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  483. package/dist/plugins/richtext/controls.svelte.js +126 -0
  484. package/dist/plugins/richtext/richTextOperations.js +37 -28
  485. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +18 -11
  486. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +93 -35
  487. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +11 -24
  488. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  489. package/dist/plugins/suggestions/SuggestionBars.svelte +32 -84
  490. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  491. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -16
  492. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  493. package/dist/plugins/table/TableChrome.svelte +96 -127
  494. package/dist/plugins/table/TableChrome.svelte.d.ts +5 -1
  495. package/dist/plugins/table/TablePlugin.svelte +116 -171
  496. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  497. package/dist/plugins/table/chrome.svelte.d.ts +110 -117
  498. package/dist/plugins/table/chrome.svelte.js +643 -289
  499. package/dist/plugins/table/ops.d.ts +47 -0
  500. package/dist/plugins/table/ops.js +233 -0
  501. package/dist/plugins/table/table.css +55 -134
  502. package/dist/plugins/table/table.d.ts +26 -7
  503. package/dist/plugins/table/table.js +23 -49
  504. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  505. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  506. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  507. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  508. package/dist/plugins/toc/toc.d.ts +41 -10
  509. package/dist/plugins/toc/toc.js +2 -3
  510. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +29 -66
  511. package/dist/plugins/toolbar/ToolbarController.svelte.js +151 -76
  512. package/dist/plugins/toolbar/toolbarPlugin.d.ts +14 -13
  513. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  514. package/dist/plugins/triggers/TriggerController.svelte.d.ts +6 -45
  515. package/dist/plugins/triggers/TriggerController.svelte.js +51 -96
  516. package/dist/plugins/triggers/place.d.ts +0 -9
  517. package/dist/plugins/triggers/place.js +1 -17
  518. package/dist/plugins/triggers/triggers.d.ts +31 -9
  519. package/dist/plugins/triggers/triggers.js +82 -62
  520. package/dist/plugins/uploads.svelte.d.ts +38 -20
  521. package/dist/plugins/uploads.svelte.js +39 -32
  522. package/dist/plugins.d.ts +167 -60
  523. package/dist/selection/domSelection.d.ts +13 -4
  524. package/dist/selection/domSelection.js +110 -183
  525. package/dist/selection/pointer.svelte.d.ts +12 -10
  526. package/dist/selection/pointer.svelte.js +154 -71
  527. package/dist/selection/replaceSelection.d.ts +21 -22
  528. package/dist/selection/replaceSelection.js +60 -69
  529. package/dist/selection/selection.svelte.d.ts +5 -73
  530. package/dist/selection/selection.svelte.js +263 -542
  531. package/dist/selection/selection.utils.d.ts +34 -11
  532. package/dist/selection/selection.utils.js +128 -247
  533. package/dist/selection/visibility.d.ts +11 -8
  534. package/dist/selection/visibility.js +23 -8
  535. package/dist/session/announcer.svelte.d.ts +2 -1
  536. package/dist/session/announcer.svelte.js +7 -3
  537. package/dist/session/attempt.d.ts +33 -39
  538. package/dist/session/attempt.js +61 -53
  539. package/dist/session/bindings.js +108 -139
  540. package/dist/session/commands.d.ts +47 -22
  541. package/dist/session/commands.js +206 -208
  542. package/dist/session/composition.svelte.d.ts +2 -4
  543. package/dist/session/composition.svelte.js +55 -65
  544. package/dist/session/editing/text.d.ts +6 -0
  545. package/dist/session/editing/text.js +17 -3
  546. package/dist/session/handles.d.ts +10 -1
  547. package/dist/session/handles.js +28 -0
  548. package/dist/session/history.d.ts +0 -4
  549. package/dist/session/history.js +15 -21
  550. package/dist/session/inputRules.js +75 -84
  551. package/dist/session/keymap.d.ts +1 -6
  552. package/dist/session/keymap.js +17 -20
  553. package/dist/session/moves.d.ts +10 -10
  554. package/dist/session/moves.js +31 -59
  555. package/dist/session/navigation.d.ts +18 -3
  556. package/dist/session/navigation.js +194 -153
  557. package/dist/session/ports.d.ts +7 -0
  558. package/dist/session/selection.d.ts +4 -3
  559. package/dist/session/selection.js +8 -0
  560. package/dist/session/suggestions.svelte.d.ts +1 -1
  561. package/dist/session/suggestions.svelte.js +64 -47
  562. package/dist/session/virtual.d.ts +3 -3
  563. package/dist/session/virtual.js +18 -40
  564. package/dist/surface/attributes.d.ts +1 -0
  565. package/dist/surface/attributes.js +3 -26
  566. package/dist/surface/cells.d.ts +5 -0
  567. package/dist/surface/cells.js +5 -0
  568. package/dist/surface/lines.d.ts +32 -0
  569. package/dist/surface/lines.js +43 -0
  570. package/dist/surface/observer.svelte.d.ts +3 -20
  571. package/dist/surface/observer.svelte.js +73 -77
  572. package/dist/surface/overlay.d.ts +48 -6
  573. package/dist/surface/overlay.js +133 -23
  574. package/dist/surface/pin.svelte.d.ts +5 -0
  575. package/dist/surface/pin.svelte.js +5 -0
  576. package/dist/surface/projector.svelte.d.ts +4 -6
  577. package/dist/surface/projector.svelte.js +42 -69
  578. package/dist/text/text.svelte.d.ts +14 -40
  579. package/dist/text/text.svelte.js +35 -51
  580. package/dist/text/wordBoundary.d.ts +19 -0
  581. package/dist/text/wordBoundary.js +29 -44
  582. package/dist/themes/notion.css +315 -126
  583. package/dist/utils/json.d.ts +3 -1
  584. package/dist/utils/json.js +52 -51
  585. package/dist/utils/listen.d.ts +8 -0
  586. package/dist/utils/listen.js +19 -0
  587. package/package.json +4 -5
  588. package/dist/block/block.utils.d.ts +0 -340
  589. package/dist/block/block.utils.js +0 -356
  590. package/dist/collaboration/history/HistoryPanel.svelte +0 -525
  591. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  592. package/dist/collaboration/history/panel.d.ts +0 -43
  593. package/dist/collaboration/history/panel.js +0 -3
  594. package/dist/components/SuggestionRanges.svelte +0 -58
  595. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  596. package/dist/crdt/doc/table.d.ts +0 -21
  597. package/dist/crdt/doc/table.js +0 -288
  598. package/dist/crdt/migration/generation.d.ts +0 -58
  599. package/dist/crdt/migration/generation.js +0 -70
  600. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  601. package/dist/crdt/migration/legacy-schema.js +0 -151
  602. package/dist/crdt/migration/migrate.d.ts +0 -56
  603. package/dist/crdt/migration/migrate.js +0 -227
  604. package/dist/crdt/nodes.d.ts +0 -121
  605. package/dist/crdt/nodes.js +0 -56
  606. package/dist/crdt/text/index/checks.d.ts +0 -15
  607. package/dist/crdt/text/index/checks.js +0 -156
  608. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  609. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  610. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  611. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  612. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  613. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  614. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  615. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  616. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  617. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  618. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  619. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  620. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  621. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  622. package/dist/edytor.utils.d.ts +0 -50
  623. package/dist/edytor.utils.js +0 -67
  624. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -447
  625. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  626. package/dist/plugins/find/FindBar.svelte +0 -170
  627. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  628. package/dist/plugins/find/FindHighlights.svelte +0 -75
  629. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  630. package/dist/plugins/icons.d.ts +0 -2
  631. package/dist/plugins/icons.js +0 -63
  632. package/dist/plugins/image/ImageEmpty.svelte +0 -116
  633. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -12
  634. package/dist/plugins/keepInView.d.ts +0 -4
  635. package/dist/plugins/keepInView.js +0 -6
  636. package/dist/plugins/media/UrlPasteMenu.svelte +0 -83
  637. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -7
  638. package/dist/plugins/richtext/labels.d.ts +0 -5
  639. package/dist/plugins/richtext/labels.js +0 -3
  640. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -360
  641. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  642. package/dist/plugins/toolbar/LinkCard.svelte +0 -118
  643. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -7
  644. package/dist/plugins/toolbar/Toolbar.svelte +0 -400
  645. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  646. package/dist/plugins/triggers/TriggerMenu.svelte +0 -144
  647. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  648. package/dist/session/props.d.ts +0 -28
  649. package/dist/session/props.js +0 -162
  650. package/dist/text/deltas.d.ts +0 -22
  651. package/dist/text/deltas.js +0 -46
  652. package/dist/text/text.utils.d.ts +0 -45
  653. package/dist/text/text.utils.js +0 -199
@@ -1,5 +1,5 @@
1
- import { dispatchPlan } from '../../block/block.utils.js';
2
- import { domPointOf } from '../../surface/projector.svelte.js';
1
+ import * as ops from './ops.js';
2
+ import { caretBox, sameLine } from '../../surface/lines.js';
3
3
  /** The table `block` is, or whose row or cell it is. */
4
4
  export const tableOf = (block) => {
5
5
  if (!block?.id)
@@ -31,28 +31,31 @@ export const cellAt = (table, grid, row, column) => {
31
31
  };
32
32
  /** The cell holding the caret (or the selection's start), if it is a table's cell. */
33
33
  export const caretCell = (edytor) => {
34
- const block = edytor.selection.state.startBlock;
34
+ const block = edytor.selection.textRange().startText?.parent;
35
35
  return block?.id && edytor.facade.isTableCell(block.id) ? block : null;
36
36
  };
37
- /** `prepare` dispatched as `operation` on `table`: one plan, its own undo step; the plan or `null`. */
38
- const run = (table, operation, payload, prepare) => dispatchPlan(table, operation, payload, prepare, []);
37
+ /** `prepare` dispatched as `operation` on `table`: one plan, its own undo step; the plan's ids, or `null` when refused. */
38
+ const run = (table, operation, payload, prepare) => {
39
+ const result = table.edytor.dispatcher.plan(operation, payload, prepare, table);
40
+ return result.status === 'refused' ? null : result;
41
+ };
39
42
  /** Insert a row at `index` (`table.insert-row`); the caret goes to its first cell when `caret`. */
40
43
  export const insertRow = (table, index, caret = false) => {
41
44
  const { edytor } = table;
42
- const plan = run(table, 'insertTableRow', { index }, (p) => edytor.facade.prepare.insertTableRow(table.id, p.index));
45
+ const plan = run(table, 'insertTableRow', { index }, (p) => ops.insertTableRow(edytor.facade, table.id, p.index));
43
46
  const row = plan ? (edytor.idToBlock.get(plan.ids[0]) ?? null) : null;
44
47
  if (row && caret)
45
48
  edytor.dispatcher.caret(row.children[0]?.firstText, 0);
46
49
  return row;
47
50
  };
48
51
  /** Delete `rows` with their cells (`table.delete-row`). */
49
- export const deleteRows = (table, rows) => run(table, 'deleteTableRows', { rows: [...rows] }, (p) => table.edytor.facade.prepare.deleteTableRows(p.rows.map((row) => row.id))) !== null;
52
+ export const deleteRows = (table, rows) => run(table, 'deleteTableRows', { rows: [...rows] }, (p) => ops.deleteTableRows(table.edytor.facade, p.rows.map((row) => row.id))) !== null;
50
53
  /**
51
54
  * Insert a column at `index` (`table.insert-column`); with `caret` (a row's
52
55
  * position), the caret goes to the new column's cell in that row.
53
56
  */
54
57
  export const insertColumn = (table, index, width, caret) => {
55
- const applied = run(table, 'insertTableColumn', { index, width }, (p) => table.edytor.facade.prepare.insertTableColumn(table.id, p.index, p.width)) !== null;
58
+ const applied = run(table, 'insertTableColumn', { index, width }, (p) => ops.insertTableColumn(table.edytor.facade, table.id, p.index, p.width)) !== null;
56
59
  const grid = applied && caret !== undefined ? gridOf(table) : null;
57
60
  if (grid) {
58
61
  const at = Math.max(0, Math.min(Math.trunc(index) || 0, grid.columns.length - 1));
@@ -63,18 +66,18 @@ export const insertColumn = (table, index, width, caret) => {
63
66
  return applied;
64
67
  };
65
68
  /** Delete a column, by id or position (`table.delete-column`). */
66
- export const deleteColumn = (table, column) => run(table, 'deleteTableColumn', { column }, (p) => table.edytor.facade.prepare.deleteTableColumn(table.id, p.column)) !== null;
69
+ export const deleteColumn = (table, column) => run(table, 'deleteTableColumn', { column }, (p) => ops.deleteTableColumn(table.edytor.facade, table.id, p.column)) !== null;
67
70
  /** Move a column to position `to` (`table.move-column`). */
68
- export const moveColumn = (table, column, to) => run(table, 'moveTableColumn', { column, to }, (p) => table.edytor.facade.prepare.moveTableColumn(table.id, p.column, p.to)) !== null;
71
+ export const moveColumn = (table, column, to) => run(table, 'moveTableColumn', { column, to }, (p) => ops.moveTableColumn(table.edytor.facade, table.id, p.column, p.to)) !== null;
69
72
  /** Move rows to position `to` among their table's rows (`table.move-row`). */
70
- export const moveRows = (table, rows, to) => run(table, 'moveTableRows', { rows: [...rows], to }, (p) => table.edytor.facade.prepare.moveTableRows(p.rows.map((row) => row.id), p.to)) !== null;
73
+ export const moveRows = (table, rows, to) => run(table, 'moveTableRows', { rows: [...rows], to }, (p) => ops.moveTableRows(table.edytor.facade, p.rows.map((row) => row.id), p.to)) !== null;
71
74
  /**
72
75
  * Fill the padded cell of `row` in `column` (`table.pad`): the cell is
73
76
  * created, the caret placed in it. Its block, or `null` when refused.
74
77
  */
75
78
  export const fillCell = (table, row, column) => {
76
79
  const { edytor } = table;
77
- const plan = run(table, 'fillTableCell', { row, column }, (p) => edytor.facade.prepare.fillTableCell(p.row, p.column));
80
+ const plan = run(table, 'fillTableCell', { row, column }, (p) => ops.fillTableCell(edytor.facade, p.row, p.column));
78
81
  const cell = plan ? (edytor.idToBlock.get(plan.ids[0]) ?? null) : null;
79
82
  if (cell)
80
83
  edytor.dispatcher.caret(cell.firstText, 0);
@@ -82,8 +85,10 @@ export const fillCell = (table, row, column) => {
82
85
  };
83
86
  /** Toggle `flag` (`headerRow` or `headerColumn`) of `table`'s data (`table.header`). */
84
87
  export const toggleHeader = (table, flag) => {
85
- table.data[flag] = table.data[flag] !== true;
88
+ table.edytor.patchData(table.id, [{ path: [flag], value: table.data[flag] !== true }]);
86
89
  };
90
+ /** A label key as a row id: `insertRowAbove` → `insert-row-above`. */
91
+ export const kebab = (key) => key.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`);
87
92
  /** A cell's width as set, else `fallback`: `data.columns[i].width`. */
88
93
  export const widthOf = (column, fallback) => {
89
94
  const width = column?.width;
@@ -107,7 +112,7 @@ export const tabFrom = (cell, step) => {
107
112
  const next = cellAt(table, grid, Math.floor(i / width), i % width);
108
113
  const text = next?.lastText;
109
114
  if (text) {
110
- edytor.selection.setAtTextOffset(text, text.length);
115
+ edytor.selection.selectText(text, text.length);
111
116
  return true;
112
117
  }
113
118
  }
@@ -115,38 +120,6 @@ export const tabFrom = (cell, step) => {
115
120
  insertRow(table, grid.rows.length, true);
116
121
  return true;
117
122
  };
118
- /**
119
- * The box of the caret at `offset` in `text`, read from the character after
120
- * it (`after`: its left edge) or the one before it (its right edge), the
121
- * other one where there is none; `null` where nothing is laid out (no layout
122
- * engine). An offset where a line wraps is on both lines: `after` reads it
123
- * on the later one, `before` on the earlier one.
124
- */
125
- const caretBox = (text, offset, after) => {
126
- const element = text.node;
127
- if (!element)
128
- return null;
129
- const range = element.ownerDocument.createRange();
130
- const box = (from) => {
131
- if (from < 0 || from >= text.stringContent.length)
132
- return null;
133
- const [startNode, start] = domPointOf(element, from);
134
- const [endNode, end] = domPointOf(element, from + 1);
135
- range.setStart(startNode, start);
136
- range.setEnd(endNode, end);
137
- // No layout engine (a server, jsdom) lays nothing out: no box.
138
- const list = typeof range.getClientRects === 'function' ? range.getClientRects() : null;
139
- return [...(list ?? [])].find((r) => r.width > 0 || r.height > 0) ?? null;
140
- };
141
- const next = box(offset);
142
- const previous = box(offset - 1);
143
- const edge = (r, right) => new DOMRect(right ? r.right : r.left, r.top, 0, r.height);
144
- if (after)
145
- return next ? edge(next, false) : previous && edge(previous, true);
146
- return previous ? edge(previous, true) : next && edge(next, false);
147
- };
148
- /** `a` and `b` are on one line box: their vertical middles are within half a line of each other. */
149
- const sameLine = (a, b) => Math.abs(a.top + a.height / 2 - (b.top + b.height / 2)) < Math.max(a.height, b.height) / 2;
150
123
  /**
151
124
  * ArrowUp (`step` -1) on a cell's first line, ArrowDown (`1`) on its last
152
125
  * (`table.keys`): the caret goes to the nearest shown cell above (below) in
@@ -160,7 +133,8 @@ const sameLine = (a, b) => Math.abs(a.top + a.height / 2 - (b.top + b.height / 2
160
133
  export const verticalFrom = (cell, step) => {
161
134
  const at = positionOf(cell);
162
135
  const { edytor } = cell;
163
- const { startText, yStart, isCollapsed } = edytor.selection.state;
136
+ const { startText, yStart } = edytor.selection.textRange();
137
+ const { isCollapsed } = edytor.selection.projection;
164
138
  if (!at || !isCollapsed || !startText)
165
139
  return false;
166
140
  if (step < 0 ? startText !== cell.firstText : startText !== cell.lastText)
@@ -180,7 +154,7 @@ export const verticalFrom = (cell, step) => {
180
154
  const other = caretBox(startText, yStart, step > 0);
181
155
  if (!other || !sameLine(other, edge))
182
156
  return false;
183
- edytor.selection.setAtTextOffset(startText, landing(startText, -step, caret, column));
157
+ edytor.selection.selectText(startText, landing(startText, -step, caret, column));
184
158
  return true;
185
159
  }
186
160
  }
@@ -191,7 +165,7 @@ export const verticalFrom = (cell, step) => {
191
165
  const text = step < 0 ? target?.lastText : target?.firstText;
192
166
  if (!text)
193
167
  continue;
194
- edytor.selection.setAtTextOffset(text, landing(text, step, caret, column));
168
+ edytor.selection.selectText(text, landing(text, step, caret, column));
195
169
  return true;
196
170
  }
197
171
  return false;
@@ -3,17 +3,20 @@
3
3
  import type { Edytor } from '../../edytor.svelte.js';
4
4
  import { ownText } from '../../surface/attributes.js';
5
5
  import { reveal } from '../../selection/replaceSelection.js';
6
- import { tocLabels, type TocHeadingLevel } from './toc.js';
6
+ import { labelsOf, tocEnglish } from '../../labels.js';
7
+ import { attach, keepSelection } from '../chrome.js';
8
+ import { richTextHeadingLevel, tocViews, type TocEntryPayload } from './toc.js';
7
9
 
8
10
  /**
9
11
  * The document's headings, live, in reading order (Notion's table of
10
12
  * contents): read from the view's cells, so an edit anywhere re-renders
11
13
  * only the entries it changes. Each entry scrolls its heading into view,
12
- * opening the closed toggles it sits in; the selection stays.
14
+ * opening the closed toggles it sits in; the selection stays. The app's
15
+ * `entry` and `empty` snippets draw them, else this markup.
13
16
  */
14
- let { level }: { level: TocHeadingLevel } = $props();
15
17
  const edytor = getContext<Edytor>('edytor');
16
- const labels = tocLabels.of(edytor);
18
+ const labels = labelsOf(edytor, 'toc', tocEnglish);
19
+ const { headingLevel: level = richTextHeadingLevel, entry, empty } = tocViews.get(edytor) ?? {};
17
20
 
18
21
  type Entry = { id: string; level: number; text: string };
19
22
  const entries = $derived.by(() => {
@@ -40,44 +43,35 @@
40
43
  reveal(block);
41
44
  block.node.scrollIntoView?.({ behavior: 'smooth', block: 'start' });
42
45
  };
46
+
47
+ const payloadOf = ({ id, level, text }: Entry): TocEntryPayload => ({
48
+ id,
49
+ level,
50
+ depth: level - top,
51
+ text,
52
+ label: text || labels.untitled,
53
+ go: () => go(id),
54
+ control: attach(
55
+ { 'data-edytor-toc-entry': '' },
56
+ { mousedown: keepSelection, click: () => go(id) }
57
+ )
58
+ });
43
59
  </script>
44
60
 
45
61
  {#if entries.length}
46
- {#each entries as entry (entry.id)}
47
- <button
48
- type="button"
49
- data-edytor-toc-entry
50
- data-level={entry.level}
51
- data-untitled={entry.text ? undefined : 'true'}
52
- style:--edytor-toc-depth={entry.level - top}
53
- onmousedown={(event) => event.preventDefault()}
54
- onclick={() => go(entry.id)}>{entry.text || labels.untitled}</button
55
- >
62
+ {#each entries as found (found.id)}
63
+ {@const payload = payloadOf(found)}
64
+ {#if entry}{@render entry(payload)}{:else}<button
65
+ type="button"
66
+ data-edytor-toc-entry
67
+ data-level={payload.level}
68
+ data-untitled={payload.text ? undefined : 'true'}
69
+ style:--edytor-toc-depth={payload.depth}
70
+ {@attach payload.control}>{payload.label}</button
71
+ >{/if}
56
72
  {/each}
73
+ {:else if empty}
74
+ {@render empty({ label: labels.empty })}
57
75
  {:else}
58
76
  <p data-edytor-toc-empty>{labels.empty}</p>
59
77
  {/if}
60
-
61
- <style>
62
- /*
63
- * The entries' structure, at zero specificity (`:where`): one line each,
64
- * one nesting step in per level; a theme draws them (`themes/notion.css`).
65
- */
66
- :global(:where([data-edytor-toc-entry])) {
67
- display: block;
68
- width: 100%;
69
- margin: 0;
70
- padding: 0;
71
- padding-inline-start: calc(var(--edytor-toc-depth, 0) * var(--edytor-nest-indent, 24px));
72
- border: 0;
73
- background: none;
74
- color: inherit;
75
- font: inherit;
76
- text-align: start;
77
- cursor: pointer;
78
- }
79
- :global(:where([data-edytor-toc-empty])) {
80
- margin: 0;
81
- opacity: 0.6;
82
- }
83
- </style>
@@ -1,7 +1,3 @@
1
- import { type TocHeadingLevel } from './toc.js';
2
- type $$ComponentProps = {
3
- level: TocHeadingLevel;
4
- };
5
- declare const TableOfContents: import("svelte").Component<$$ComponentProps, {}, "">;
1
+ declare const TableOfContents: import("svelte").Component<Record<string, never>, {}, "">;
6
2
  type TableOfContents = ReturnType<typeof TableOfContents>;
7
3
  export default TableOfContents;
@@ -1,35 +1,38 @@
1
1
  <script module lang="ts">
2
2
  import type { Plugin, BlockSnippetPayload } from '../../plugins.js';
3
- import type { Edytor } from '../../edytor.svelte.js';
4
3
  import { tocKinds } from '../../crdt/semantics.js';
5
- import { keywordsOf, labelsWith } from '../../labels.js';
4
+ import { tocEnglish, keywordsOf, labelsOf } from '../../labels.js';
6
5
  import TableOfContents from './TableOfContents.svelte';
7
6
  import {
8
7
  richTextHeadingLevel,
9
- tocLabels,
8
+ type TocEmptyPayload,
9
+ type TocEntryPayload,
10
10
  type TocHeadingLevel,
11
- type TocPluginOptions
11
+ type TocPluginOptions,
12
+ tocViews as views
12
13
  } from './toc.js';
13
14
 
14
- export type { TocHeadingLevel, TocPluginOptions };
15
-
16
- const levelOf = new WeakMap<Edytor, TocHeadingLevel>();
15
+ export type { TocEmptyPayload, TocEntryPayload, TocHeadingLevel, TocPluginOptions };
17
16
 
18
17
  /**
19
18
  * Notion's table of contents: a `toc` block lists the document's
20
19
  * headings, live, indented by level; a click scrolls to one (opening the
21
20
  * closed toggles it sits in). Void: it holds no text, and its list is
22
21
  * never stored, only drawn. Its preset in the slash menu turns an empty
23
- * line into one, or inserts it after the line; its words are `labels`
24
- * (English by default).
22
+ * line into one, or inserts it after the line; its words are the view's
23
+ * `toc` labels (English by default).
25
24
  */
26
25
  export const createTocPlugin =
27
26
  (options: TocPluginOptions = {}): Plugin =>
28
27
  (edytor) => {
29
28
  // First wins, as for the kind: a second listing never replaces it.
30
- if (!levelOf.has(edytor)) levelOf.set(edytor, options.headingLevel ?? richTextHeadingLevel);
31
- const labels = labelsWith('toc', options.labels);
32
- tocLabels.claim(edytor, labels);
29
+ if (!views.has(edytor))
30
+ views.set(edytor, {
31
+ headingLevel: options.headingLevel ?? richTextHeadingLevel,
32
+ entry: options.entry,
33
+ empty: options.empty
34
+ });
35
+ const labels = labelsOf(edytor, 'toc', tocEnglish);
33
36
  return {
34
37
  blocks: {
35
38
  toc: {
@@ -41,11 +44,12 @@
41
44
  {
42
45
  label: labels.toc,
43
46
  icon: '☰',
44
- keywords: keywordsOf(
45
- 'block.toc',
46
- ['toc', 'outline', 'headings', 'contents'],
47
- options.keywords
48
- ),
47
+ keywords: keywordsOf(edytor, 'block.toc', [
48
+ 'toc',
49
+ 'outline',
50
+ 'headings',
51
+ 'contents'
52
+ ]),
49
53
  group: 'Advanced blocks'
50
54
  }
51
55
  ],
@@ -58,14 +62,10 @@
58
62
  }
59
63
  };
60
64
  };
61
-
62
- /** The table of contents over the rich text headings. */
63
- export const tocPlugin = createTocPlugin();
64
65
  </script>
65
66
 
66
67
  {#snippet toc({ block }: BlockSnippetPayload)}
67
- {@const level = (block.handle && levelOf.get(block.handle.edytor)) || richTextHeadingLevel}
68
68
  <div use:block.void data-edytor-toc>
69
- <TableOfContents {level} />
69
+ <TableOfContents />
70
70
  </div>
71
71
  {/snippet}
@@ -1,17 +1,15 @@
1
1
  import type { Plugin } from '../../plugins.js';
2
- import { type TocHeadingLevel, type TocPluginOptions } from './toc.js';
3
- export type { TocHeadingLevel, TocPluginOptions };
2
+ import { type TocEmptyPayload, type TocEntryPayload, type TocHeadingLevel, type TocPluginOptions } from './toc.js';
3
+ export type { TocEmptyPayload, TocEntryPayload, TocHeadingLevel, TocPluginOptions };
4
4
  /**
5
5
  * Notion's table of contents: a `toc` block lists the document's
6
6
  * headings, live, indented by level; a click scrolls to one (opening the
7
7
  * closed toggles it sits in). Void: it holds no text, and its list is
8
8
  * never stored, only drawn. Its preset in the slash menu turns an empty
9
- * line into one, or inserts it after the line; its words are `labels`
10
- * (English by default).
9
+ * line into one, or inserts it after the line; its words are the view's
10
+ * `toc` labels (English by default).
11
11
  */
12
12
  export declare const createTocPlugin: (options?: TocPluginOptions) => Plugin;
13
- /** The table of contents over the rich text headings. */
14
- export declare const tocPlugin: Plugin;
15
13
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
16
14
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
17
15
  $$bindings?: Bindings;
@@ -1,4 +1,5 @@
1
- import { type PartialLabels } from '../../labels.js';
1
+ import type { Snippet } from 'svelte';
2
+ import type { Attachment } from 'svelte/attachments';
2
3
  /**
3
4
  * A block's level in the table of contents (1 the outermost), or `null`
4
5
  * when it is not a heading: read from its kind and data.
@@ -7,11 +8,6 @@ export type TocHeadingLevel = (block: {
7
8
  type: string;
8
9
  data: Readonly<Record<string, unknown>>;
9
10
  }) => number | null;
10
- /** Each view's table of contents labels: the first toc plugin listed claims them, as its kind. */
11
- export declare const tocLabels: {
12
- claim: (view: object | undefined, labels: import("../../labels.js").TocLabels) => void;
13
- of: (view: object | undefined) => import("../../labels.js").TocLabels;
14
- };
15
11
  /** The table of contents plugin's options. */
16
12
  export type TocPluginOptions = {
17
13
  /**
@@ -20,10 +16,45 @@ export type TocPluginOptions = {
20
16
  * any other 3, as they are drawn).
21
17
  */
22
18
  headingLevel?: TocHeadingLevel;
23
- /** The words the block and its preset show, over the English ones. */
24
- labels?: PartialLabels<'toc'>;
25
- /** The slash menu's keywords of the preset (`block.toc`), which replace its own. */
26
- keywords?: Partial<Record<string, string[]>>;
19
+ /**
20
+ * One entry (default: a `button` with the heading's text, one nesting
21
+ * step in per level under the shallowest). Give it `{@attach
22
+ * entry.control}`: a click scrolls its heading into view, opening the
23
+ * closed toggles it sits in, and the selection stays.
24
+ */
25
+ entry?: Snippet<[TocEntryPayload]>;
26
+ /** What shows while the document has no heading (default: a `p` with the view's `toc.empty`). */
27
+ empty?: Snippet<[TocEmptyPayload]>;
28
+ };
29
+ /** What a table of contents' `entry` snippet receives: one heading. */
30
+ export type TocEntryPayload = {
31
+ /** The heading's block id. */
32
+ id: string;
33
+ /** Its level (`headingLevel`'s answer, 1 the outermost). */
34
+ level: number;
35
+ /** How many steps in it sits: its level less the shallowest shown. */
36
+ depth: number;
37
+ /** Its text (`''` when it has none). */
38
+ text: string;
39
+ /** What it reads: its text, else the view's `toc.untitled`. */
40
+ label: string;
41
+ /** Scroll its heading into view (opening the closed toggles it sits in). */
42
+ go: () => void;
43
+ /**
44
+ * The entry's attachment (`{@attach entry.control}`): its marker
45
+ * (`data-edytor-toc-entry`), a press that keeps the editor's selection,
46
+ * and a click that scrolls to it.
47
+ */
48
+ control: Attachment<HTMLElement>;
49
+ };
50
+ /** What a table of contents' `empty` snippet receives. */
51
+ export type TocEmptyPayload = {
52
+ /** The view's words for it (`toc.empty`). */
53
+ label: string;
27
54
  };
55
+ /** A view's table of contents: the first plugin listed sets it. */
56
+ export type TocView = Required<Pick<TocPluginOptions, 'headingLevel'>> & Pick<TocPluginOptions, 'entry' | 'empty'>;
28
57
  /** The rich text headings' levels (`heading`, `toggle-heading`), as they draw them. */
29
58
  export declare const richTextHeadingLevel: TocHeadingLevel;
59
+ /** Each view's table of contents (the first plugin listed sets it). */
60
+ export declare const tocViews: WeakMap<object, TocView>;
@@ -1,6 +1,3 @@
1
- import { viewLabels } from '../../labels.js';
2
- /** Each view's table of contents labels: the first toc plugin listed claims them, as its kind. */
3
- export const tocLabels = viewLabels('toc');
4
1
  /** The rich text headings' levels (`heading`, `toggle-heading`), as they draw them. */
5
2
  export const richTextHeadingLevel = ({ type, data }) => {
6
3
  if (type !== 'heading' && type !== 'toggle-heading')
@@ -8,3 +5,5 @@ export const richTextHeadingLevel = ({ type, data }) => {
8
5
  const { level } = data;
9
6
  return level === undefined || level === 'h1' ? 1 : level === 'h2' ? 2 : 3;
10
7
  };
8
+ /** Each view's table of contents (the first plugin listed sets it). */
9
+ export const tocViews = new WeakMap();
@@ -1,76 +1,46 @@
1
+ import type { Attachment } from 'svelte/attachments';
1
2
  import type { Edytor } from '../../edytor.svelte.js';
2
3
  import type { EdytorSelection } from '../../selection/selection.svelte.js';
3
4
  import { type KindRow } from '../../kinds.js';
4
- import type { Popup } from '../../surface/popups.svelte.js';
5
- import { type ToolbarLabels } from '../../labels.js';
6
- /** Notion's palette: text colors and their backgrounds, by name (shown through the labels' `colors`). */
7
- export declare const TOOLBAR_COLORS: readonly [{
8
- readonly name: "Default";
9
- readonly text: null;
10
- readonly background: null;
11
- }, {
12
- readonly name: "Gray";
13
- readonly text: "#7d7a75";
14
- readonly background: "#f0efed";
15
- }, {
16
- readonly name: "Brown";
17
- readonly text: "#9f765a";
18
- readonly background: "#f5ede9";
19
- }, {
20
- readonly name: "Orange";
21
- readonly text: "#d27b2d";
22
- readonly background: "#fbebde";
23
- }, {
24
- readonly name: "Yellow";
25
- readonly text: "#cb9434";
26
- readonly background: "#f9f3dc";
27
- }, {
28
- readonly name: "Green";
29
- readonly text: "#50946e";
30
- readonly background: "#e8f1ec";
31
- }, {
32
- readonly name: "Blue";
33
- readonly text: "#387dc9";
34
- readonly background: "#e5f2fc";
35
- }, {
36
- readonly name: "Purple";
37
- readonly text: "#9a6bb4";
38
- readonly background: "#f3ebf9";
39
- }, {
40
- readonly name: "Pink";
41
- readonly text: "#c14c8a";
42
- readonly background: "#fae9f1";
43
- }, {
44
- readonly name: "Red";
45
- readonly text: "#cf5148";
46
- readonly background: "#fce9e7";
47
- }];
48
5
  export declare class ToolbarController {
6
+ #private;
49
7
  private edytor;
50
- /** The words the toolbar shows (the plugin's `labels`): read them in a custom `toolbar`. */
51
- readonly labels: ToolbarLabels;
52
8
  /** Shown for the current selection; hidden while the editor is readonly. */
53
9
  private shown;
54
10
  linkUrl: string;
55
11
  /** The open panel: the kind menu, the link field or the colors. */
56
- panel: "link" | "color" | "turn" | null;
57
- /** The selection the toolbar acts on: a value (anchors), so peers' edits move it. */
58
- private selectionSnapshot;
59
- private isRestoringSelection;
60
- /** The link panel's field takes the focus when it next mounts (it was opened, not re-rendered). */
61
- private focusField;
12
+ panel: "color" | "link" | "turn" | null;
62
13
  /** The link under the pointer, for the link card (`link.card`). */
63
14
  hovered: HTMLAnchorElement | null;
64
- constructor(edytor: Edytor,
65
- /** The words the toolbar shows (the plugin's `labels`): read them in a custom `toolbar`. */
66
- labels?: ToolbarLabels);
67
- /** A palette color's name as shown (`labels.colors`). */
68
- colorName: (name: string) => string;
15
+ constructor(edytor: Edytor);
69
16
  get isVisible(): boolean;
70
17
  /** The bar's element id (page-unique), for the root's `aria-controls`. */
71
18
  get barId(): string;
72
- /** Publish the shown bar to the view's root (`edytor.popups`), or withdraw it with `null`. */
73
- publish: (popup: Popup | null) => void;
19
+ /** The link panel's field id (page-unique): a `label`'s `for`. */
20
+ get linkFieldId(): string;
21
+ /**
22
+ * The bar (`{@attach controller.popup}`, named by your markup): it takes
23
+ * the bar's id, its `toolbar` role unless it has its own, the placement's mark
24
+ * (`data-edytor-toolbar-bar`, which the toolbar's shortcut also reads),
25
+ * and is published to the view's root (`edytor.popups`, with that
26
+ * shortcut as its `aria-keyshortcuts`) while it is in the page.
27
+ */
28
+ popup: Attachment<HTMLElement>;
29
+ /**
30
+ * The bar's keys (`{@attach controller.keys}`, WAI-ARIA toolbar): one tab
31
+ * stop, the control it last held (`tabindex="0"`, every other `-1`); the
32
+ * arrows, Home and End walk its controls, Escape gives the focus back to
33
+ * the editor over the held selection (`release`). Every key in it is its
34
+ * own, never the editor's (Enter presses the button).
35
+ */
36
+ keys: Attachment<HTMLElement>;
37
+ /**
38
+ * The link panel's field (`{@attach controller.linkField}`): its id
39
+ * (`linkFieldId`), the focus when the panel was just opened (Mod+K, Edit,
40
+ * the Link button), Enter applies the link and Escape closes the panel,
41
+ * both giving the editor its focus and the selection back.
42
+ */
43
+ linkField: Attachment<HTMLInputElement>;
74
44
  /** Give the keyboard back to the editor (Escape in the bar), over the held selection. */
75
45
  release(): void;
76
46
  updateFromSelection(selection?: EdytorSelection): void;
@@ -114,8 +84,6 @@ export declare class ToolbarController {
114
84
  editHovered(): void;
115
85
  /** The card's Remove: unlink the whole hovered link (one undo step); the selection stays. */
116
86
  removeHovered(): void;
117
- /** The hovered link element's text and link run, read from the model (never from the DOM). */
118
- private hoveredLink;
119
87
  /** Convert every block the selection touches (Notion), as one undo step. */
120
88
  turnInto(kind: KindRow): void;
121
89
  /** Set (or clear, with `null`) the text color or background of the selection. */
@@ -123,9 +91,4 @@ export declare class ToolbarController {
123
91
  toggleMark(mark: string): void;
124
92
  applyLink(): void;
125
93
  removeLink(): void;
126
- private canShowForSelection;
127
- private getSelectedLinkUrl;
128
- /** Act on the held selection, then select it again (the projector displays it). */
129
- private runWithSelection;
130
- private restoreSelection;
131
94
  }