edytor 1.0.0-rc.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (667) hide show
  1. package/README.md +21 -39
  2. package/dist/block/block.svelte.d.ts +11 -84
  3. package/dist/block/block.svelte.js +30 -134
  4. package/dist/block/colors.d.ts +0 -9
  5. package/dist/block/colors.js +1 -18
  6. package/dist/block/contentRange.d.ts +5 -1
  7. package/dist/block/contentRange.js +15 -16
  8. package/dist/block/inlineBlock.svelte.d.ts +11 -9
  9. package/dist/block/inlineBlock.svelte.js +18 -21
  10. package/dist/clipboard/createClipboardFragment.js +22 -64
  11. package/dist/clipboard/fragmentData.js +17 -42
  12. package/dist/clipboard/htmlFlow.js +7 -7
  13. package/dist/clipboard/insertClipboardFragment.js +5 -4
  14. package/dist/clipboard/moveText.js +16 -8
  15. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  16. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  17. package/dist/cloudflare/DocumentRoom.d.ts +4 -17
  18. package/dist/cloudflare/DocumentRoom.js +3 -5
  19. package/dist/cloudflare/move.d.ts +1 -18
  20. package/dist/cloudflare/move.js +2 -48
  21. package/dist/cloudflare/room/admission.d.ts +1 -60
  22. package/dist/cloudflare/room/admission.js +25 -29
  23. package/dist/cloudflare/room/comments.d.ts +1 -3
  24. package/dist/cloudflare/room/comments.js +6 -6
  25. package/dist/cloudflare/room/context.d.ts +25 -82
  26. package/dist/cloudflare/room/context.js +8 -8
  27. package/dist/cloudflare/room/forged.d.ts +1 -1
  28. package/dist/cloudflare/room/forged.js +2 -12
  29. package/dist/cloudflare/room/frames.d.ts +1 -1
  30. package/dist/cloudflare/room/frames.js +1 -1
  31. package/dist/cloudflare/room/history.d.ts +1 -25
  32. package/dist/cloudflare/room/history.js +39 -54
  33. package/dist/cloudflare/room/moves.d.ts +1 -13
  34. package/dist/cloudflare/room/moves.js +33 -57
  35. package/dist/cloudflare/room/presence.d.ts +1 -11
  36. package/dist/cloudflare/room/presence.js +4 -4
  37. package/dist/cloudflare/room/purge.d.ts +1 -2
  38. package/dist/cloudflare/room/purge.js +2 -2
  39. package/dist/cloudflare/room/replicas.d.ts +1 -7
  40. package/dist/cloudflare/room/replicas.js +2 -2
  41. package/dist/cloudflare/room/storage.d.ts +3 -32
  42. package/dist/cloudflare/room/storage.js +33 -108
  43. package/dist/cloudflare/room/updates.d.ts +4 -4
  44. package/dist/cloudflare/room/updates.js +17 -24
  45. package/dist/cloudflare/room/validation.d.ts +1 -5
  46. package/dist/cloudflare/room/validation.js +16 -37
  47. package/dist/collaboration/RemoteSelections.svelte +13 -17
  48. package/dist/collaboration/awarenessSelection.d.ts +22 -1
  49. package/dist/collaboration/awarenessSelection.js +42 -0
  50. package/dist/collaboration/comments/client.d.ts +2 -2
  51. package/dist/collaboration/comments/client.js +1 -1
  52. package/dist/collaboration/history/index.d.ts +5 -5
  53. package/dist/collaboration/history/index.js +5 -5
  54. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  55. package/dist/collaboration/history/panel.svelte.js +223 -0
  56. package/dist/collaboration/providers.d.ts +12 -3
  57. package/dist/collaboration/providers.js +5 -4
  58. package/dist/components/Block.svelte +42 -56
  59. package/dist/components/Block.svelte.d.ts +7 -5
  60. package/dist/components/Content.svelte +1 -5
  61. package/dist/components/Edytor.svelte +82 -99
  62. package/dist/components/Edytor.svelte.d.ts +16 -13
  63. package/dist/components/InlineBlock.svelte +1 -1
  64. package/dist/components/Ranges.svelte +96 -0
  65. package/dist/components/Ranges.svelte.d.ts +19 -0
  66. package/dist/components/Suggestion.svelte +3 -2
  67. package/dist/components/Text.svelte +2 -5
  68. package/dist/components/Text.svelte.d.ts +1 -1
  69. package/dist/crdt/admission.d.ts +2 -9
  70. package/dist/crdt/admission.js +3 -9
  71. package/dist/crdt/attribution/attribution.d.ts +11 -72
  72. package/dist/crdt/attribution/attribution.js +5 -52
  73. package/dist/crdt/attribution/block.d.ts +0 -78
  74. package/dist/crdt/attribution/block.js +1 -144
  75. package/dist/crdt/data.d.ts +18 -13
  76. package/dist/crdt/data.js +49 -71
  77. package/dist/crdt/doc/anchors.js +4 -4
  78. package/dist/crdt/doc/content.d.ts +5 -1
  79. package/dist/crdt/doc/content.js +3 -1
  80. package/dist/crdt/doc/delete.d.ts +1 -0
  81. package/dist/crdt/doc/funnel.d.ts +0 -23
  82. package/dist/crdt/doc/funnel.js +34 -85
  83. package/dist/crdt/doc/gate.d.ts +8 -9
  84. package/dist/crdt/doc/gate.js +7 -17
  85. package/dist/crdt/doc/history.d.ts +87 -14
  86. package/dist/crdt/doc/history.js +334 -149
  87. package/dist/crdt/doc/layout.d.ts +0 -1
  88. package/dist/crdt/doc/layout.js +2 -3
  89. package/dist/crdt/doc/meta.d.ts +4 -4
  90. package/dist/crdt/doc/meta.js +10 -21
  91. package/dist/crdt/doc/moves.d.ts +4 -4
  92. package/dist/crdt/doc/moves.js +5 -5
  93. package/dist/crdt/doc/plan.d.ts +2 -0
  94. package/dist/crdt/doc/plan.js +2 -0
  95. package/dist/crdt/doc/reads.d.ts +8 -5
  96. package/dist/crdt/doc/reads.js +49 -50
  97. package/dist/crdt/doc/seed.d.ts +15 -6
  98. package/dist/crdt/doc/seed.js +27 -26
  99. package/dist/crdt/doc/split-merge.d.ts +1 -3
  100. package/dist/crdt/doc/split-merge.js +4 -5
  101. package/dist/crdt/doc/steps.d.ts +3 -7
  102. package/dist/crdt/doc/steps.js +20 -9
  103. package/dist/crdt/doc/types.d.ts +0 -10
  104. package/dist/crdt/document.d.ts +32 -115
  105. package/dist/crdt/document.js +216 -302
  106. package/dist/crdt/edytor-doc.d.ts +689 -90
  107. package/dist/crdt/edytor-doc.js +74 -149
  108. package/dist/crdt/engine-api.d.ts +15 -47
  109. package/dist/crdt/engine.d.ts +7 -17
  110. package/dist/crdt/engine.js +9 -19
  111. package/dist/crdt/flow.d.ts +9 -37
  112. package/dist/crdt/flow.js +260 -238
  113. package/dist/crdt/index.d.ts +32 -85
  114. package/dist/crdt/index.js +21 -47
  115. package/dist/crdt/operations.d.ts +24 -33
  116. package/dist/crdt/operations.js +8 -17
  117. package/dist/crdt/placement/display.d.ts +0 -2
  118. package/dist/crdt/placement/display.js +0 -15
  119. package/dist/crdt/placement/model.d.ts +160 -12
  120. package/dist/crdt/placement/model.js +413 -414
  121. package/dist/crdt/placement/rank.d.ts +1 -5
  122. package/dist/crdt/placement/rank.js +28 -38
  123. package/dist/crdt/props.d.ts +32 -0
  124. package/dist/crdt/props.js +172 -0
  125. package/dist/crdt/protocol.d.ts +4 -5
  126. package/dist/crdt/protocol.js +3 -4
  127. package/dist/crdt/protocols/awareness.d.ts +3 -7
  128. package/dist/crdt/protocols/awareness.js +17 -33
  129. package/dist/crdt/protocols/envelope.d.ts +9 -29
  130. package/dist/crdt/protocols/envelope.js +8 -25
  131. package/dist/crdt/protocols/sync.d.ts +15 -30
  132. package/dist/crdt/protocols/sync.js +27 -89
  133. package/dist/crdt/providers/bound.d.ts +3 -1
  134. package/dist/crdt/providers/bound.js +3 -1
  135. package/dist/crdt/providers/container.d.ts +11 -17
  136. package/dist/crdt/providers/container.js +39 -27
  137. package/dist/crdt/providers/index.d.ts +34 -6
  138. package/dist/crdt/providers/index.js +106 -111
  139. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  140. package/dist/crdt/providers/indexeddb.js +29 -90
  141. package/dist/crdt/providers/room.d.ts +58 -2
  142. package/dist/crdt/providers/room.js +38 -21
  143. package/dist/crdt/providers/websocket.d.ts +1 -1
  144. package/dist/crdt/providers/websocket.js +3 -4
  145. package/dist/crdt/purge.d.ts +2 -2
  146. package/dist/crdt/purge.js +69 -6
  147. package/dist/crdt/rangeDelete.d.ts +4 -42
  148. package/dist/crdt/rangeDelete.js +7 -6
  149. package/dist/crdt/restore.d.ts +21 -1
  150. package/dist/crdt/restore.js +54 -59
  151. package/dist/crdt/schema.d.ts +2 -2
  152. package/dist/crdt/schema.js +4 -5
  153. package/dist/crdt/semantics.d.ts +10 -15
  154. package/dist/crdt/semantics.js +22 -21
  155. package/dist/crdt/storage.d.ts +7 -13
  156. package/dist/crdt/storage.js +10 -24
  157. package/dist/crdt/structs.d.ts +42 -47
  158. package/dist/crdt/structs.js +76 -67
  159. package/dist/crdt/tables.d.ts +9 -0
  160. package/dist/crdt/tables.js +20 -0
  161. package/dist/crdt/text/delete-index.d.ts +0 -13
  162. package/dist/crdt/text/delete-index.js +7 -14
  163. package/dist/crdt/text/deletes.d.ts +9 -22
  164. package/dist/crdt/text/deletes.js +11 -74
  165. package/dist/crdt/text/index/cache.js +3 -3
  166. package/dist/crdt/text/index/fold.d.ts +1 -2
  167. package/dist/crdt/text/index/fold.js +15 -10
  168. package/dist/crdt/text/index/layout.d.ts +0 -10
  169. package/dist/crdt/text/index/layout.js +6 -20
  170. package/dist/crdt/text/index/records.js +2 -1
  171. package/dist/crdt/text/index/report.js +5 -6
  172. package/dist/crdt/text/index/shared.d.ts +11 -4
  173. package/dist/crdt/text/index/shared.js +8 -7
  174. package/dist/crdt/text/index/state.d.ts +3 -33
  175. package/dist/crdt/text/index/state.js +2 -4
  176. package/dist/crdt/text/model.d.ts +82 -2
  177. package/dist/crdt/text/model.js +344 -354
  178. package/dist/crdt/text/rows.d.ts +0 -2
  179. package/dist/crdt/text/rows.js +0 -11
  180. package/dist/crdt/text/runs.d.ts +6 -3
  181. package/dist/crdt/text/runs.js +132 -137
  182. package/dist/crdt/text/streams.d.ts +1 -1
  183. package/dist/crdt/text/streams.js +1 -1
  184. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  185. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  186. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  187. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  188. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  189. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  190. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  191. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  192. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  193. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  194. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  195. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  196. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  197. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  198. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  199. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  200. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  201. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  202. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  203. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  204. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  205. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  206. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  207. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  208. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  209. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  210. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  211. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  212. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  213. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  214. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  215. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  216. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  217. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  218. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  219. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  220. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  221. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  222. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  223. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  224. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  225. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  226. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  227. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  228. package/dist/dnd/autoScroll.js +1 -2
  229. package/dist/{plugins/blockHandles → dnd}/dropIndicator.d.ts +2 -2
  230. package/dist/{plugins/blockHandles → dnd}/dropIndicator.js +52 -60
  231. package/dist/{plugins/blockHandles → dnd}/geometry.d.ts +4 -3
  232. package/dist/{plugins/blockHandles → dnd}/geometry.js +6 -6
  233. package/dist/dnd/placement.d.ts +200 -0
  234. package/dist/dnd/placement.js +426 -0
  235. package/dist/dnd/pragmatic.d.ts +4 -22
  236. package/dist/dnd/pragmatic.js +7 -26
  237. package/dist/dnd/track.d.ts +14 -0
  238. package/dist/dnd/track.js +55 -0
  239. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  240. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  241. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  242. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  243. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  254. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  265. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +36 -0
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  293. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  294. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  295. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  296. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  297. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  298. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  299. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  300. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  301. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  302. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  303. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  304. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  305. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  306. package/dist/edytor.svelte.d.ts +46 -63
  307. package/dist/edytor.svelte.js +126 -181
  308. package/dist/events/beforeInputCommands.d.ts +6 -11
  309. package/dist/events/beforeInputCommands.js +189 -181
  310. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  311. package/dist/events/beforeInputDeleteCommands.js +153 -204
  312. package/dist/events/domTextOffset.d.ts +9 -9
  313. package/dist/events/domTextOffset.js +20 -48
  314. package/dist/events/events.utils.d.ts +0 -2
  315. package/dist/events/events.utils.js +0 -4
  316. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  317. package/dist/events/nativeInteractiveControl.js +28 -56
  318. package/dist/events/onBeforeInput.d.ts +6 -1
  319. package/dist/events/onBeforeInput.js +207 -331
  320. package/dist/events/onCopy.js +1 -5
  321. package/dist/events/onDrop.d.ts +7 -1
  322. package/dist/events/onDrop.js +64 -78
  323. package/dist/events/onFocus.d.ts +9 -4
  324. package/dist/events/onFocus.js +45 -67
  325. package/dist/events/onInput.d.ts +8 -4
  326. package/dist/events/onInput.js +34 -147
  327. package/dist/events/onKeyDown.js +55 -122
  328. package/dist/events/onPaste.d.ts +14 -1
  329. package/dist/events/onPaste.js +51 -76
  330. package/dist/index.d.ts +11 -15
  331. package/dist/index.js +3 -3
  332. package/dist/kinds.d.ts +4 -6
  333. package/dist/kinds.js +28 -27
  334. package/dist/labels.d.ts +83 -320
  335. package/dist/labels.js +181 -408
  336. package/dist/plugins/Chrome.svelte +29 -0
  337. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  338. package/dist/plugins/Control.svelte +23 -0
  339. package/dist/plugins/Control.svelte.d.ts +30 -0
  340. package/dist/plugins/anchored.svelte.d.ts +47 -0
  341. package/dist/plugins/anchored.svelte.js +73 -0
  342. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  343. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  344. package/dist/plugins/bands.svelte.d.ts +57 -0
  345. package/dist/plugins/bands.svelte.js +95 -0
  346. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -154
  347. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  348. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +21 -196
  349. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +158 -573
  350. package/dist/plugins/blockHandles/BlockHandles.svelte +15 -23
  351. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  352. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +25 -39
  353. package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -185
  354. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  355. package/dist/plugins/blockHandles/dragPreview.js +18 -16
  356. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +28 -38
  357. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +116 -183
  358. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  359. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  360. package/dist/plugins/brand.d.ts +8 -0
  361. package/dist/plugins/brand.js +8 -0
  362. package/dist/plugins/chrome.d.ts +45 -38
  363. package/dist/plugins/chrome.js +59 -36
  364. package/dist/plugins/code/CodeHeader.svelte +8 -38
  365. package/dist/plugins/code/CodePlugin.svelte +53 -56
  366. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  367. package/dist/plugins/code/LanguageMenu.svelte +16 -125
  368. package/dist/plugins/code/LanguageMenu.svelte.d.ts +2 -1
  369. package/dist/plugins/code/code.css +5 -117
  370. package/dist/plugins/code/header.svelte.d.ts +2 -11
  371. package/dist/plugins/code/header.svelte.js +11 -38
  372. package/dist/plugins/code/languageMenu.svelte.d.ts +12 -32
  373. package/dist/plugins/code/languageMenu.svelte.js +30 -160
  374. package/dist/plugins/code/languages.d.ts +9 -22
  375. package/dist/plugins/code/languages.js +39 -128
  376. package/dist/plugins/columns/ColumnResize.svelte +16 -27
  377. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  378. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  379. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  380. package/dist/plugins/columns/columns.css +7 -26
  381. package/dist/plugins/columns/gaps.d.ts +7 -5
  382. package/dist/plugins/columns/gaps.js +11 -6
  383. package/dist/plugins/columns/resize.svelte.d.ts +17 -54
  384. package/dist/plugins/columns/resize.svelte.js +80 -173
  385. package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
  386. package/dist/plugins/comments/CommentsController.svelte.js +14 -25
  387. package/dist/plugins/comments/CommentsSidebar.svelte +82 -431
  388. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +4 -2
  389. package/dist/plugins/comments/commentsPlugin.d.ts +25 -9
  390. package/dist/plugins/comments/commentsPlugin.js +12 -10
  391. package/dist/plugins/equation/EquationEditor.svelte +16 -130
  392. package/dist/plugins/equation/EquationEditor.svelte.d.ts +1 -2
  393. package/dist/plugins/equation/EquationPlugin.svelte +109 -172
  394. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +3 -2
  395. package/dist/plugins/equation/EquationView.svelte +20 -11
  396. package/dist/plugins/equation/equation.css +7 -0
  397. package/dist/plugins/equation/equation.svelte.d.ts +37 -24
  398. package/dist/plugins/equation/equation.svelte.js +20 -94
  399. package/dist/plugins/equation/katex.js +6 -9
  400. package/dist/plugins/fileDrop.d.ts +28 -0
  401. package/dist/plugins/fileDrop.js +116 -0
  402. package/dist/plugins/find/FindController.svelte.d.ts +8 -13
  403. package/dist/plugins/find/FindController.svelte.js +34 -55
  404. package/dist/plugins/find/findPlugin.d.ts +4 -8
  405. package/dist/plugins/find/findPlugin.js +29 -9
  406. package/dist/plugins/image/ImageChrome.svelte +6 -167
  407. package/dist/plugins/image/ImageChrome.svelte.d.ts +0 -2
  408. package/dist/plugins/image/ImagePlugin.svelte +71 -151
  409. package/dist/plugins/image/ImagePlugin.svelte.d.ts +12 -41
  410. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  411. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  412. package/dist/plugins/image/controls.svelte.d.ts +6 -36
  413. package/dist/plugins/image/controls.svelte.js +43 -212
  414. package/dist/plugins/image/image.css +17 -0
  415. package/dist/plugins/image/image.d.ts +0 -5
  416. package/dist/plugins/image/image.js +0 -3
  417. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  418. package/dist/plugins/image/toolbar.svelte.js +145 -0
  419. package/dist/plugins/index.d.ts +30 -26
  420. package/dist/plugins/index.js +28 -22
  421. package/dist/plugins/list.svelte.d.ts +128 -0
  422. package/dist/plugins/list.svelte.js +217 -0
  423. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  424. package/dist/plugins/markdownShortcuts.js +10 -9
  425. package/dist/plugins/marquee/MarqueeBox.svelte +3 -20
  426. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +1 -1
  427. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +0 -2
  428. package/dist/plugins/marquee/MarqueeController.svelte.js +20 -23
  429. package/dist/plugins/marquee/marquee.js +4 -21
  430. package/dist/plugins/marquee/marqueePlugin.d.ts +4 -3
  431. package/dist/plugins/marquee/marqueePlugin.js +16 -15
  432. package/dist/plugins/media/AudioPlugin.svelte +13 -88
  433. package/dist/plugins/media/AudioPlugin.svelte.d.ts +11 -4
  434. package/dist/plugins/media/BookmarkPlugin.svelte +113 -120
  435. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +10 -15
  436. package/dist/plugins/media/EmbedPlugin.svelte +82 -86
  437. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +11 -17
  438. package/dist/plugins/media/EmptySlot.svelte +44 -0
  439. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  440. package/dist/plugins/media/FilePlugin.svelte +45 -113
  441. package/dist/plugins/media/FilePlugin.svelte.d.ts +21 -4
  442. package/dist/plugins/media/MediaEmpty.svelte +51 -90
  443. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  444. package/dist/plugins/media/SourceBlock.svelte +200 -0
  445. package/dist/plugins/media/SourceBlock.svelte.d.ts +34 -0
  446. package/dist/plugins/media/UploadPreview.svelte +32 -0
  447. package/dist/plugins/media/UploadPreview.svelte.d.ts +11 -0
  448. package/dist/plugins/media/VideoPlugin.svelte +14 -97
  449. package/dist/plugins/media/VideoPlugin.svelte.d.ts +12 -5
  450. package/dist/plugins/media/empty.svelte.d.ts +47 -46
  451. package/dist/plugins/media/empty.svelte.js +67 -60
  452. package/dist/plugins/media/media.d.ts +97 -44
  453. package/dist/plugins/media/media.js +77 -99
  454. package/dist/plugins/media/upload.css +23 -0
  455. package/dist/plugins/media/urlPaste.svelte.d.ts +6 -37
  456. package/dist/plugins/media/urlPaste.svelte.js +32 -102
  457. package/dist/plugins/mention/MentionPlugin.svelte +84 -126
  458. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +17 -27
  459. package/dist/plugins/mention/mention.css +6 -0
  460. package/dist/plugins/page/PageLink.svelte +54 -38
  461. package/dist/plugins/page/PagePlugin.svelte +20 -18
  462. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  463. package/dist/plugins/page/page.d.ts +35 -9
  464. package/dist/plugins/page/page.js +3 -4
  465. package/dist/plugins/pageLink/PageLinkPlugin.svelte +154 -109
  466. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +19 -26
  467. package/dist/plugins/pageLink/pageLink.css +6 -0
  468. package/dist/plugins/planned.d.ts +10 -0
  469. package/dist/plugins/planned.js +12 -0
  470. package/dist/plugins/richtext/CalloutIcon.svelte +13 -26
  471. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  472. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  473. package/dist/plugins/richtext/EmptyBody.svelte +13 -20
  474. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  475. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  476. package/dist/plugins/richtext/RichTextPlugin.svelte +174 -183
  477. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +34 -34
  478. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  479. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  480. package/dist/plugins/richtext/body.js +2 -2
  481. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +50 -55
  482. package/dist/plugins/richtext/calloutIcons.svelte.js +86 -174
  483. package/dist/plugins/richtext/callouts.d.ts +15 -0
  484. package/dist/plugins/richtext/callouts.js +23 -0
  485. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  486. package/dist/plugins/richtext/controls.svelte.js +126 -0
  487. package/dist/plugins/richtext/richTextOperations.js +37 -28
  488. package/dist/plugins/richtext/richtext.css +6 -0
  489. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +2 -14
  490. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +34 -71
  491. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +9 -26
  492. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  493. package/dist/plugins/suggestions/SuggestionBars.svelte +27 -84
  494. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  495. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -18
  496. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  497. package/dist/plugins/table/TableChrome.svelte +40 -124
  498. package/dist/plugins/table/TablePlugin.svelte +106 -168
  499. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  500. package/dist/plugins/table/chrome.svelte.d.ts +38 -141
  501. package/dist/plugins/table/chrome.svelte.js +340 -589
  502. package/dist/plugins/table/ops.d.ts +47 -0
  503. package/dist/plugins/table/ops.js +233 -0
  504. package/dist/plugins/table/table.css +16 -152
  505. package/dist/plugins/table/table.d.ts +15 -14
  506. package/dist/plugins/table/table.js +22 -16
  507. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  508. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  509. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  510. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  511. package/dist/plugins/toc/toc.d.ts +41 -10
  512. package/dist/plugins/toc/toc.js +2 -3
  513. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +4 -68
  514. package/dist/plugins/toolbar/ToolbarController.svelte.js +63 -89
  515. package/dist/plugins/toolbar/toolbarPlugin.d.ts +8 -18
  516. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  517. package/dist/plugins/triggers/TriggerController.svelte.d.ts +4 -68
  518. package/dist/plugins/triggers/TriggerController.svelte.js +48 -129
  519. package/dist/plugins/triggers/place.d.ts +0 -9
  520. package/dist/plugins/triggers/place.js +1 -17
  521. package/dist/plugins/triggers/triggers.d.ts +31 -9
  522. package/dist/plugins/triggers/triggers.js +82 -62
  523. package/dist/plugins/uploads.svelte.d.ts +55 -24
  524. package/dist/plugins/uploads.svelte.js +123 -50
  525. package/dist/plugins.d.ts +187 -66
  526. package/dist/selection/domSelection.d.ts +13 -4
  527. package/dist/selection/domSelection.js +110 -183
  528. package/dist/selection/pointer.svelte.d.ts +8 -10
  529. package/dist/selection/pointer.svelte.js +32 -73
  530. package/dist/selection/replaceSelection.d.ts +21 -22
  531. package/dist/selection/replaceSelection.js +60 -69
  532. package/dist/selection/selection.svelte.d.ts +5 -73
  533. package/dist/selection/selection.svelte.js +224 -542
  534. package/dist/selection/selection.utils.d.ts +34 -11
  535. package/dist/selection/selection.utils.js +128 -247
  536. package/dist/selection/visibility.d.ts +3 -8
  537. package/dist/selection/visibility.js +7 -5
  538. package/dist/session/announcer.svelte.d.ts +2 -1
  539. package/dist/session/announcer.svelte.js +7 -3
  540. package/dist/session/attempt.d.ts +43 -39
  541. package/dist/session/attempt.js +62 -55
  542. package/dist/session/bindings.js +117 -145
  543. package/dist/session/commands.d.ts +47 -22
  544. package/dist/session/commands.js +208 -208
  545. package/dist/session/composition.svelte.d.ts +2 -4
  546. package/dist/session/composition.svelte.js +55 -65
  547. package/dist/session/editing/text.d.ts +6 -0
  548. package/dist/session/editing/text.js +17 -3
  549. package/dist/session/handles.d.ts +10 -1
  550. package/dist/session/handles.js +28 -0
  551. package/dist/session/history.d.ts +0 -4
  552. package/dist/session/history.js +16 -21
  553. package/dist/session/inputRules.d.ts +6 -3
  554. package/dist/session/inputRules.js +78 -83
  555. package/dist/session/keymap.d.ts +1 -6
  556. package/dist/session/keymap.js +17 -20
  557. package/dist/session/moves.d.ts +43 -10
  558. package/dist/session/moves.js +101 -59
  559. package/dist/session/navigation.d.ts +10 -2
  560. package/dist/session/navigation.js +140 -172
  561. package/dist/session/ports.d.ts +2 -7
  562. package/dist/session/props.d.ts +25 -25
  563. package/dist/session/props.js +62 -159
  564. package/dist/session/selection.d.ts +4 -3
  565. package/dist/session/selection.js +5 -0
  566. package/dist/session/suggestions.svelte.d.ts +1 -1
  567. package/dist/session/suggestions.svelte.js +42 -47
  568. package/dist/session/uploads.d.ts +29 -0
  569. package/dist/session/uploads.js +10 -0
  570. package/dist/session/virtual.d.ts +3 -3
  571. package/dist/session/virtual.js +18 -40
  572. package/dist/surface/attributes.d.ts +1 -0
  573. package/dist/surface/attributes.js +3 -26
  574. package/dist/surface/cells.d.ts +5 -0
  575. package/dist/surface/cells.js +5 -0
  576. package/dist/surface/lines.d.ts +2 -2
  577. package/dist/surface/lines.js +1 -1
  578. package/dist/surface/observer.svelte.d.ts +3 -20
  579. package/dist/surface/observer.svelte.js +52 -72
  580. package/dist/surface/overlay.d.ts +41 -3
  581. package/dist/surface/overlay.js +92 -37
  582. package/dist/surface/pin.svelte.d.ts +5 -0
  583. package/dist/surface/pin.svelte.js +5 -0
  584. package/dist/surface/projector.svelte.d.ts +4 -6
  585. package/dist/surface/projector.svelte.js +42 -69
  586. package/dist/text/text.svelte.d.ts +14 -40
  587. package/dist/text/text.svelte.js +35 -51
  588. package/dist/text/wordBoundary.d.ts +19 -0
  589. package/dist/text/wordBoundary.js +29 -44
  590. package/dist/themes/notion.css +272 -106
  591. package/dist/utils/json.d.ts +3 -1
  592. package/dist/utils/json.js +52 -51
  593. package/dist/utils/listen.d.ts +8 -0
  594. package/dist/utils/listen.js +19 -0
  595. package/package.json +4 -5
  596. package/dist/block/block.utils.d.ts +0 -340
  597. package/dist/block/block.utils.js +0 -356
  598. package/dist/collaboration/history/HistoryPanel.svelte +0 -554
  599. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  600. package/dist/collaboration/history/panel.d.ts +0 -61
  601. package/dist/collaboration/history/panel.js +0 -3
  602. package/dist/components/SuggestionRanges.svelte +0 -58
  603. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  604. package/dist/crdt/doc/table.d.ts +0 -21
  605. package/dist/crdt/doc/table.js +0 -288
  606. package/dist/crdt/migration/generation.d.ts +0 -58
  607. package/dist/crdt/migration/generation.js +0 -70
  608. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  609. package/dist/crdt/migration/legacy-schema.js +0 -151
  610. package/dist/crdt/migration/migrate.d.ts +0 -56
  611. package/dist/crdt/migration/migrate.js +0 -227
  612. package/dist/crdt/nodes.d.ts +0 -121
  613. package/dist/crdt/nodes.js +0 -56
  614. package/dist/crdt/text/index/checks.d.ts +0 -15
  615. package/dist/crdt/text/index/checks.js +0 -156
  616. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  617. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  618. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  619. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  620. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  621. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  622. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  623. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  624. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  625. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  626. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  627. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  628. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  629. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  630. package/dist/edytor.utils.d.ts +0 -50
  631. package/dist/edytor.utils.js +0 -67
  632. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -335
  633. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  634. package/dist/plugins/find/FindBar.svelte +0 -170
  635. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  636. package/dist/plugins/find/FindHighlights.svelte +0 -75
  637. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  638. package/dist/plugins/icons.d.ts +0 -2
  639. package/dist/plugins/icons.js +0 -63
  640. package/dist/plugins/image/ImageEmpty.svelte +0 -93
  641. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -15
  642. package/dist/plugins/image/empty.svelte.d.ts +0 -56
  643. package/dist/plugins/image/empty.svelte.js +0 -83
  644. package/dist/plugins/keepInView.d.ts +0 -4
  645. package/dist/plugins/keepInView.js +0 -6
  646. package/dist/plugins/media/UrlPasteMenu.svelte +0 -92
  647. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -9
  648. package/dist/plugins/richtext/CalloutIconMenu.svelte +0 -98
  649. package/dist/plugins/richtext/CalloutIconMenu.svelte.d.ts +0 -9
  650. package/dist/plugins/richtext/labels.d.ts +0 -9
  651. package/dist/plugins/richtext/labels.js +0 -7
  652. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -276
  653. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  654. package/dist/plugins/table/dragPreview.d.ts +0 -29
  655. package/dist/plugins/table/dragPreview.js +0 -103
  656. package/dist/plugins/toolbar/LinkCard.svelte +0 -122
  657. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -9
  658. package/dist/plugins/toolbar/Toolbar.svelte +0 -349
  659. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  660. package/dist/plugins/triggers/TriggerMenu.svelte +0 -135
  661. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  662. package/dist/text/deltas.d.ts +0 -22
  663. package/dist/text/deltas.js +0 -46
  664. package/dist/text/text.utils.d.ts +0 -45
  665. package/dist/text/text.utils.js +0 -199
  666. /package/dist/{plugins/columns → dnd}/stacking.d.ts +0 -0
  667. /package/dist/{plugins/columns → dnd}/stacking.js +0 -0
