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
@@ -3,8 +3,25 @@ import type { Edytor } from '../../edytor.svelte.js';
3
3
  import type { Plugin } from '../../plugins.js';
4
4
  import type { CommentChange } from '../../crdt/protocols/comments.js';
5
5
  import type { CommentsClient } from '../../collaboration/comments/client.js';
6
- import { type PartialLabels } from '../../labels.js';
7
6
  import { CommentsController, type CommentNotice, type CommentUser, type PlacedThread } from './CommentsController.svelte.js';
7
+ /**
8
+ * What a `card` snippet receives: one thread (`null`: the comment being
9
+ * written, `comments.draft`), the view's comments controller, and whether
10
+ * it is the active one.
11
+ */
12
+ export type CommentCardPayload = {
13
+ /**
14
+ * The thread, placed beside its text (its comments, its anchor's text,
15
+ * `resolved`); `null` for the comment being written (its text
16
+ * `comments.draft.quote`: post it with `comments.submit(body)`, give it
17
+ * up with `comments.cancel()`).
18
+ */
19
+ thread: PlacedThread | null;
20
+ /** The view's comments: the actions (reply, resolve, delete, `activate`), the user. */
21
+ comments: CommentsController;
22
+ /** It is the active thread (its text is selected, or its card was pressed). */
23
+ active: boolean;
24
+ };
8
25
  export type CommentsPluginOptions = {
9
26
  /**
10
27
  * Where the threads live: `createCommentsClient({ server, room })` for
@@ -25,14 +42,18 @@ export type CommentsPluginOptions = {
25
42
  * it (in this view or another).
26
43
  */
27
44
  onComment?: (change: CommentChange, notice: CommentNotice) => void;
28
- /** Replace a thread card's markup (the sidebar still places it). */
29
- card?: Snippet<[{
30
- thread: PlacedThread;
31
- comments: CommentsController;
32
- active: boolean;
33
- }]>;
34
- /** The words the sidebar and the toolbar button show, over the English ones. */
35
- labels?: PartialLabels<'comments'>;
45
+ /**
46
+ * A card's markup: a thread's (its comments, a reply field, Resolve) or
47
+ * the comment being written (`thread: null`). The sidebar places each
48
+ * card beside its text; without it, no sidebar shows (the threads are
49
+ * still highlighted and kept).
50
+ */
51
+ card?: Snippet<[CommentCardPayload]>;
52
+ /**
53
+ * The top of the sidebar's margin (Notion's "Show resolved"): the cards
54
+ * stack under it. Not shown on a narrow screen.
55
+ */
56
+ header?: Snippet<[CommentsController]>;
36
57
  };
37
58
  /** The comments plugin's controller of `edytor`; `undefined` when the plugin is not listed. */
38
59
  export declare const commentsController: (edytor: Edytor) => CommentsController | undefined;
@@ -43,6 +64,6 @@ export declare const commentsController: (edytor: Edytor) => CommentsController
43
64
  * merges and that copy and cut leave behind; its comments live in the
44
65
  * client's store (the room's `threads` and `comments` tables). Open threads
45
66
  * are highlighted, and a sidebar beside the text (under it, on a narrow
46
- * screen) shows each one with its replies, a composer, Resolve and Re-open.
67
+ * screen) places a `card` for each one.
47
68
  */
48
69
  export declare const createCommentsPlugin: (options: CommentsPluginOptions) => Plugin;
@@ -1,6 +1,6 @@
1
1
  import { mount, unmount } from 'svelte';
2
2
  import { commentMarks } from '../../crdt/semantics.js';
3
- import { labelsWith } from '../../labels.js';
3
+ import { commentsEnglish, labelsOf } from '../../labels.js';
4
4
  import CommentsSidebar from './CommentsSidebar.svelte';
5
5
  import { CommentsController } from './CommentsController.svelte.js';
6
6
  const controllers = new WeakMap();
@@ -13,17 +13,16 @@ export const commentsController = (edytor) => controllers.get(edytor);
13
13
  * merges and that copy and cut leave behind; its comments live in the
14
14
  * client's store (the room's `threads` and `comments` tables). Open threads
