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,12 +1,10 @@
1
+ <svelte:options runes />
2
+
1
3
  <script module lang="ts">
2
4
  import type { Snippet } from 'svelte';
3
- import type {
4
- InlineBlockSnippetPayload,
5
- Plugin,
6
- TriggerContext,
7
- TriggerItemPayload
8
- } from '../../plugins.js';
9
- import { labelsWith, type PartialLabels } from '../../labels.js';
5
+ import type { InlineBlockSnippetPayload, Plugin, TriggerContext } from '../../plugins.js';
6
+ import type { TriggerMenuController } from '../triggers/TriggerController.svelte.js';
7
+ import { withRulesAndTriggers } from '../triggers/triggers.js';
10
8
 
11
9
  /** A person the mention menu offers: what your app's directory answers. */
12
10
  export type MentionItem = {
@@ -31,145 +29,70 @@
31
29
  ) => readonly MentionItem[] | Promise<readonly MentionItem[]>;
32
30
  /** The character that opens the menu (default `@`). */
33
31
  char?: string;
34
- /** Replace each row of the menu. */
35
- item?: Snippet<[TriggerItemPayload<MentionItem>]>;
36
- /** The words the menu shows and says, over the English ones. */
37
- labels?: PartialLabels<'mention'>;
32
+ /**
33
+ * The menu's markup and its words; it renders while `controller.isOpen`,
34
+ * at the caret (without it, nothing shows). Keep its ARIA with `{@attach
35
+ * controller.popup}` on the list (name it) and
36
+ * `{...controller.option(index)}` on each row.
37
+ */
38
+ menu?: Snippet<[TriggerMenuController<MentionItem>]>;
38
39
  };
39
40
 
40
- /** An avatar's URL when it is one an `img` may load (http, https, a data image), else nothing. */
41
- const avatarOf = (src: unknown) =>
42
- typeof src === 'string' && /^(https?:|data:image\/)/i.test(src.trim()) ? src : undefined;
43
-
44
41
  /**
45
42
  * People mentions, as in Notion: `@` opens a menu of the people your app's
46
43
  * `items(query)` answers; picking one replaces `@query` with a `mention`
47
44
  * atom (`{ id, label }`) and puts the caret after it, in one undo step.
48
45
  */