@@ -1,14 +1,14 @@
1
1
  /**
2
2
  * A code block's header (`code.language`): the block's language, a button
3
3
  * that opens the view's language list (`LanguageMenu`) and Copy. One per
4
- * rendered code block; the default markup (`CodeHeader.svelte`) and an
5
- * app's `header` snippet read the same controller and share its
6
- * attachment (`button`), so a custom header keeps the keys and the ARIA.
4
+ * rendered code block with the app's `header` snippet, whose attachment
5
+ * (`button`) gives its markup the keys and the ARIA.
7
6
  */
8
7
  import { untrack } from 'svelte';
9
8
  import { Text } from '../../text/text.svelte.js';
10
9
  import { attribute } from '../chrome.js';
11
- import { languageLabel, languageOf } from './languages.js';
10
+ import { languageOf } from './languages.js';
11
+ import { all, listen } from '../../utils/listen.js';
12
12
  /** How long Copy reads Copied after a copy, in milliseconds. */
13
13
  const COPIED_FOR = 1200;
14
14
  /** A code block's text: its lines, joined by newlines. */
@@ -17,10 +17,9 @@ const codeText = (code) => code.children
17
17
  .join('\n');
18
18
  /**
19
19
  * What a code plugin's `header` snippet receives: the code block's
20
- * language (`language`, its id; `label`, as shown), the languages the
21
- * plugin lists (`languages`), whether the language may be changed here
20
+ * language (`language`, its id; `label`, as shown), whether the language may be changed here
22
21
  * (`editable`: an editable view, not a suggestion's preview), the list's
23
- * state (`expanded`), the actions (`setLanguage`, `toggle`, `copy`, and
22
+ * state (`expanded`), the actions (`toggle`, the list's own `pick`, `copy`, and
24
23
  * `copied` for a moment after a copy) and the plugin's `labels`. Put
25
24
  * `{@attach header.button}` on the element that opens the language list:
26
25
  * it opens it on a click, ArrowDown or ArrowUp, Escape gives the keys back
@@ -63,19 +62,7 @@ export class CodeHeader {
63
62
  /** The language's label; a language the plugin does not list shows its id (reactive). */