15
15
  * are highlighted, and a sidebar beside the text (under it, on a narrow
16
- * screen) shows each one with its replies, a composer, Resolve and Re-open.
16
+ * screen) places a `card` for each one.
17
17
  */
18
18
  export const createCommentsPlugin = (options) => (edytor) => {
19
- const labels = labelsWith('comments', options.labels);
19
+ const labels = labelsOf(edytor, 'comments', commentsEnglish);
20
20
  const user = typeof options.user === 'string' ? { id: options.user } : options.user;
21
21
  const comments = new CommentsController(edytor, {
22
22
  client: options.client,
23
23
  user,
24
24
  users: options.users,
25
- onComment: options.onComment,
26
- labels
25
+ onComment: options.onComment
27
26
  });
28
27
  controllers.set(edytor, comments);
29
28
  return {
@@ -47,13 +46,16 @@ export const createCommentsPlugin = (options) => (edytor) => {
47
46
  onSelectionChange: () => comments.follow(),
48
47
  onEdytorAttached: () => {
49
48
  comments.connect();
50
- const sidebar = mount(CommentsSidebar, {
51
- target: edytor.overlay.layer,
52
- props: { edytor, comments, card: options.card }
53
- });
49
+ const { card, header } = options;
50
+ const sidebar = card &&
51
+ mount(CommentsSidebar, {
52
+ target: edytor.overlay.layer,
53
+ props: { edytor, comments, card, header }
54
+ });
54
55
  return () => {
55
56
  comments.destroy();
56
- void unmount(sidebar);
57
+ if (sidebar)
58
+ void unmount(sidebar);
57
59
  };
58
60
  }
59
61
  };
@@ -1,138 +1,27 @@
1
1
  <script lang="ts">
2
+ import type { Snippet } from 'svelte';
2
3
  import type { EquationEditor } from './equation.svelte.js';
3
4
 
4
5
  /**
5
6
  * The equation editor (`EquationEditor`), in the overlay under the edited
6
- * equation (Notion's): the TeX source in a field, KaTeX's error under it,
7
- * and Done. The equation itself is the preview: each keystroke writes it.
7
+ * equation (Notion's), centered under a block one: the plugin's `panel`
8
+ * snippet, placed. It takes the field's focus and keys through the
9
+ * controller's attachment (`field`).
8
10
  */
9
- let { editor, readonly }: { editor: EquationEditor; readonly: () => boolean } = $props();
11
+ let { editor, panel }: { editor: EquationEditor; panel: Snippet<[EquationEditor]> } = $props();
10
12
 
11
- const labels = $derived(editor.labels);
12
- let field = $state<HTMLTextAreaElement | null>(null);
13
-
14
- // The view turning readonly closes it.
15
- $effect(() => {
16
- if (readonly()) editor.lock();
17
- });
18
- // Opened: the field takes the focus, the caret at the end of the source.
19
- $effect(() => {
20
- if (!editor.target || !field) return;
21
- field.focus({ preventScroll: true });
22
- field.setSelectionRange(field.value.length, field.value.length);
23
- });
24
-
25
- const keydown = (event: KeyboardEvent) => {
26
- if (event.isComposing) return;
27
- // Shift+Enter is a newline in a block equation; Enter, or an inline one's, closes it.
28
- // The key is the field's: the editor's keys (Enter on the equation it then selects) never see it.
29
- if ((event.key === 'Enter' && !(event.shiftKey && editor.display)) || event.key === 'Escape') {
30
- event.preventDefault();
31
- event.stopPropagation();
32
- editor.close();
33
- }
34
- };
13
+ const place = $derived(editor.place);
35
14
  </script>
36
15
 
37
- <div role="presentation">
38
- {#if editor.target && editor.box}
39
- {@const box = editor.box}
40
- <div
41
- data-edytor-equation-editor
42
- role="dialog"
43
- aria-label={labels.editor}
44
- data-display={editor.display ? 'block' : 'inline'}
45
- style:left="{editor.display ? box.x + box.width / 2 : box.x}px"
46
- style:top="{box.y + box.height + 6}px"
47
- >
48
- <div data-edytor-equation-editor-row>
49
- <textarea
50
- bind:this={field}
51
- aria-label={labels.editor}
52
- placeholder={labels.placeholder}
53
- rows={editor.display ? 3 : 1}
54
- spellcheck="false"
55
- autocomplete="off"
56
- autocapitalize="off"
57
- value={editor.expression}
58
- oninput={(event) => editor.set(event.currentTarget.value)}
59
- onkeydown={keydown}
60
- onfocusout={editor.blurred}
61
- ></textarea>
62
- <button
63
- type="button"
64
- data-edytor-equation-done
65
- onmousedown={(event) => event.preventDefault()}
66
- onclick={() => editor.close()}>{labels.done} <span aria-hidden="true">↵</span></button
67
- >
68
- </div>
69
- {#if editor.error}
70
- <div data-edytor-equation-editor-error role="status">{editor.error}</div>
71
- {/if}
72
- </div>
73
- {/if}
74
- </div>
75
-
76
- <style>
77
- [data-edytor-equation-editor] {
78
- position: absolute;
79
- box-sizing: border-box;
80
- width: 400px;
81
- max-width: calc(100vw - 32px);
82
- padding: 8px;
83
- border-radius: 8px;
84
- background: var(--edytor-equation-editor-background, #fff);
85
- box-shadow:
86
- 0 0 0 1px rgba(15, 15, 15, 0.05),
87
- 0 3px 6px rgba(15, 15, 15, 0.1),
88
- 0 9px 24px rgba(15, 15, 15, 0.2);
89
- font-size: 14px;
90
- }
91
-
92
- [data-edytor-equation-editor][data-display='block'] {
93
- transform: translateX(-50%);
94
- }
95
-
96
- [data-edytor-equation-editor-row] {
97
- display: flex;
98
- gap: 8px;
99
- align-items: flex-start;
100
- }
101
-
102
- textarea {
103
- flex: 1;
104
- box-sizing: border-box;
105
- min-height: 32px;
106
- padding: 6px 8px;
107
- border: 0;
108
- border-radius: 4px;
109
- background: rgba(242, 241, 238, 0.6);
110
- box-shadow: inset 0 0 0 1px rgba(15, 15, 15, 0.1);
111
- font:
112
- 13px/1.5 ui-monospace,
113
- SFMono-Regular,
114
- Menlo,
115
- monospace;
116
- outline: 0;
117
- resize: vertical;
118
- }
119
-
120
- [data-edytor-equation-done] {
121
- flex: none;
122
- height: 32px;
123
- padding: 0 12px;
124
- border: 0;
125
- border-radius: 4px;
126
- background: rgb(35, 131, 226);
127
- color: #fff;
128
- font: inherit;
129
- font-weight: 500;
130
- cursor: pointer;
131
- }
132
-
133
- [data-edytor-equation-editor-error] {
134
- margin-top: 6px;
135
- color: rgb(212, 76, 71);
136
- font-size: 12px;
137
- }
138
- </style>
16
+ {#if place}
17
+ <div
18
+ data-edytor-equation-panel
19
+ data-display={editor.display ? 'block' : 'inline'}
20
+ style:position="absolute"
21
+ style:left="{place.left}px"
22
+ style:top="{place.top}px"
23
+ style:transform={editor.display ? 'translateX(-50%)' : undefined}
24
+ >
25
+ {@render panel(editor)}
26
+ </div>
27
+ {/if}
@@ -1,7 +1,8 @@
1
+ import type { Snippet } from 'svelte';
1
2
  import type { EquationEditor } from './equation.svelte.js';
2
3
  type $$ComponentProps = {
3
4
  editor: EquationEditor;
4
- readonly: () => boolean;
5
+ panel: Snippet<[EquationEditor]>;
5
6
  };
6
7
  declare const EquationEditor: import("svelte").Component<$$ComponentProps, {}, "">;
7
8
  type EquationEditor = ReturnType<typeof EquationEditor>;
@@ -8,32 +8,45 @@
8
8
  import type { Edytor } from '../../edytor.svelte.js';
9
9
  import { InlineBlock } from '../../block/inlineBlock.svelte.js';
10
10
  import { equationKinds } from '../../crdt/semantics.js';
11
- import { keywordsOf, labelsWith } from '../../labels.js';
12
- import { onPress } from '../../events/onFocus.js';
11
+ import { equationEnglish, keywordsOf, labelsOf } from '../../labels.js';
13
12
  import { id } from '../../utils.js';
14
13
  import EquationView from './EquationView.svelte';
15
14
  import EquationEditorPanel from './EquationEditor.svelte';
16
15
  import {
17
16
  EquationEditor,
18
17
  EquationRenderer,
19
- equationLabels,
20
18
  equationViews,
21
19
  expressionOf,
22
20
  parseEquation,
23
21
  type EquationData,
22
+ type EquationErrorPayload,
23
+ type EquationPlaceholderPayload,
24
24
  type EquationPluginOptions,
25
+ type EquationTarget,
25
26
  type KatexLike,
26
27
  type KatexLoader
27
28
  } from './equation.svelte.js';
29
+ import { katexLoaderOf } from './katex.js';
30
+ import { withRulesAndTriggers } from '../triggers/triggers.js';
28
31
 
29
- export type { EquationData, EquationPluginOptions, KatexLike, KatexLoader };
32
+ export type {
33
+ EquationData,
34
+ EquationEditor,
35
+ EquationErrorPayload,
36
+ EquationPlaceholderPayload,
37
+ EquationPluginOptions,
38
+ EquationTarget,
39
+ KatexLike,
40
+ KatexLoader
41
+ };
42
+ export { KATEX_CDN, KATEX_VERSION } from './katex.js';
30
43
 
31
44
  /** The inline equation's atom kind. */
32
45
  const INLINE = 'inlineEquation';
33
46
 
34
47
  /** The block that holds the caret or a text range in one block, when an atom may go there. */
35
48
  const textBlock = (edytor: Edytor) => {
36
- const { startText, endText } = edytor.selection.state;
49
+ const { startText, endText } = edytor.selection.textRange();
37
50
  const block = startText?.parent;
38
51
  if (!block || endText?.parent !== block || edytor.selection.value.kind !== 'text') return null;
39
52
  // Not in a code line (an island of lines holds text only).
@@ -50,15 +63,13 @@
50
63
  const block = textBlock(edytor);
51
64
  const view = equationViews.get(edytor);
52
65
  if (!block || !view || !edytor.dispatcher.permits()) return false;
53
- const { startText, endText, yStart, yEnd, isCollapsed } = edytor.selection.state;
66
+ const { startText, endText, yStart, yEnd } = edytor.selection.textRange();
67
+ const { isCollapsed } = edytor.selection.projection;
54
68
  const from = startText!.segStart + yStart;
55
69
  const atom = id('i');
56
70
  if (isCollapsed) {
57
- const after = block.addInlineBlock({
58
- offset: from,
59
- block: { id: atom, type: INLINE, data: { expression: '' } }
60
- });
61
- if (!after) return false;
71
+ const spec = { id: atom, type: INLINE, data: { expression: '' } };
72
+ if (edytor.insertInline(block.id, from, spec).status !== 'applied') return false;
62
73
  edytor.selection.setCaret({ block, offset: from + 1 });
63
74
  view.editor.open({ block: block.id, atom });
64
75
  return true;
@@ -79,10 +90,7 @@
79
90
  const { dispatcher, facade } = edytor;
80
91
  const removal = facade.prepare.deleteText(block.id, from, endText!.segStart + yEnd - from);
81
92
  const run = dispatcher.lead(removal, () =>
82
- block.addInlineBlock({
83
- offset: from,
84
- block: { id: atom, type: INLINE, data: { expression } }
85
- })
93
+ edytor.insertInline(block.id, from, { id: atom, type: INLINE, data: { expression } })
86
94
  );
87
95
  const written = run.taken && dispatcher.last?.status === 'applied';
88
96
  if (written) edytor.selection.setCaret({ block, offset: from + 1 });
@@ -92,14 +100,12 @@
92
100
  /** `$$E=mc^2$$` typed in text: an inline equation (Notion). */
93
101
  const dollars: InputRule = {
94
102
  find: /\$\$([^$\n]*[^$\s][^$\n]*)\$\$$/,
95
- replace: ([, tex], { block, from, caret, remove }) =>
103
+ replace: ([, tex], { edytor, block, from, caret, remove }) =>
96
104
  remove(() => {
97
- const after = block.addInlineBlock({
98
- offset: from,
99
- block: { type: INLINE, data: { expression: tex!.trim() } }
100
- });
101
- if (after) caret(from + 1);
102
- return !!after;
105
+ const atom = { type: INLINE, data: { expression: tex!.trim() } };
106
+ const written = edytor.insertInline(block.id, from, atom).status === 'applied';
107
+ if (written) caret(from + 1);
108
+ return written;
103
109
  })
104
110
  };
105
111
 
@@ -122,7 +128,8 @@
122
128
  /**
123
129
  * Equations (Notion's): a block equation (`equation`, void, its TeX in
124
130
  * `data.expression`) and an inline equation atom (`inlineEquation`), both
125
- * drawn by KaTeX, which `katex` loads the first time an equation shows. A
131
+ * drawn by KaTeX, loaded the first time an equation shows in a browser:
132
+ * from jsDelivr by default, or as `katex` says (a URL, your loader). A
126
133
  * click on one, or Enter on a selected one, opens its TeX source in an
127
134
  * editor under it; the equation is the live preview. "Block equation"
128
135
  * and "Inline equation" are slash commands, `$$…$$` typed in text is an
@@ -133,110 +140,107 @@
133
140
  export const createEquationPlugin =
134
141
  (options: EquationPluginOptions = {}): Plugin =>
135
142
  (edytor) => {
136
- const labels = labelsWith('equation', options.labels);
137
- equationLabels.claim(edytor, labels);
138
- const renderer = new EquationRenderer(options.katex, options.macros);
143
+ const labels = labelsOf(edytor, 'equation', equationEnglish);
144
+ const renderer = new EquationRenderer(katexLoaderOf(options.katex), options.macros);
139
145
  // The records read with no view (`plugin(undefined)`) keep no state.
140
146
  if (edytor && !equationViews.has(edytor))
141
147
  equationViews.set(edytor, {
142
148
  renderer,
143
- editor: new EquationEditor(edytor, renderer, labels)
149
+ editor: new EquationEditor(edytor, renderer),
150
+ placeholder: options.placeholder,
151
+ error: options.error
144
152
  });
145
153
  const owns = () => equationViews.get(edytor)?.renderer === renderer;
146
- return {
147
- onEdytorAttached: ({ node }) => {
148
- const view = equationViews.get(edytor);
149
- if (!view || !owns()) return;
150
- const { editor } = view;
151
- const offPress = onPress(edytor, node.ownerDocument, editor.pressed, true);
152
- const unmount = edytor.overlay.mount(
153
- EquationEditorPanel,
154
- { editor, readonly: () => edytor.readonly },
155
- 'edytor-equation-editor-host',
156
- // Above the block handles (5), as the image chrome.
157
- 7,
158
- editor.measure
159
- );
160
- return () => {
161
- offPress();
162
- unmount();
163
- editor.close(false);
164
- };
165
- },
166
- // A block equation this view just created empty (a slash pick, Turn into) opens its editor.
167
- onAfterOperation: (change) => {
168
- const view = equationViews.get(edytor);
169
- if (!view || !owns() || edytor.dispatcher.last?.status !== 'applied') return;
170
- const created =
171
- change.operation === 'setBlock' && change.payload.value.type === 'equation'
172
- ? change.block
173
- : change.operation === 'insertBlockAfter' && change.payload.block.type === 'equation'
174
- ? change.block.nextBlock
175
- : change.operation === 'insertBlockBefore' &&
176
- change.payload.block.type === 'equation'
177
- ? change.block.previousBlock
178
- : null;
179
- if (created?.type === 'equation' && !expressionOf(created.data))
180
- view.editor.open({ block: created.id });
181
- },
182
- hotkeys: {
183
- 'mod+shift+e': ({ prevent }) => {
184
- if (textBlock(edytor)) prevent(() => insertInline(edytor));
154
+ return withRulesAndTriggers(
155
+ edytor,
156
+ {
157
+ onEdytorAttached: ({ node }) => {
158
+ const view = equationViews.get(edytor);
159
+ if (!view || !owns()) return;
160
+ const { editor } = view;
161
+ const { panel } = options;
162
+ return panel && editor.panel.mount(node, EquationEditorPanel, { editor, panel });
185
163
  },
186
- enter: ({ prevent }) => {
187
- const target = selectedEquation(edytor);
188
- if (target && edytor.dispatcher.permits())
189
- prevent(() => equationViews.get(edytor)?.editor.open(target));
190
- }
191
- },
192
- commands: [
193
- {
194
- id: 'equation.inline',
195
- label: labels.inline,
196
- icon: '√x',
197
- keywords: keywordsOf(
198
- 'equation.inline',
199
- ['math', 'tex', 'latex', 'katex', 'formula', 'inline'],
200
- options.keywords
201
- ),
202
- group: 'Inline',
203
- isEnabled: (view) => textBlock(view) !== null,
204
- run: () => insertInline(edytor)
205
- }
206
- ],
207
- inputRules: [dollars],
208
- blocks: {
209
- equation: {
210
- ...equationKinds.equation,
211
- snippet: equation,
212
- empty: { content: [], children: [] },
213
- presets: [
214
- {
215
- label: labels.block,
216
- icon: '√x',
217
- keywords: keywordsOf(
218
- 'block.equation',
219
- ['math', 'tex', 'latex', 'katex', 'formula', 'equation'],
220
- options.keywords
221
- ),
222
- group: 'Advanced blocks'
223
- }
224
- ],
225
- html: (block) =>
226
- `<div data-edytor-equation>${renderer.mathml(expressionOf(block.data), true)}</div>`,
227
- plain: (block) => expressionOf(block.data),
228
- parse: (element) => parseEquation(element, true)
164
+ // A block equation this view just created empty (a slash pick, Turn into) opens its editor.
165
+ onAfterOperation: (change) => {
166
+ const view = equationViews.get(edytor);
167
+ if (!view || !owns() || edytor.dispatcher.last?.status !== 'applied') return;
168
+ const ids =
169
+ change.operation === 'setBlock'
170
+ ? [change.block.id]
171
+ : change.operation === 'insertBlocks'
172
+ ? (change.effect?.creates ?? [])
173
+ : [];
174
+ const created = ids
175
+ .map((id) => edytor.idToBlock.get(id))
176
+ .find((block) => block?.type === 'equation');
177
+ if (created && !expressionOf(created.data)) view.editor.open({ block: created.id });
178
+ },
179
+ hotkeys: {
180
+ 'mod+shift+e': ({ prevent }) => {
181
+ if (textBlock(edytor)) prevent(() => insertInline(edytor));
182
+ },
183
+ enter: ({ prevent }) => {
184
+ const target = selectedEquation(edytor);
185
+ if (target && edytor.dispatcher.permits())
186
+ prevent(() => equationViews.get(edytor)?.editor.open(target));
187
+ }
188
+ },
189
+ commands: [
190
+ {
191
+ id: 'equation.inline',
192
+ label: labels.inline,
193
+ icon: '√x',
194
+ keywords: keywordsOf(edytor, 'equation.inline', [
195
+ 'math',
196
+ 'tex',
197
+ 'latex',
198
+ 'katex',
199
+ 'formula',
200
+ 'inline'
201
+ ]),
202
+ group: 'Inline',
203
+ isEnabled: (view) => textBlock(view) !== null,
204
+ run: () => insertInline(edytor)
205
+ }
206
+ ],
207
+ blocks: {
208
+ equation: {
209
+ ...equationKinds.equation,
210
+ snippet: equation,
211
+ empty: { content: [], children: [] },
212
+ presets: [
213
+ {
214
+ label: labels.block,
215
+ icon: '√x',
216
+ keywords: keywordsOf(edytor, 'block.equation', [
217
+ 'math',
218
+ 'tex',
219
+ 'latex',
220
+ 'katex',
221
+ 'formula',
222
+ 'equation'
223
+ ]),
224
+ group: 'Advanced blocks'
225
+ }
226
+ ],
227
+ html: (block) =>
228
+ `<div data-edytor-equation>${renderer.mathml(expressionOf(block.data), true)}</div>`,
229
+ plain: (block) => expressionOf(block.data),
230
+ parse: (element) => parseEquation(element, true)
231
+ }
232
+ },
233
+ inlineBlocks: {
234
+ [INLINE]: {
235
+ snippet: inlineEquation,
236
+ plain: (data) => expressionOf(data),
237
+ html: (data) => renderer.mathml(expressionOf(data), false),
238
+ parse: (element) => parseEquation(element, false)
239
+ }
229
240
  }
230
241
  },
231
- inlineBlocks: {
232
- [INLINE]: {
233
- snippet: inlineEquation,
234
- plain: (data) => expressionOf(data),
235
- html: (data) => renderer.mathml(expressionOf(data), false),
236
- parse: (element) => parseEquation(element, false)
237
- }
238
- }
239
- };
242
+ { inputRules: [dollars] }
243
+ );
240
244
  };
241
245
  </script>
242
246
 
@@ -271,58 +275,9 @@
271
275
  {/snippet}
272
276
 
273
277
  <style>
278
+ /* A wide equation scrolls in its block; its look is a theme's. */
274
279
  [data-edytor-equation] {
275
- padding: 4px 0;
276
- border-radius: 4px;
277
280
  overflow-x: auto;
278
281
  overflow-y: hidden;
279
- text-align: center;
280
- cursor: pointer;
281
- }
282
-
283
- [data-edytor-equation]:hover,
284
- [data-edytor-equation][data-editing='true'] {
285
- background: rgba(55, 53, 47, 0.06);
286
- }
287
-
288
- [data-edytor-inline-equation] {
289
- border-radius: 3px;
290
- cursor: pointer;
291
- }
292
-
293
- [data-edytor-inline-equation][data-editing='true'],
294
- [data-edytor-inline-equation][data-selected='true'] {
295
- background: rgba(35, 131, 226, 0.14);
296
- }
297
-
298
- [data-edytor-equation] :global([data-edytor-equation-placeholder]),
299
- [data-edytor-inline-equation] :global([data-edytor-equation-placeholder]) {
300
- color: rgba(55, 53, 47, 0.5);
301
- }
302
-
303
- [data-edytor-equation] :global([data-edytor-equation-placeholder]) {
304
- display: flex;
305
- align-items: center;
306
- gap: 8px;
307
- padding: 8px 12px;
308
- border-radius: 4px;
309
- background: rgba(242, 241, 238, 0.6);
310
- text-align: left;
311
- }
312
-
313
- :global([data-edytor-equation-icon]) {
314
- font-style: italic;
315
- margin-right: 4px;
316
- }
317
-
318
- :global([data-edytor-equation-error]),
319
- :global([data-edytor-equation-source]) {
320
- font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
321
- font-size: 0.9em;
322
- white-space: pre-wrap;
323
- }
324
-
325
- :global([data-edytor-equation-error]) {
326
- color: rgb(212, 76, 71);
327
282
  }
328
283
  </style>
@@ -1,10 +1,12 @@
1
1
  import type { Plugin } from '../../plugins.js';
2
- import { type EquationData, type EquationPluginOptions, type KatexLike, type KatexLoader } from './equation.svelte.js';
3
- export type { EquationData, EquationPluginOptions, KatexLike, KatexLoader };
2
+ import { EquationEditor, type EquationData, type EquationErrorPayload, type EquationPlaceholderPayload, type EquationPluginOptions, type EquationTarget, type KatexLike, type KatexLoader } from './equation.svelte.js';
3
+ export type { EquationData, EquationEditor, EquationErrorPayload, EquationPlaceholderPayload, EquationPluginOptions, EquationTarget, KatexLike, KatexLoader };
4
+ export { KATEX_CDN, KATEX_VERSION } from './katex.js';
4
5
  /**
5
6
  * Equations (Notion's): a block equation (`equation`, void, its TeX in
6
7
  * `data.expression`) and an inline equation atom (`inlineEquation`), both
7
- * drawn by KaTeX, which `katex` loads the first time an equation shows. A
8
+ * drawn by KaTeX, loaded the first time an equation shows in a browser:
9
+ * from jsDelivr by default, or as `katex` says (a URL, your loader). A
8
10
  * click on one, or Enter on a selected one, opens its TeX source in an
9
11
  * editor under it; the equation is the live preview. "Block equation"
10
12
  * and "Inline equation" are slash commands, `$$…$$` typed in text is an