49
- export const createMentionPlugin = (options: MentionPluginOptions): Plugin => {
50
- const labels = labelsWith('mention', options.labels);
51
- return () => ({
52
- inlineBlocks: {
53
- mention: {
54
- snippet: mention,
55
- plain: (data) => {
56
- const label = (data as Partial<MentionData> | undefined)?.label;
57
- return typeof label === 'string' && label ? `@${label}` : '@';
58
- }
59
- }
60
- },
61
- triggers: [
46
+ export const createMentionPlugin =
47
+ (options: MentionPluginOptions): Plugin =>
48
+ (edytor) =>
49
+ withRulesAndTriggers(
50
+ edytor,
62
51
  {
63
- char: options.char ?? '@',
64
- name: labels.menu,
65
- empty: labels.noResults,
66
- searching: labels.searching,
67
- items: (query, ctx) => options.items(query, ctx),
68
- label: (person: MentionItem) => person.label,
69
- key: (person: MentionItem) => person.id,
70
- item: options.item ?? row,
71
- onPick: (person: MentionItem, { block, from, caret }) => {
72
- const data: MentionData = { id: person.id, label: person.label };
73
- const after = block.addInlineBlock({ offset: from, block: { type: 'mention', data } });
74
- if (after) caret(from + 1);
75
- return !!after;
52
+ inlineBlocks: {
53
+ mention: {
54
+ snippet: mention,
55
+ plain: (data) => {
56
+ const label = (data as Partial<MentionData> | undefined)?.label;
57
+ return typeof label === 'string' && label ? `@${label}` : '@';
58
+ }
59
+ }
76
60
  }
61
+ },
62
+ {
63
+ triggers: [
64
+ {
65
+ char: options.char ?? '@',
66
+ items: (query, ctx) => options.items(query, ctx),
67
+ label: (person: MentionItem) => person.label,
68
+ key: (person: MentionItem) => person.id,
69
+ menu: options.menu,
70
+ onPick: (person: MentionItem, { edytor, block, from, caret }) => {
71
+ const data: MentionData = { id: person.id, label: person.label };
72
+ const written =
73
+ edytor.insertInline(block.id, from, { type: 'mention', data }).status ===
74
+ 'applied';
75
+ if (written) caret(from + 1);
76
+ return written;
77
+ }
78
+ }
79
+ ]
77
80
  }
78
- ]
79
- });
80
- };
81
+ );
81
82
  </script>
82
83
 
83
84
  {#snippet mention({ block }: InlineBlockSnippetPayload<Partial<MentionData>>)}
84
85
  <span
85
86
  class="edytor-mention"
86
- class:selected={block.selected}
87
+ data-selected={block.selected ? 'true' : undefined}
87
88
  data-edytor-mention
88
89
  data-mention-id={block.data.id}>@{block.data.label ?? ''}</span
89
90
  >
90
91
  {/snippet}
91
92
 
92
- {#snippet row({ item, id, selected, pick, select }: TriggerItemPayload<MentionItem>)}
93
- <button
94
- type="button"
95
- class="edytor-mention-row"
96
- {id}
97
- role="option"
98
- tabindex="-1"
99
- aria-selected={selected}
100
- data-selected={selected}
101
- data-testid="trigger-menu-item"
102
- onmousemove={select}
103
- onclick={pick}
104
- >
105
- <span class="avatar" aria-hidden="true">
106
- {#if avatarOf(item.avatar)}
107
- <img src={avatarOf(item.avatar)} alt="" />
108
- {:else}
109
- {item.label.trim().charAt(0).toUpperCase()}
110
- {/if}
111
- </span>
112
- <span class="name">{item.label}</span>
113
- {#if item.description}<span class="description">{item.description}</span>{/if}
114
- </button>
115
- {/snippet}
116
-
117
93
  <style>
94
+ /* One unit, on one line; its look is a theme's. */
118
95
  .edytor-mention {
119
- color: rgba(55, 53, 47, 0.65);
120
- font-weight: 500;
121
- white-space: nowrap;
122
- }
123
- .edytor-mention.selected {
124
- border-radius: 3px;
125
- background: rgba(35, 131, 226, 0.14);
126
- }
127
- .edytor-mention-row {
128
- display: flex;
129
- align-items: center;
130
- gap: 8px;
131
- width: 100%;
132
- min-height: 32px;
133
- padding: 4px 8px;
134
- border: 0;
135
- border-radius: 6px;
136
- background: none;
137
- color: inherit;
138
- font: inherit;
139
- text-align: left;
140
- cursor: pointer;
141
- }
142
- .edytor-mention-row[data-selected='true'] {
143
- background: rgba(33, 27, 23, 0.06);
144
- }
145
- .avatar {
146
- display: grid;
147
- flex: none;
148
- place-items: center;
149
- width: 20px;
150
- height: 20px;
151
- overflow: hidden;
152
- border-radius: 50%;
153
- background: rgba(84, 72, 49, 0.12);
154
- font-size: 11px;
155
- font-weight: 600;
156
- }
157
- .avatar img {
158
- width: 100%;
159
- height: 100%;
160
- object-fit: cover;
161
- }
162
- .name {
163
- overflow: hidden;
164
- text-overflow: ellipsis;
165
- white-space: nowrap;
166
- }
167
- .description {
168
- margin-left: auto;
169
- overflow: hidden;
170
- color: #73726e;
171
- font-size: 12px;
172
- text-overflow: ellipsis;
173
96
  white-space: nowrap;
174
97
  }
175
98
  </style>
@@ -1,6 +1,6 @@
1
1
  import type { Snippet } from 'svelte';
2
- import type { Plugin, TriggerContext, TriggerItemPayload } from '../../plugins.js';
3
- import { type PartialLabels } from '../../labels.js';
2
+ import type { Plugin, TriggerContext } from '../../plugins.js';
3
+ import type { TriggerMenuController } from '../triggers/TriggerController.svelte.js';
4
4
  /** A person the mention menu offers: what your app's directory answers. */
5
5
  export type MentionItem = {
6
6
  /** The person's id in your app: stored in the atom. */
@@ -22,10 +22,13 @@ export type MentionPluginOptions = {
22
22
  items: (query: string, ctx: TriggerContext) => readonly MentionItem[] | Promise<readonly MentionItem[]>;
23
23
  /** The character that opens the menu (default `@`). */
24
24
  char?: string;
25
- /** Replace each row of the menu. */
26
- item?: Snippet<[TriggerItemPayload<MentionItem>]>;
27
- /** The words the menu shows and says, over the English ones. */
28
- labels?: PartialLabels<'mention'>;
25
+ /**
26
+ * The menu's markup and its words; it renders while `controller.isOpen`,
27
+ * at the caret (without it, nothing shows). Keep its ARIA with `{@attach
28
+ * controller.popup}` on the list (name it) and
29
+ * `{...controller.option(index)}` on each row.
30
+ */
31
+ menu?: Snippet<[TriggerMenuController<MentionItem>]>;
29
32
  };
30
33
  /**
31
34
  * People mentions, as in Notion: `@` opens a menu of the people your app's
@@ -33,21 +36,6 @@ export type MentionPluginOptions = {
33
36
  * atom (`{ id, label }`) and puts the caret after it, in one undo step.
34
37
  */
35
38
  export declare const createMentionPlugin: (options: MentionPluginOptions) => Plugin;
36
- 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> {
37
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
38
- $$bindings?: Bindings;
39
- } & Exports;
40
- (internal: unknown, props: {
41
- $$events?: Events;
42
- $$slots?: Slots;
43
- }): Exports & {
44
- $set?: any;
45
- $on?: any;
46
- };
47
- z_$$bindings?: Bindings;
48
- }
49
- declare const MentionPlugin: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
50
- [evt: string]: CustomEvent<any>;
51
- }, {}, {}, string>;
52
- type MentionPlugin = InstanceType<typeof MentionPlugin>;
39
+ declare const MentionPlugin: import("svelte").Component<Record<string, never>, {}, "">;
40
+ type MentionPlugin = ReturnType<typeof MentionPlugin>;
53
41
  export default MentionPlugin;
@@ -2,12 +2,15 @@
2
2
  import { getContext, untrack } from 'svelte';
3
3
  import type { Block } from '../../block/block.svelte.js';
4
4
  import type { Edytor } from '../../edytor.svelte.js';
5
+ import { labelsOf, pageEnglish } from '../../labels.js';
6
+ import { attach, keepSelection } from '../chrome.js';
5
7
  import {
6
8
  pageHref,
7
9
  pageIdOf,
8
- pageLabels,
10
+ pageOptions,
9
11
  pageTitleOf,
10
12
  storePageTitle,
13
+ type PageBlockLinkPayload,
11
14
  type PagePluginOptions
12
15
  } from './page.js';
13
16
 
@@ -16,7 +19,7 @@
16
19
  * which open the page. The title is your `title(pageId)`'s answer while it
17
20
  * gives one (a reactive read follows renames), else the one the block
18
21
  * stores; a different answer is stored, outside the history, by a view
19
- * that may write.
22
+ * that may write. The app's `link` snippet draws it, else this markup.
20
23
  */
21
24
  let {
22
25
  data,
@@ -28,8 +31,10 @@
28
31
  handle: Block | undefined;
29
32
  options: PagePluginOptions;
30
33
  } = $props();
31
- /** The view's words (a suggestion's preview, with no handle, speaks them too). */
32
- const labels = pageLabels.of(getContext<Edytor>('edytor'));
34
+ /** The view's words and markup (a suggestion's preview, with no handle, has them too). */
35
+ const view = getContext<Edytor>('edytor');
36
+ const labels = labelsOf(view, 'page', pageEnglish);
37
+ const snippet = pageOptions.get(view)?.link;
33
38
 
34
39
  const pageId = $derived(pageIdOf(data.pageId));
35
40
  const stored = $derived(pageTitleOf(data.title));
@@ -86,44 +91,55 @@
86
91
  const aux = (event: MouseEvent) => {
87
92
  if (event.button === 1) open(event);
88
93
  };
94
+ const openable = $derived(Boolean(pageId && options.open));
95
+
96
+ const payload: PageBlockLinkPayload = {
97
+ get block() {
98
+ return handle;
99
+ },
100
+ get pageId() {
101
+ return pageId;
102
+ },
103
+ get title() {
104
+ return title;
105
+ },
106
+ get label() {
107
+ return title ?? labels.untitled;
108
+ },
109
+ get href() {
110
+ return href;
111
+ },
112
+ get openable() {
113
+ return openable;
114
+ },
115
+ open: (newTab = false) => {
116
+ if (pageId && options.open) options.open(pageId, { newTab });
117
+ },
118
+ get control() {
119
+ const on = { click: open, auxclick: aux };
120
+ return href
121
+ ? attach({ 'data-edytor-page-link': '', draggable: 'false' }, on)
122
+ : attach(
123
+ { 'data-edytor-page-link': '', disabled: !openable },
124
+ { ...on, mousedown: keepSelection }
125
+ );
126
+ }
127
+ };
89
128
  </script>
90
129
 
130
+ {#if snippet}
131
+ {@render snippet(payload)}
132
+ {:else if href}
133
+ <a {href} data-edytor-page-link draggable="false" {@attach payload.control}>{@render label()}</a>
134
+ {:else}
135
+ <button type="button" data-edytor-page-link disabled={!openable} {@attach payload.control}
136
+ >{@render label()}</button
137
+ >
138
+ {/if}
139
+
91
140
  {#snippet label()}
92
141
  <span data-edytor-page-icon aria-hidden="true"></span><span
93
142
  data-edytor-page-title
94
- data-untitled={title ? undefined : 'true'}>{title ?? labels.untitled}</span
143
+ data-untitled={title ? undefined : 'true'}>{payload.label}</span
95
144
  >
96
145
  {/snippet}
97
-
98
- {#if href}
99
- <a data-edytor-page-link {href} draggable="false" onclick={open} onauxclick={aux}
100
- >{@render label()}</a
101
- >
102
- {:else}
103
- <button
104
- type="button"
105
- data-edytor-page-link
106
- disabled={!pageId || !options.open}
107
- onmousedown={(event) => event.preventDefault()}
108
- onclick={open}
109
- onauxclick={aux}>{@render label()}</button
110
- >
111
- {/if}
112
-
113
- <style>
114
- /* The link's structure, at zero specificity (`:where`); a theme draws it (`themes/notion.css`). */
115
- :global(:where([data-edytor-page-link])) {
116
- display: flex;
117
- align-items: center;
118
- gap: 6px;
119
- margin: 0;
120
- padding: 0;
121
- border: 0;
122
- background: none;
123
- color: inherit;
124
- font: inherit;
125
- text-align: start;
126
- text-decoration: none;
127
- cursor: pointer;
128
- }
129
- </style>
@@ -1,16 +1,20 @@
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 { pageKinds } from '../../crdt/semantics.js';
5
4
  import { convertToKind, type KindRow } from '../../kinds.js';
6
- import { keywordsOf, labelsWith } from '../../labels.js';
5
+ import { pageEnglish, keywordsOf, labelsOf } from '../../labels.js';
7
6
  import { getSelectedBlocksInDocumentOrder } from '../../selection/replaceSelection.js';
8
7
  import PageLink from './PageLink.svelte';
9
- import { pageHtml, pageIdOf, pageLabels, pageTitleOf, type PagePluginOptions } from './page.js';
8
+ import {
9
+ pageHtml,
10
+ pageIdOf,
11
+ pageTitleOf,
12
+ pageOptions as optionsOf,
13
+ type PageBlockLinkPayload,
14
+ type PagePluginOptions
15
+ } from './page.js';
10
16
 
11
- export type { PagePluginOptions };
12
-
13
- const optionsOf = new WeakMap<Edytor, PagePluginOptions>();
17
+ export type { PageBlockLinkPayload, PagePluginOptions };
14
18
 
15
19
  /**
16
20
  * Notion's subpage block: a `page` block links to another document by
@@ -37,9 +41,8 @@
37
41
  (edytor) => {
38
42
  // First wins, as for the kind: a second listing never replaces it.
39
43
  if (!optionsOf.has(edytor)) optionsOf.set(edytor, options);
40
- pageLabels.claim(edytor, labelsWith('page', options.labels));
41
44
  const own = optionsOf.get(edytor)!;
42
- const labels = pageLabels.of(edytor);
45
+ const labels = labelsOf(edytor, 'page', pageEnglish);
43
46
  const { create } = own;
44
47
  return {
45
48
  hotkeys: {
@@ -77,16 +80,18 @@
77
80
  id: 'page.new',
78
81
  label: labels.page,
79
82
  icon: '📄',
80
- keywords: keywordsOf(
81
- 'page.new',
82
- ['subpage', 'new page', 'document', 'link'],
83
- own.keywords
84
- ),
83
+ keywords: keywordsOf(edytor, 'page.new', [
84
+ 'subpage',
85
+ 'new page',
86
+ 'document',
87
+ 'link'
88
+ ]),
85
89
  group: 'Basic blocks',
86
90
  // Asked of the view given (a `+`'s menu asks it of the block it adds).
87
- isEnabled: (view = edytor) => Boolean(view.selection.state.startBlock?.convertible),
91
+ isEnabled: (view = edytor) =>
92
+ Boolean(view.selection.textRange().startText?.parent.convertible),
88
93
  run: () => {
89
- const block = edytor.selection.state.startBlock;
94
+ const block = edytor.selection.textRange().startText?.parent;
90
95
  if (!block?.convertible || !edytor.dispatcher.permits()) return false;
91
96
  const made = create();
92
97
  const { pageId: raw, title: named } =
@@ -114,9 +119,6 @@
114
119
  : []
115
120
  };
116
121
  };
117
-
118
- /** The page block without a way to open, name or create pages: a block showing its stored title. */
119
- export const pagePlugin = createPagePlugin();
120
122
  </script>
121
123
 
122
124
  {#snippet page({ block }: BlockSnippetPayload<Record<string, unknown>>)}
@@ -1,6 +1,6 @@
1
1
  import type { Plugin } from '../../plugins.js';
2
- import { type PagePluginOptions } from './page.js';
3
- export type { PagePluginOptions };
2
+ import { type PageBlockLinkPayload, type PagePluginOptions } from './page.js';
3
+ export type { PageBlockLinkPayload, PagePluginOptions };
4
4
  /**
5
5
  * Notion's subpage block: a `page` block links to another document by
6
6
  * id (`data.pageId`), and shows its title (`data.title`, the cache your
@@ -22,8 +22,6 @@ export type { PagePluginOptions };
22
22
  * ```
23
23
  */
24
24
  export declare const createPagePlugin: (options?: PagePluginOptions) => Plugin;
25
- /** The page block without a way to open, name or create pages: a block showing its stored title. */
26
- export declare const pagePlugin: Plugin;
27
25
  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> {
28
26
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
29
27
  $$bindings?: Bindings;
@@ -1,5 +1,6 @@
1
+ import type { Snippet } from 'svelte';
1
2
  import type { Block } from '../../block/block.svelte.js';
2
- import { type PartialLabels } from '../../labels.js';
3
+ import type { Attachment } from 'svelte/attachments';
3
4
  /** The page plugin's options: how your app opens, names, links and creates pages. */
4
5
  export type PagePluginOptions = {
5
6
  /**
@@ -30,16 +31,41 @@ export type PagePluginOptions = {
30
31
  pageId: string;
31
32
  title?: string;
32
33
  } | null | undefined;
33
- /** The words the block and its command show, over the English ones. */
34
- labels?: PartialLabels<'page'>;
35
- /** The slash menu's keywords of the "Page" command (`page.new`), which replace its own. */
36
- keywords?: Partial<Record<string, string[]>>;
34
+ /**
35
+ * The block's link to its page (default: Notion's row, a page icon and
36
+ * the title). Give an `a` (`href={link.href}`) when `link.href` is set,
37
+ * else a `button`, `{@attach link.control}`: a click opens the page
38
+ * (`open`), a modified or middle click in a new tab. The first page plugin listed in a view
39
+ * gives it.
40
+ */
41
+ link?: Snippet<[PageBlockLinkPayload]>;
37
42
  };
38
- /** Each view's page labels: the first page plugin listed claims them, as its kind. */
39
- export declare const pageLabels: {
40
- claim: (view: object | undefined, labels: import("../../labels.js").PageLabels) => void;
41
- of: (view: object | undefined) => import("../../labels.js").PageLabels;
43
+ /** What a page block's `link` snippet receives: the page it links to. */
44
+ export type PageBlockLinkPayload = {
45
+ /** The page block; `undefined` in a suggestion's preview (it opens nothing). */
46
+ block: Block | undefined;
47
+ /** The page's id (`null`: the block names none). */
48
+ pageId: string | null;
49
+ /** Its title: your `title` lookup's answer, else the one the block stores. */
50
+ title: string | undefined;
51
+ /** What it reads: its title, else the view's `page.untitled`. */
52
+ label: string;
53
+ /** The page's URL (`href`), if any: draw an `a`. */
54
+ href: string | undefined;
55
+ /** A click may open it: it names a page and the plugin has `open`. */
56
+ openable: boolean;
57
+ /** Open the page (`open`), in a new tab when `newTab`. */
58
+ open: (newTab?: boolean) => void;
59
+ /**
60
+ * The link's attachment (`{@attach link.control}`): its marker
61
+ * (`data-edytor-page-link`), the click and middle click that open it; on
62
+ * an `a`, `draggable="false"`; on a `button`, `disabled` when it cannot
63
+ * open and a press that keeps the editor's selection.
64
+ */
65
+ control: Attachment<HTMLElement>;
42
66
  };
67
+ /** Each view's page options (the first page plugin listed sets them). */
68
+ export declare const pageOptions: WeakMap<object, PagePluginOptions>;
43
69
  /** A stored page id: a non-empty string of at most 256 characters (a room id's bounds), else `null`. */
44
70
  export declare const pageIdOf: (value: unknown) => string | null;
45
71
  /** A title as a page block stores and shows it: trimmed, at most 300 characters, never empty. */
@@ -1,7 +1,7 @@
1
- import { viewLabels } from '../../labels.js';
2
1
  import { sanitizeLinkHref } from '../richtext/richTextOperations.js';
3
- /** Each view's page labels: the first page plugin listed claims them, as its kind. */
4
- export const pageLabels = viewLabels('page');
2
+ import { escapeHtml } from '../../clipboard/serializeClipboardFragment.js';
3
+ /** Each view's page options (the first page plugin listed sets them). */
4
+ export const pageOptions = new WeakMap();
5
5
  /** A stored page id: a non-empty string of at most 256 characters (a room id's bounds), else `null`. */
6
6
  export const pageIdOf = (value) => typeof value === 'string' && value.length > 0 && value.length <= 256 ? value : null;
7
7
  /** A title as a page block stores and shows it: trimmed, at most 300 characters, never empty. */
@@ -24,7 +24,6 @@ export const storePageTitle = (block, pageId, title) => {
24
24
  return;
25
25
  edytor.doc.transact(() => edytor.facade.apply(edytor.facade.prepare.patchData(id, [{ path: ['title'], value: title }])), TITLE_ORIGIN);
26
26
  };
27
- const escapeHtml = (value) => value.replace(/[&<>"']/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' })[c]);
28
27
  /** `options.href`'s URL for `pageId`, through the link sanitizer (no script URL), else `undefined`. */
29
28
  export const pageHref = (options, pageId) => (pageId && options.href && sanitizeLinkHref(options.href(pageId))) || undefined;
30
29
  /**