64
63
  get label() {
65
64
  const language = this.language;
66
- const row = this.settings.languages.find((row) => row.id === language);
67
- return row ? languageLabel(row, this.settings) : language;
68
- }
69
- /** The languages the plugin lists, labeled, in order. */
70
- get languages() {
71
- return this.settings.languages.map((row) => ({
72
- id: row.id,
73
- label: languageLabel(row, this.settings)
74
- }));
75
- }
76
- /** The plugin's words (`language`, `copy`, `copied`, …). */
77
- get labels() {
78
- return this.settings.labels;
65
+ return this.settings.languages.find((row) => row.id === language)?.label ?? language;
79
66
  }
80
67
  /** The view is readonly (reactive). */
81
68
  get readonly() {
@@ -90,13 +77,6 @@ export class CodeHeader {
90
77
  const block = this.view().handle;
91
78
  return Boolean(block && this.menu?.isOpenFor(block.id));
92
79
  }
93
- /** Set the block's language (one undo step); nothing where it is not `editable`. */
94
- setLanguage = (id) => {
95
- const block = this.view().handle;
96
- if (!this.editable || !block?.isInTree || id === this.language)
97
- return;
98
- block.data.language = id;
99
- };
100
80
  /**
101
81
  * Open the language list under the header's button, or close it (`keys`:
102
82
  * the keyboard opened it, so the keys go back to the button after).
@@ -129,7 +109,6 @@ export class CodeHeader {
129
109
  button = (node) => untrack(() => {
130
110
  node.setAttribute('data-edytor-code-language-button', '');
131
111
  node.setAttribute('aria-haspopup', 'listbox');
132
- const named = node.hasAttribute('aria-label') || node.hasAttribute('aria-labelledby');
133
112
  const mousedown = (event) => event.preventDefault();
134
113
  // A click from Enter or Space has no pointer (`detail` 0): the keys opened it.
135
114
  const click = (event) => this.toggle(event.detail === 0);
@@ -144,21 +123,15 @@ export class CodeHeader {
144
123
  return;
145
124
  event.preventDefault();
146
125
  };
147
- node.addEventListener('mousedown', mousedown);
148
- node.addEventListener('click', click);
149
- node.addEventListener('keydown', keydown);
126
+ const off = listen(node, 'mousedown', mousedown);
127
+ const off2 = listen(node, 'click', click);
128
+ const off3 = listen(node, 'keydown', keydown);
150
129
  $effect(() => {
151
130
  const expanded = this.expanded;
152
131
  attribute(node, 'aria-expanded', String(expanded));
153
132
  attribute(node, 'aria-controls', expanded ? this.menu?.listId : undefined);
154
- if (!named)
155
- attribute(node, 'aria-label', `${this.labels.language}: ${this.label}`);
156
133
  });
157
- return () => {
158
- node.removeEventListener('mousedown', mousedown);
159
- node.removeEventListener('click', click);
160
- node.removeEventListener('keydown', keydown);
161
- };
134
+ return all(off, off2, off3);
162
135
  });
163
136
  /**
164
137
  * The header is gone: Copied's timer goes with it.
@@ -1,16 +1,16 @@
1
1
  import type { Attachment } from 'svelte/attachments';
2
2
  import type { Edytor } from '../../edytor.svelte.js';
3
- import type { CodeLabels } from '../../labels.js';
4
- import { type MenuItemPayload, type OptionAttributes } from '../chrome.js';
3
+ import { type MenuItemPayload } from '../chrome.js';
4
+ import { ChromeList } from '../list.svelte.js';
5
5
  /** A row of the language list: a language id and its label as shown. */
6
6
  export type LanguageRow = {
7
7
  id: string;
8
8
  label: string;
9
9
  };
10
10
  /**
11
- * One row of the language list, for a custom `menu`: the row shape every
11
+ * One row of the language list, for your `menu`: the row shape every
12
12
  * menu shares (`item` is the language, `run` picks it), and whether it is
13
- * the block's own language (`current`, the built-in ✓).
13
+ * the block's own language (`current`, the demo's ✓).
14
14
  */
15
15
  export type LanguageMenuItem = MenuItemPayload<LanguageRow> & {
16
16
  /** It is the block's language. */
@@ -26,13 +26,13 @@ export type LanguageMenuItem = MenuItemPayload<LanguageRow> & {
26
26
  * its button; opened by a press, to the editor. A press or a focus outside
27
27
  * closes it, as readonly does.
28
28
  *
29
- * What a custom `menu` snippet receives: the open list (`open`), the query
29
+ * What a `menu` snippet receives: the open list (`open`), the query
30
30
  * and its rows (`query`, `items`, each a `MenuItemPayload`), the keyboard's
31
- * row (`index`), `search`, `pick` and `close`, the plugin's `labels`, and
32
- * the attachments that keep the built-in keys and ARIA: `keys` on the
33
- * search field, `popup` on the list, `option(index)` spread on each row.
31
+ * row (`index`), `search`, `pick` and `close`, and
32
+ * the attachments that give it the keys and the ARIA: `keys` on the
33
+ * search field, `popup` on the list, `option(index)` on each row.
34
34
  */
35
- export declare class LanguageMenu {
35
+ export declare class LanguageMenu extends ChromeList {
36
36
  #private;
37
37
  /** The code block whose list is open, and whether the keys opened it (reactive). */
38
38
  open: {
@@ -41,33 +41,25 @@ export declare class LanguageMenu {
41
41
  } | null;
42
42
  /** The search field's text. */
43
43
  query: string;
44
- /** The highlighted row, in `rows`. */
45
- index: number;
46
- /** The plugin's words (`language`, `search`, `noResults`, …). */
47
- get labels(): CodeLabels;
48
44
  /** The view is readonly (reactive): the list closes. */
49
45
  get readonly(): boolean;
50
46
  /** The open block's language id. */
51
47
  get current(): string | null;
52
48
  /** The rows the query keeps: a language the plugin does not list first (the block's own), then the list. */
53
- get rows(): LanguageRow[];
49
+ get rows(): readonly LanguageRow[];
54
50
  /**
55
- * The rows for a custom `menu`: each the row shape every menu shares
51
+ * The rows for your `menu`: each the row shape every menu shares
56
52
  * (`run` picks it, `select` highlights it, `option` its attributes), and
57
53
  * whether it is the block's language (`current`).
58
54
  */
59
55
  get items(): LanguageMenuItem[];
56
+ protected get count(): number;
60
57
  /** Whether `block`'s list is open. */
61
58
  isOpenFor: (block: string) => boolean;
62
- /** The list's and its rows' element ids (page-unique). */
63
- get listId(): string;
64
- rowId: (row: LanguageRow) => string;
65
59
  /** Open `block`'s list (`keys`: the keyboard opened it), or close it when it is open. */
66
60
  toggle: (block: string, keys: boolean) => void;
67
61
  /** A new query: the first row it keeps is highlighted. */
68
62
  search: (query: string) => void;
69
- /** Move the highlighted row by `step`, around the ends. */
70
- move: (step: number) => void;
71
63
  /** Pick `row` (the highlighted one): the block's language, one undo step; the list closes. */
72
64
  pick: (row?: LanguageRow | undefined) => void;
73
65
  /**
@@ -76,12 +68,6 @@ export declare class LanguageMenu {
76
68
  * focus put them (`null`).
77
69
  */
78
70
  close: (keys?: "button" | "editor" | null) => void;
79
- /**
80
- * The attributes of the row at `index`: spread them on its element
81
- * (`{...menu.option(index)}`). Its id, `option` role, `aria-selected` and
82
- * `data-selected` for the highlighted row, which scrolls into view.
83
- */
84
- option: (index: number) => OptionAttributes;
85
71
  /**
86
72
  * The search field (`{@attach menu.keys}`): it takes the focus as the
87
73
  * list opens and is its `combobox` (unless it has a role), naming the
@@ -93,12 +79,6 @@ export declare class LanguageMenu {
93
79
  * it.
94
80
  */
95
81
  keys: Attachment<HTMLElement>;
96
- /**
97
- * The list (`{@attach menu.popup}`): its id, `listbox` role and name
98
- * unless it has its own, presses that keep the field's focus, and its
99
- * publication to the view's root (`edytor.popups`) while it is in the page.
100
- */
101
- popup: Attachment<HTMLElement>;
102
82
  }
103
83
  /** Each view's language list (the first code plugin listed owns it). */
104
84
  export declare const languageMenus: WeakMap<Edytor, LanguageMenu>;
@@ -1,9 +1,10 @@
1
1
  import { untrack } from 'svelte';
2
2
  import { takeKeys } from '../../events/onFocus.js';
3
- import { attribute, inPage, keepFocus, optionAttributes } from '../chrome.js';
4
- import { languageLabel, languageOf } from './languages.js';
5
- /** The overlay host the list renders in (the overlay's mount names it). */
6
- const HOST = '[data-edytor-code-language-host]';
3
+ import { attribute } from '../chrome.js';
4
+ import { ChromeList, holdKeys } from '../list.svelte.js';
5
+ import { Anchored } from '../anchored.svelte.js';
6
+ import { languageOf } from './languages.js';
7
+ import { all, listen } from '../../utils/listen.js';
7
8
  /**
8
9
  * One view's code language list (Notion's): the header's language button
9
10
  * opens it in the overlay under the button, a search field over the
@@ -14,38 +15,30 @@ const HOST = '[data-edytor-code-language-host]';
14
15
  * its button; opened by a press, to the editor. A press or a focus outside
15
16
  * closes it, as readonly does.
16
17
  *
17
- * What a custom `menu` snippet receives: the open list (`open`), the query
18
+ * What a `menu` snippet receives: the open list (`open`), the query
18
19
  * and its rows (`query`, `items`, each a `MenuItemPayload`), the keyboard's
19
- * row (`index`), `search`, `pick` and `close`, the plugin's `labels`, and
20
- * the attachments that keep the built-in keys and ARIA: `keys` on the
21
- * search field, `popup` on the list, `option(index)` spread on each row.
20
+ * row (`index`), `search`, `pick` and `close`, and
21
+ * the attachments that give it the keys and the ARIA: `keys` on the
22
+ * search field, `popup` on the list, `option(index)` on each row.
22
23
  */
23
- export class LanguageMenu {
24
- edytor;
24
+ export class LanguageMenu extends ChromeList {
25
25
  settings;
26
26
  /** The code block whose list is open, and whether the keys opened it (reactive). */
27
27
  open = $state.raw(null);
28
28
  /** The search field's text. */
29
29
  query = $state('');
30
- /** The highlighted row, in `rows`. */
31
- index = $state(0);
32
30
  /**
33
- * The button's box, measured in the overlay's frame.
31
+ * The list's panel under its button: its place, and what closes it.
34
32
  * @internal
35
33
  */
36
- box = $state.raw(null);
34
+ panel;
37
35
  /** @internal */
38
- constructor(
39
- /** @internal */
40
- edytor,
36
+ constructor(edytor,
41
37
  /** @internal */
42
38
  settings) {
43
- this.edytor = edytor;
39
+ super(edytor, 'code-languages', 'listbox');
44
40
  this.settings = settings;
45
- }
46
- /** The plugin's words (`language`, `search`, `noResults`, …). */
47
- get labels() {
48
- return this.settings.labels;
41
+ this.panel = new Anchored(edytor, 'edytor-code-language-host', () => (this.open ? this.#button(this.open.block) : undefined), () => this.close());
49
42
  }
50
43
  /** The view is readonly (reactive): the list closes. */
51
44
  get readonly() {
@@ -61,10 +54,7 @@ export class LanguageMenu {
61
54
  /** The rows the query keeps: a language the plugin does not list first (the block's own), then the list. */
62
55
  get rows() {
63
56
  const current = this.current;
64
- const listed = this.settings.languages.map((row) => ({
65
- id: row.id,
66
- label: languageLabel(row, this.settings)
67
- }));
57
+ const listed = this.settings.languages;
68
58
  const all = current && !listed.some((row) => row.id === current)
69
59
  ? [{ id: current, label: current }, ...listed]
70
60
  : listed;
@@ -74,7 +64,7 @@ export class LanguageMenu {
74
64
  return all.filter((row) => row.label.toLowerCase().includes(query) || row.id.toLowerCase().includes(query));
75
65
  }
76
66
  /**
77
- * The rows for a custom `menu`: each the row shape every menu shares
67
+ * The rows for your `menu`: each the row shape every menu shares
78
68
  * (`run` picks it, `select` highlights it, `option` its attributes), and
79
69
  * whether it is the block's language (`current`).
80
70
  */
@@ -82,8 +72,7 @@ export class LanguageMenu {
82
72
  const current = this.current;
83
73
  return this.rows.map((row, index) => ({
84
74
  item: row,
85
- id: this.rowId(row),
86
- label: row.label,
75
+ id: this.rowId(index),
87
76
  selected: index === this.index,
88
77
  current: row.id === current,
89
78
  run: () => this.pick(row),
@@ -91,21 +80,11 @@ export class LanguageMenu {
91
80
  option: this.option(index)
92
81
  }));
93
82
  }
83
+ get count() {
84
+ return this.rows.length;
85
+ }
94
86
  /** Whether `block`'s list is open. */
95
87
  isOpenFor = (block) => this.open?.block === block;
96
- /** The list's and its rows' element ids (page-unique). */
97
- get listId() {
98
- return this.edytor.popups.idOf('code-languages');
99
- }
100
- rowId = (row) => this.edytor.popups.idOf(`code-language-${row.id}`);
101
- /**
102
- * Where the list stands: under its button, layer-relative.
103
- * @internal
104
- */
105
- get place() {
106
- const box = this.box;
107
- return this.open && box ? { left: box.x, top: box.y + box.height + 4 } : null;
108
- }
109
88
  /** Open `block`'s list (`keys`: the keyboard opened it), or close it when it is open. */
110
89
  toggle = (block, keys) => {
111
90
  if (this.isOpenFor(block))
@@ -122,12 +101,6 @@ export class LanguageMenu {
122
101
  this.query = query;
123
102
  this.index = 0;
124
103
  };
125
- /** Move the highlighted row by `step`, around the ends. */
126
- move = (step) => {
127
- const count = this.rows.length;
128
- if (count)
129
- this.index = (this.index + step + count) % count;
130
- };
131
104
  /** Pick `row` (the highlighted one): the block's language, one undo step; the list closes. */
132
105
  pick = (row = this.rows[this.index]) => {
133
106
  const open = this.open;
@@ -135,7 +108,7 @@ export class LanguageMenu {
135
108
  return;
136
109
  const block = this.edytor.idToBlock.get(open.block);
137
110
  if (block?.isInTree && row.id !== this.current)
138
- block.data.language = row.id;
111
+ block.edytor.patchData(block.id, [{ path: ['language'], value: row.id }]);
139
112
  this.close(open.keys ? 'button' : 'editor');
140
113
  };
141
114
  /**
@@ -148,7 +121,7 @@ export class LanguageMenu {
148
121
  if (!open)
149
122
  return;
150
123
  this.open = null;
151
- this.box = null;
124
+ this.panel.box = null;
152
125
  this.query = '';
153
126
  this.edytor.overlay.invalidate();
154
127
  if (keys === 'button')
@@ -158,16 +131,6 @@ export class LanguageMenu {
158
131
  this.edytor.selection.display();
159
132
  }
160
133
  };
161
- /**
162
- * The attributes of the row at `index`: spread them on its element
163
- * (`{...menu.option(index)}`). Its id, `option` role, `aria-selected` and
164
- * `data-selected` for the highlighted row, which scrolls into view.
165
- */
166
- option = (index) => {
167
- const row = this.rows[index];
168
- const id = row ? this.rowId(row) : this.edytor.popups.idOf(`code-language-${index}`);
169
- return optionAttributes(id, 'option', index === this.index);
170
- };
171
134
  /**
172
135
  * The search field (`{@attach menu.keys}`): it takes the focus as the
173
136
  * list opens and is its `combobox` (unless it has a role), naming the
@@ -184,19 +147,9 @@ export class LanguageMenu {
184
147
  node.setAttribute('aria-expanded', 'true');
185
148
  node.setAttribute('aria-autocomplete', 'list');
186
149
  attribute(node, 'aria-controls', this.listId);
187
- if (!node.hasAttribute('aria-label') && !node.hasAttribute('aria-labelledby'))
188
- node.setAttribute('aria-label', this.labels.language);
189
- node.addEventListener('keydown', this.#keydown);
190
- node.addEventListener('focusout', this.#blurred);
191
- node.focus({ preventScroll: true });
192
- $effect(() => {
193
- const row = this.rows[this.index];
194
- attribute(node, 'aria-activedescendant', inPage(node, row && this.rowId(row)));
195
- });
196
- return () => {
197
- node.removeEventListener('keydown', this.#keydown);
198
- node.removeEventListener('focusout', this.#blurred);
199
- };
150
+ const off2 = listen(node, 'focusout', this.panel.blurred);
151
+ const off = holdKeys(node, this.#keydown, () => this.rows.length ? this.rowId(this.index) : undefined);
152
+ return all(off, off2);
200
153
  });
201
154
  /** The search field's keys (`keys`). */
202
155
  #keydown = (event) => {
@@ -214,24 +167,6 @@ export class LanguageMenu {
214
167
  event.preventDefault();
215
168
  event.stopPropagation();
216
169
  };
217
- /**
218
- * The list (`{@attach menu.popup}`): its id, `listbox` role and name
219
- * unless it has its own, presses that keep the field's focus, and its
220
- * publication to the view's root (`edytor.popups`) while it is in the page.
221
- */
222
- popup = (node) => untrack(() => {
223
- node.id = this.listId;
224
- if (!node.hasAttribute('role'))
225
- node.setAttribute('role', 'listbox');
226
- if (!node.hasAttribute('aria-label') && !node.hasAttribute('aria-labelledby'))
227
- node.setAttribute('aria-label', this.labels.language);
228
- node.addEventListener('mousedown', keepFocus);
229
- this.edytor.popups.set('code-languages', { id: this.listId, haspopup: 'listbox' });
230
- return () => {
231
- node.removeEventListener('mousedown', keepFocus);
232
- this.edytor.popups.set('code-languages', null);
233
- };
234
- });
235
170
  /**
236
171
  * The keys back to the editor from a language button (its Escape): the
237
172
  * host takes the focus, the caret shown where the selection is.
@@ -239,44 +174,7 @@ export class LanguageMenu {
239
174
  */
240
175
  release = () => {
241
176
  this.close();
242
- const node = this.edytor.node;
243
- if (!node?.isConnected || this.edytor.destroyed)
244
- return;
245
- this.edytor.expectInternalFocus();
246
- node.focus({ preventScroll: true });
247
- this.edytor.selection.display();
248
- };
249
- /**
250
- * The view turned readonly: the list closes.
251
- * @internal
252
- */
253
- lock = () => this.close();
254
- /**
255
- * A press anywhere (capture): one outside the list and its button closes it.
256
- * @internal
257
- */
258
- pressed = (event) => {
259
- const open = this.open;
260
- if (!open)
261
- return;
262
- const at = event.target;
263
- if (at?.closest?.(HOST))
264
- return;
265
- if (at instanceof Node && this.#button(open.block)?.contains(at))
266
- return;
267
- this.close();
268
- };
269
- /** Focus left the field for somewhere outside the list and its button: it closes. */
270
- #blurred = (event) => {
271
- const open = this.open;
272
- const to = event.relatedTarget;
273
- // No new focus (the window went to the background): it stays.
274
- if (!open || !(to instanceof Node))
275
- return;
276
- const host = event.currentTarget?.closest(HOST);
277
- if (host?.contains(to) || this.#button(open.block)?.contains(to))
278
- return;
279
- this.close();
177
+ takeKeys(this.edytor);
280
178
  };
281
179
  /**
282
180
  * The language button of the code block holding a caret (where Alt+F10
@@ -284,42 +182,14 @@ export class LanguageMenu {
284
182
  * @internal
285
183
  */
286
184
  buttonAtCaret = () => {
287
- const { startBlock, isCollapsed } = this.edytor.selection.state;
185
+ const { startText } = this.edytor.selection.textRange();
186
+ const { isCollapsed } = this.edytor.selection.projection;
187
+ const startBlock = startText?.parent;
288
188
  const code = startBlock?.type === 'codeLine' ? startBlock.parent : null;
289
189
  if (!isCollapsed || !code || this.edytor.readonly)
290
190
  return null;
291
191
  return this.#button(code.id);
292
192
  };
293
- /**
294
- * The overlay measure: the button's box; gone, the list closes.
295
- * @internal
296
- */
297
- measure = (host, origin) => {
298
- const open = this.open;
299
- const button = open ? this.#button(open.block) : null;
300
- const rect = button?.isConnected ? button.getBoundingClientRect() : null;
301
- const box = rect
302
- ? {
303
- x: rect.left - origin.left,
304
- y: rect.top - origin.top,
305
- width: rect.width,
306
- height: rect.height
307
- }
308
- : null;
309
- return () => {
310
- Object.assign(host.style, { position: 'absolute', left: '0px', top: '0px' });
311
- if (open && !button)
312
- return this.close();
313
- const known = this.box;
314
- if (!known ||
315
- !box ||
316
- known.x !== box.x ||
317
- known.y !== box.y ||
318
- known.width !== box.width ||
319
- known.height !== box.height)
320
- this.box = box;
321
- };
322
- };
323
193
  /** The language button of code block `block`, in this view (the header's `button` attachment marks it). */
324
194
  #button = (block) => this.edytor.idToBlock
325
195
  .get(block)
@@ -7,8 +7,6 @@
7
7
  */
8
8
  import { type LanguageDefinition } from '@tanstack/highlight/core';
9
9
  import type { JSONText } from '../../utils/json.js';
10
- import type { Edytor } from '../../edytor.svelte.js';
11
- import { type CodeLabels, type PartialLabels } from '../../labels.js';
12
10
  import type { Snippet } from 'svelte';
13
11
  import type { CodeHeader } from './header.svelte.js';
14
12
  import type { LanguageMenu } from './languageMenu.svelte.js';
@@ -40,28 +38,22 @@ export declare const loadCodeLanguage: (language: CodeLanguage) => Promise<void>
40
38
  */
41
39
  export declare const tokenizeCode: (code: string, language: CodeLanguage | undefined) => JSONText[];
42
40
  export type CodePluginOptions = {
43
- /** The languages a code block may be in, in the header's order. Default `CODE_LANGUAGES`. */
41
+ /** The languages a code block may be in, in the header's order, with their names. Default `CODE_LANGUAGES`. */
44
42
  languages?: readonly CodeLanguage[];
45
43
  /** The language of a code block whose `data.language` is unset. Default `'javascript'`. */
46
44
  defaultLanguage?: string;
47
45
  /**
48
- * The words the code block shows (its menu row, header, a language's
49
- * label by id), over the English ones.
50
- */
51
- labels?: PartialLabels<'code'>;
52
- /** The slash menu's keywords of the code command (`block.code`), which replace its own. */
53
- keywords?: Partial<Record<string, string[]>>;
54
- /**
55
- * Replace a code block's header (the language's button and Copy): it
56
- * renders above the code, in the block's non-editable part. Put
57
- * `{@attach header.button}` on the element that opens the language list.
46
+ * A code block's header (the language's button and Copy) and its words: it renders
47
+ * above the code, in the block's non-editable part (without it, no
48
+ * header). Put `{@attach header.button}` on the element that opens the
49
+ * language list.
58
50
  */
59
51
  header?: Snippet<[CodeHeader]>;
60
52
  /**
61
- * Replace the language list: it renders under the header's button while
62
- * `menu.open` is set. Put `{@attach menu.keys}` on its search field,
63
- * `{@attach menu.popup}` on the list, and spread `item.option` (or
64
- * `menu.option(index)`) on each row of `menu.items`. The first code
53
+ * The language list: it renders under the header's button while
54
+ * `menu.open` is set (without it, nothing shows). Put `{@attach menu.keys}` on its search field,
55
+ * `{@attach menu.popup}` on the list, and `{@attach item.option}` on each
56
+ * row of `menu.items` (its highlight from `item.selected`). The first code
65
57
  * plugin listed in a view owns its list.
66
58
  */
67
59
  menu?: Snippet<[LanguageMenu]>;
@@ -69,17 +61,12 @@ export type CodePluginOptions = {
69
61
  export type CodeSettings = {
70
62
  languages: readonly CodeLanguage[];
71
63
  defaultLanguage: string;
72
- labels: CodeLabels;
73
64
  /** The app's header markup, if any. */
74
65
  header?: Snippet<[CodeHeader]>;
75
66
  /** The app's language list markup, if any. */
76
67
  menu?: Snippet<[LanguageMenu]>;
77
68
  };
78
69
  export declare const DEFAULT_CODE_SETTINGS: CodeSettings;
79
- /** A language's label as shown: the labels' `languages` entry for its id, else its own. */
80
- export declare const languageLabel: (language: CodeLanguage, { labels }: CodeSettings) => string;
81
- /** Each view's code options, for its code blocks' header (which reads them through its view). */
82
- export declare const codeSettings: WeakMap<Edytor, CodeSettings>;
83
70
  /** A code block's language id: its `data.language`, else the default. */
84
71
  export declare const languageOf: (data: {
85
72
  language?: unknown;