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
@@ -0,0 +1,141 @@
1
+ /**
2
+ * A code block's header (`code.language`): the block's language, a button
3
+ * that opens the view's language list (`LanguageMenu`) and Copy. One per
4
+ * rendered code block with the app's `header` snippet, whose attachment
5
+ * (`button`) gives its markup the keys and the ARIA.
6
+ */
7
+ import { untrack } from 'svelte';
8
+ import { Text } from '../../text/text.svelte.js';
9
+ import { attribute } from '../chrome.js';
10
+ import { languageOf } from './languages.js';
11
+ import { all, listen } from '../../utils/listen.js';
12
+ /** How long Copy reads Copied after a copy, in milliseconds. */
13
+ const COPIED_FOR = 1200;
14
+ /** A code block's text: its lines, joined by newlines. */
15
+ const codeText = (code) => code.children
16
+ .map((line) => line.content.map((part) => (part instanceof Text ? part.stringContent : '')).join(''))
17
+ .join('\n');
18
+ /**
19
+ * What a code plugin's `header` snippet receives: the code block's
20
+ * language (`language`, its id; `label`, as shown), whether the language may be changed here
21
+ * (`editable`: an editable view, not a suggestion's preview), the list's
22
+ * state (`expanded`), the actions (`toggle`, the list's own `pick`, `copy`, and
23
+ * `copied` for a moment after a copy) and the plugin's `labels`. Put
24
+ * `{@attach header.button}` on the element that opens the language list:
25
+ * it opens it on a click, ArrowDown or ArrowUp, Escape gives the keys back
26
+ * to the editor, the toolbar's shortcut at a caret in the block reaches it, and it carries
27
+ * the ARIA (`aria-haspopup`, `aria-expanded`, `aria-controls`, its name).
28
+ */
29
+ export class CodeHeader {
30
+ view;
31
+ settings;
32
+ menu;
33
+ /** Copy just copied: the button may read Copied (reactive, for a moment). */
34
+ copied = $state(false);
35
+ #timer;
36
+ /** @internal */
37
+ constructor(
38
+ /**
39
+ * The code block as its snippet reads it.
40
+ * @internal
41
+ */
42
+ view,
43
+ /** @internal */
44
+ settings,
45
+ /**
46
+ * The view's language list (none in a view without one).
47
+ * @internal
48
+ */
49
+ menu) {
50
+ this.view = view;
51
+ this.settings = settings;
52
+ this.menu = menu;
53
+ }
54
+ /** The code block; `undefined` in a suggestion's preview. */
55
+ get block() {
56
+ return this.view().handle;
57
+ }
58
+ /** The block's language id: its `data.language`, else the plugin's default (reactive). */
59
+ get language() {
60
+ return languageOf(this.view().data, this.settings);
61
+ }
62
+ /** The language's label; a language the plugin does not list shows its id (reactive). */
63
+ get label() {
64
+ const language = this.language;
65
+ return this.settings.languages.find((row) => row.id === language)?.label ?? language;
66
+ }
67
+ /** The view is readonly (reactive). */
68
+ get readonly() {
69
+ return this.view().handle?.edytor.readonly ?? true;
70
+ }
71
+ /** The language may be changed here: an editable view, not a suggestion's preview (reactive). */
72
+ get editable() {
73
+ return Boolean(this.menu && this.view().handle && !this.readonly);
74
+ }
75
+ /** The language list is open on this block (reactive). */
76
+ get expanded() {
77
+ const block = this.view().handle;
78
+ return Boolean(block && this.menu?.isOpenFor(block.id));
79
+ }
80
+ /**
81
+ * Open the language list under the header's button, or close it (`keys`:
82
+ * the keyboard opened it, so the keys go back to the button after).
83
+ */
84
+ toggle = (keys = false) => {
85
+ const block = this.view().handle;
86
+ if (block && this.editable)
87
+ this.menu?.toggle(block.id, keys);
88
+ };
89
+ /** Copy the block's code to the clipboard; `copied` reads true for a moment. */
90
+ copy = async () => {
91
+ const block = this.view().handle;
92
+ // A suggestion's preview has no block to copy.
93
+ if (!block)
94
+ return;
95
+ await navigator.clipboard.writeText(codeText(block));
96
+ this.copied = true;
97
+ clearTimeout(this.#timer);
98
+ this.#timer = setTimeout(() => (this.copied = false), COPIED_FOR);
99
+ };
100
+ /**
101
+ * The element that opens the language list (`{@attach header.button}`, a
102
+ * `button`): a click opens or closes it (from Enter or Space, the keys
103
+ * opened it and get it back), ArrowDown or ArrowUp opens it, Escape gives
104
+ * the keys back to the editor; a press keeps the editor's selection. It
105
+ * carries `aria-haspopup="listbox"`, `aria-expanded`, `aria-controls`
106
+ * while the list is open, and its name ("Code language: SQL") unless
107
+ * you set one; the toolbar's shortcut at a caret in the block focuses it.
108
+ */
109
+ button = (node) => untrack(() => {
110
+ node.setAttribute('data-edytor-code-language-button', '');
111
+ node.setAttribute('aria-haspopup', 'listbox');
112
+ const mousedown = (event) => event.preventDefault();
113
+ // A click from Enter or Space has no pointer (`detail` 0): the keys opened it.
114
+ const click = (event) => this.toggle(event.detail === 0);
115
+ const keydown = (event) => {
116
+ if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
117
+ if (!this.expanded)
118
+ this.toggle(true);
119
+ }
120
+ else if (event.key === 'Escape')
121
+ this.menu?.release();
122
+ else
123
+ return;
124
+ event.preventDefault();
125
+ };
126
+ const off = listen(node, 'mousedown', mousedown);
127
+ const off2 = listen(node, 'click', click);
128
+ const off3 = listen(node, 'keydown', keydown);
129
+ $effect(() => {
130
+ const expanded = this.expanded;
131
+ attribute(node, 'aria-expanded', String(expanded));
132
+ attribute(node, 'aria-controls', expanded ? this.menu?.listId : undefined);
133
+ });
134
+ return all(off, off2, off3);
135
+ });
136
+ /**
137
+ * The header is gone: Copied's timer goes with it.
138
+ * @internal
139
+ */
140
+ dispose = () => clearTimeout(this.#timer);
141
+ }
@@ -0,0 +1,84 @@
1
+ import type { Attachment } from 'svelte/attachments';
2
+ import type { Edytor } from '../../edytor.svelte.js';
3
+ import { type MenuItemPayload } from '../chrome.js';
4
+ import { ChromeList } from '../list.svelte.js';
5
+ /** A row of the language list: a language id and its label as shown. */
6
+ export type LanguageRow = {
7
+ id: string;
8
+ label: string;
9
+ };
10
+ /**
11
+ * One row of the language list, for your `menu`: the row shape every
12
+ * menu shares (`item` is the language, `run` picks it), and whether it is
13
+ * the block's own language (`current`, the demo's ✓).
14
+ */
15
+ export type LanguageMenuItem = MenuItemPayload<LanguageRow> & {
16
+ /** It is the block's language. */
17
+ current: boolean;
18
+ };
19
+ /**
20
+ * One view's code language list (Notion's): the header's language button
21
+ * opens it in the overlay under the button, a search field over the
22
+ * languages (by label or id), the block's own marked. The field holds the
23
+ * keys: the arrows move the highlighted row, Enter picks it, Escape
24
+ * closes. A pick writes the block's `data.language` (one `patchData`
25
+ * command, one undo step). Opened by the keys, the list gives them back to
26
+ * its button; opened by a press, to the editor. A press or a focus outside
27
+ * closes it, as readonly does.
28
+ *
29
+ * What a `menu` snippet receives: the open list (`open`), the query
30
+ * and its rows (`query`, `items`, each a `MenuItemPayload`), the keyboard's
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
+ */
35
+ export declare class LanguageMenu extends ChromeList {
36
+ #private;
37
+ /** The code block whose list is open, and whether the keys opened it (reactive). */
38
+ open: {
39
+ block: string;
40
+ keys: boolean;
41
+ } | null;
42
+ /** The search field's text. */
43
+ query: string;
44
+ /** The view is readonly (reactive): the list closes. */
45
+ get readonly(): boolean;
46
+ /** The open block's language id. */
47
+ get current(): string | null;
48
+ /** The rows the query keeps: a language the plugin does not list first (the block's own), then the list. */
49
+ get rows(): readonly LanguageRow[];
50
+ /**
51
+ * The rows for your `menu`: each the row shape every menu shares
52
+ * (`run` picks it, `select` highlights it, `option` its attributes), and
53
+ * whether it is the block's language (`current`).
54
+ */
55
+ get items(): LanguageMenuItem[];
56
+ protected get count(): number;
57
+ /** Whether `block`'s list is open. */
58
+ isOpenFor: (block: string) => boolean;
59
+ /** Open `block`'s list (`keys`: the keyboard opened it), or close it when it is open. */
60
+ toggle: (block: string, keys: boolean) => void;
61
+ /** A new query: the first row it keeps is highlighted. */
62
+ search: (query: string) => void;
63
+ /** Pick `row` (the highlighted one): the block's language, one undo step; the list closes. */
64
+ pick: (row?: LanguageRow | undefined) => void;
65
+ /**
66
+ * Close the list; the keys go back to its button (`button`), to the
67
+ * editor (`editor`: its caret where it was), or stay where a press or a
68
+ * focus put them (`null`).
69
+ */
70
+ close: (keys?: "button" | "editor" | null) => void;
71
+ /**
72
+ * The search field (`{@attach menu.keys}`): it takes the focus as the
73
+ * list opens and is its `combobox` (unless it has a role), naming the
74
+ * list and the highlighted row (`aria-controls`,
75
+ * `aria-activedescendant`). ArrowDown and ArrowUp move the highlighted
76
+ * row (around the ends), Enter picks it, Escape closes the list (the
77
+ * keys back to the button when they opened it, else to the editor);
78
+ * none reaches the editor. Focus leaving the list and its button closes
79
+ * it.
80
+ */
81
+ keys: Attachment<HTMLElement>;
82
+ }
83
+ /** Each view's language list (the first code plugin listed owns it). */
84
+ export declare const languageMenus: WeakMap<Edytor, LanguageMenu>;
@@ -0,0 +1,199 @@
1
+ import { untrack } from 'svelte';
2
+ import { takeKeys } from '../../events/onFocus.js';
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';
8
+ /**
9
+ * One view's code language list (Notion's): the header's language button
10
+ * opens it in the overlay under the button, a search field over the
11
+ * languages (by label or id), the block's own marked. The field holds the
12
+ * keys: the arrows move the highlighted row, Enter picks it, Escape
13
+ * closes. A pick writes the block's `data.language` (one `patchData`
14
+ * command, one undo step). Opened by the keys, the list gives them back to
15
+ * its button; opened by a press, to the editor. A press or a focus outside
16
+ * closes it, as readonly does.
17
+ *
18
+ * What a `menu` snippet receives: the open list (`open`), the query
19
+ * and its rows (`query`, `items`, each a `MenuItemPayload`), the keyboard's
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.
23
+ */
24
+ export class LanguageMenu extends ChromeList {
25
+ settings;
26
+ /** The code block whose list is open, and whether the keys opened it (reactive). */
27
+ open = $state.raw(null);
28
+ /** The search field's text. */
29
+ query = $state('');
30
+ /**
31
+ * The list's panel under its button: its place, and what closes it.
32
+ * @internal
33
+ */
34
+ panel;
35
+ /** @internal */
36
+ constructor(edytor,
37
+ /** @internal */
38
+ settings) {
39
+ super(edytor, 'code-languages', 'listbox');
40
+ this.settings = settings;
41
+ this.panel = new Anchored(edytor, 'edytor-code-language-host', () => (this.open ? this.#button(this.open.block) : undefined), () => this.close());
42
+ }
43
+ /** The view is readonly (reactive): the list closes. */
44
+ get readonly() {
45
+ return this.edytor.readonly;
46
+ }
47
+ /** The open block's language id. */
48
+ get current() {
49
+ const open = this.open;
50
+ if (!open)
51
+ return null;
52
+ return languageOf(this.edytor.idToBlock.get(open.block)?.data, this.settings);
53
+ }
54
+ /** The rows the query keeps: a language the plugin does not list first (the block's own), then the list. */
55
+ get rows() {
56
+ const current = this.current;
57
+ const listed = this.settings.languages;
58
+ const all = current && !listed.some((row) => row.id === current)
59
+ ? [{ id: current, label: current }, ...listed]
60
+ : listed;
61
+ const query = this.query.trim().toLowerCase();
62
+ if (!query)
63
+ return all;
64
+ return all.filter((row) => row.label.toLowerCase().includes(query) || row.id.toLowerCase().includes(query));
65
+ }
66
+ /**
67
+ * The rows for your `menu`: each the row shape every menu shares
68
+ * (`run` picks it, `select` highlights it, `option` its attributes), and
69
+ * whether it is the block's language (`current`).
70
+ */
71
+ get items() {
72
+ const current = this.current;
73
+ return this.rows.map((row, index) => ({
74
+ item: row,
75
+ id: this.rowId(index),
76
+ selected: index === this.index,
77
+ current: row.id === current,
78
+ run: () => this.pick(row),
79
+ select: () => (this.index = index),
80
+ option: this.option(index)
81
+ }));
82
+ }
83
+ get count() {
84
+ return this.rows.length;
85
+ }
86
+ /** Whether `block`'s list is open. */
87
+ isOpenFor = (block) => this.open?.block === block;
88
+ /** Open `block`'s list (`keys`: the keyboard opened it), or close it when it is open. */
89
+ toggle = (block, keys) => {
90
+ if (this.isOpenFor(block))
91
+ return this.close(keys ? 'button' : 'editor');
92
+ if (!this.edytor.dispatcher.permits() || !this.edytor.idToBlock.get(block)?.isInTree)
93
+ return;
94
+ this.query = '';
95
+ this.open = { block, keys };
96
+ this.index = Math.max(0, this.rows.findIndex((row) => row.id === this.current));
97
+ this.edytor.overlay.invalidate();
98
+ };
99
+ /** A new query: the first row it keeps is highlighted. */
100
+ search = (query) => {
101
+ this.query = query;
102
+ this.index = 0;
103
+ };
104
+ /** Pick `row` (the highlighted one): the block's language, one undo step; the list closes. */
105
+ pick = (row = this.rows[this.index]) => {
106
+ const open = this.open;
107
+ if (!open || !row)
108
+ return;
109
+ const block = this.edytor.idToBlock.get(open.block);
110
+ if (block?.isInTree && row.id !== this.current)
111
+ block.edytor.patchData(block.id, [{ path: ['language'], value: row.id }]);
112
+ this.close(open.keys ? 'button' : 'editor');
113
+ };
114
+ /**
115
+ * Close the list; the keys go back to its button (`button`), to the
116
+ * editor (`editor`: its caret where it was), or stay where a press or a
117
+ * focus put them (`null`).
118
+ */
119
+ close = (keys = null) => {
120
+ const open = this.open;
121
+ if (!open)
122
+ return;
123
+ this.open = null;
124
+ this.panel.box = null;
125
+ this.query = '';
126
+ this.edytor.overlay.invalidate();
127
+ if (keys === 'button')
128
+ this.#button(open.block)?.focus({ preventScroll: true });
129
+ else if (keys === 'editor') {
130
+ takeKeys(this.edytor);
131
+ this.edytor.selection.display();
132
+ }
133
+ };
134
+ /**
135
+ * The search field (`{@attach menu.keys}`): it takes the focus as the
136
+ * list opens and is its `combobox` (unless it has a role), naming the
137
+ * list and the highlighted row (`aria-controls`,
138
+ * `aria-activedescendant`). ArrowDown and ArrowUp move the highlighted
139
+ * row (around the ends), Enter picks it, Escape closes the list (the
140
+ * keys back to the button when they opened it, else to the editor);
141
+ * none reaches the editor. Focus leaving the list and its button closes
142
+ * it.
143
+ */
144
+ keys = (node) => untrack(() => {
145
+ if (!node.hasAttribute('role'))
146
+ node.setAttribute('role', 'combobox');
147
+ node.setAttribute('aria-expanded', 'true');
148
+ node.setAttribute('aria-autocomplete', 'list');
149
+ attribute(node, 'aria-controls', this.listId);
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);
153
+ });
154
+ /** The search field's keys (`keys`). */
155
+ #keydown = (event) => {
156
+ if (event.isComposing)
157
+ return;
158
+ const step = { ArrowDown: 1, ArrowUp: -1 }[event.key];
159
+ if (step)
160
+ this.move(step);
161
+ else if (event.key === 'Enter')
162
+ this.pick();
163
+ else if (event.key === 'Escape')
164
+ this.close(this.open?.keys ? 'button' : 'editor');
165
+ else
166
+ return;
167
+ event.preventDefault();
168
+ event.stopPropagation();
169
+ };
170
+ /**
171
+ * The keys back to the editor from a language button (its Escape): the
172
+ * host takes the focus, the caret shown where the selection is.
173
+ * @internal
174
+ */
175
+ release = () => {
176
+ this.close();
177
+ takeKeys(this.edytor);
178
+ };
179
+ /**
180
+ * The language button of the code block holding a caret (where Alt+F10
181
+ * takes the keys, as to a toolbar), if any.
182
+ * @internal
183
+ */
184
+ buttonAtCaret = () => {
185
+ const { startText } = this.edytor.selection.textRange();
186
+ const { isCollapsed } = this.edytor.selection.projection;
187
+ const startBlock = startText?.parent;
188
+ const code = startBlock?.type === 'codeLine' ? startBlock.parent : null;
189
+ if (!isCollapsed || !code || this.edytor.readonly)
190
+ return null;
191
+ return this.#button(code.id);
192
+ };
193
+ /** The language button of code block `block`, in this view (the header's `button` attachment marks it). */
194
+ #button = (block) => this.edytor.idToBlock
195
+ .get(block)
196
+ ?.node?.querySelector('[data-edytor-code-language-button]') ?? null;
197
+ }
198
+ /** Each view's language list (the first code plugin listed owns it). */
199
+ export const languageMenus = new WeakMap();
@@ -8,7 +8,9 @@
8
8
  import { type LanguageDefinition } from '@tanstack/highlight/core';
9
9
  import type { JSONText } from '../../utils/json.js';
10
10
  import type { Edytor } from '../../edytor.svelte.js';
11
- import { type CodeLabels, type PartialLabels } from '../../labels.js';
11
+ import type { Snippet } from 'svelte';
12
+ import type { CodeHeader } from './header.svelte.js';
13
+ import type { LanguageMenu } from './languageMenu.svelte.js';
12
14
  /** A language a code block may be in. */
13
15
  export type CodeLanguage = {
14
16
  /** Stored in the code block's `data.language`. */
@@ -37,26 +39,35 @@ export declare const loadCodeLanguage: (language: CodeLanguage) => Promise<void>
37
39
  */
38
40
  export declare const tokenizeCode: (code: string, language: CodeLanguage | undefined) => JSONText[];
39
41
  export type CodePluginOptions = {
40
- /** The languages a code block may be in, in the header's order. Default `CODE_LANGUAGES`. */
42
+ /** The languages a code block may be in, in the header's order, with their names. Default `CODE_LANGUAGES`. */
41
43
  languages?: readonly CodeLanguage[];
42
44
  /** The language of a code block whose `data.language` is unset. Default `'javascript'`. */
43
45
  defaultLanguage?: string;
44
46
  /**
45
- * The words the code block shows (its menu row, header, a language's
46
- * label by id), over the English ones.
47
+ * A code block's header (the language's button and Copy) and its words: it renders
48
+ * above the code, in the block's non-editable part (without it, no
49
+ * header). Put `{@attach header.button}` on the element that opens the
50
+ * language list.
47
51
  */
48
- labels?: PartialLabels<'code'>;
49
- /** The slash menu's keywords of the code command (`block.code`), which replace its own. */
50
- keywords?: Partial<Record<string, string[]>>;
52
+ header?: Snippet<[CodeHeader]>;
53
+ /**
54
+ * The language list: it renders under the header's button while
55
+ * `menu.open` is set (without it, nothing shows). Put `{@attach menu.keys}` on its search field,
56
+ * `{@attach menu.popup}` on the list, and `{@attach item.option}` on each
57
+ * row of `menu.items` (its highlight from `item.selected`). The first code
58
+ * plugin listed in a view owns its list.
59
+ */
60
+ menu?: Snippet<[LanguageMenu]>;
51
61
  };
52
62
  export type CodeSettings = {
53
63
  languages: readonly CodeLanguage[];
54
64
  defaultLanguage: string;
55
- labels: CodeLabels;
65
+ /** The app's header markup, if any. */
66
+ header?: Snippet<[CodeHeader]>;
67
+ /** The app's language list markup, if any. */
68
+ menu?: Snippet<[LanguageMenu]>;
56
69
  };
57
70
  export declare const DEFAULT_CODE_SETTINGS: CodeSettings;
58
- /** A language's label as shown: the labels' `languages` entry for its id, else its own. */
59
- export declare const languageLabel: (language: CodeLanguage, { labels }: CodeSettings) => string;
60
71
  /** Each view's code options, for its code blocks' header (which reads them through its view). */
61
72
  export declare const codeSettings: WeakMap<Edytor, CodeSettings>;
62
73
  /** A code block's language id: its `data.language`, else the default. */
@@ -8,132 +8,48 @@
8
8
  import { createHighlighter } from '@tanstack/highlight/core';
9
9
  import { jsx } from '@tanstack/highlight/languages/jsx';
10
10
  import { SvelteMap } from 'svelte/reactivity';
11
- import { englishLabels } from '../../labels.js';
12
- const scripts = () => Promise.all([
13
- import('@tanstack/highlight/languages/css'),
14
- import('@tanstack/highlight/languages/js'),
15
- import('@tanstack/highlight/languages/ts')
16
- ]).then(([{ css }, { js }, { ts }]) => [css, js, ts]);
17
- /** A markup grammar with the style and script grammars it embeds. */
18
- const markup = (grammar) => () => Promise.all([grammar(), scripts()]).then(([own, embedded]) => [own, ...embedded]);
11
+ /** The grammars more than one language loads. */
12
+ const css = () => import('@tanstack/highlight/languages/css');
13
+ const ts = () => import('@tanstack/highlight/languages/ts');
14
+ const html = () => import('@tanstack/highlight/languages/html');
15
+ const scripts = () => Promise.all([css(), import('@tanstack/highlight/languages/js'), ts()]).then(([{ css }, { js }, { ts }]) => [css, js, ts]);
16
+ /**
17
+ * A listed language: its lines are tokenized with `grammar` (its id unless
18
+ * named), the definition the module `load` imports exports by that name; a
19
+ * markup grammar (`embeds`) also loads the style and script grammars it embeds.
20
+ */
21
+ const language = (id, label, load, grammar = id, embeds = false) => ({
22
+ id,
23
+ label,
24
+ grammar,
25
+ load: () => Promise.all([load(), embeds ? scripts() : []]).then(([module, embedded]) => [
26
+ module[grammar],
27
+ ...embedded
28
+ ])
29
+ });
19
30
  /** The default languages, after Notion's list, sorted by label (Plain text first). */
20
31
  export const CODE_LANGUAGES = [
21
32
  { id: 'plaintext', label: 'Plain text' },
22
- {
23
- id: 'bash',
24
- label: 'Bash',
25
- grammar: 'shell',
26
- load: () => import('@tanstack/highlight/languages/shell').then((m) => [m.shell])
27
- },
28
- {
29
- id: 'cpp',
30
- label: 'C++',
31
- grammar: 'cpp',
32
- load: () => import('@tanstack/highlight/languages/cpp').then((m) => [m.cpp])
33
- },
34
- {
35
- id: 'css',
36
- label: 'CSS',
37
- grammar: 'css',
38
- load: () => import('@tanstack/highlight/languages/css').then((m) => [m.css])
39
- },
40
- {
41
- id: 'diff',
42
- label: 'Diff',
43
- grammar: 'diff',
44
- load: () => import('@tanstack/highlight/languages/diff').then((m) => [m.diff])
45
- },
46
- {
47
- id: 'docker',
48
- label: 'Docker',
49
- grammar: 'dockerfile',
50
- load: () => import('@tanstack/highlight/languages/dockerfile').then((m) => [m.dockerfile])
51
- },
52
- {
53
- id: 'go',
54
- label: 'Go',
55
- grammar: 'go',
56
- load: () => import('@tanstack/highlight/languages/go').then((m) => [m.go])
57
- },
58
- {
59
- id: 'html',
60
- label: 'HTML',
61
- grammar: 'html',
62
- load: markup(() => import('@tanstack/highlight/languages/html').then((m) => m.html))
63
- },
33
+ language('bash', 'Bash', () => import('@tanstack/highlight/languages/shell'), 'shell'),
34
+ language('cpp', 'C++', () => import('@tanstack/highlight/languages/cpp')),
35
+ language('css', 'CSS', css),
36
+ language('diff', 'Diff', () => import('@tanstack/highlight/languages/diff')),
37
+ language('docker', 'Docker', () => import('@tanstack/highlight/languages/dockerfile'), 'dockerfile'),
38
+ language('go', 'Go', () => import('@tanstack/highlight/languages/go')),
39
+ language('html', 'HTML', html, 'html', true),
64
40
  { id: 'javascript', label: 'JavaScript', grammar: 'jsx', load: async () => [jsx] },
65
- {
66
- id: 'json',
67
- label: 'JSON',
68
- grammar: 'json',
69
- load: () => import('@tanstack/highlight/languages/json').then((m) => [m.json])
70
- },
71
- {
72
- id: 'markdown',
73
- label: 'Markdown',
74
- grammar: 'markdown',
75
- load: () => import('@tanstack/highlight/languages/markdown').then((m) => [m.markdown])
76
- },
77
- {
78
- id: 'mermaid',
79
- label: 'Mermaid',
80
- grammar: 'mermaid',
81
- load: () => import('@tanstack/highlight/languages/mermaid').then((m) => [m.mermaid])
82
- },
83
- {
84
- id: 'php',
85
- label: 'PHP',
86
- grammar: 'php',
87
- load: () => import('@tanstack/highlight/languages/php').then((m) => [m.php])
88
- },
89
- {
90
- id: 'python',
91
- label: 'Python',
92
- grammar: 'python',
93
- load: () => import('@tanstack/highlight/languages/python').then((m) => [m.python])
94
- },
95
- {
96
- id: 'sql',
97
- label: 'SQL',
98
- grammar: 'sql',
99
- load: () => import('@tanstack/highlight/languages/sql').then((m) => [m.sql])
100
- },
101
- {
102
- id: 'svelte',
103
- label: 'Svelte',
104
- grammar: 'svelte',
105
- load: markup(() => import('@tanstack/highlight/languages/svelte').then((m) => m.svelte))
106
- },
107
- {
108
- id: 'toml',
109
- label: 'TOML',
110
- grammar: 'toml',
111
- load: () => import('@tanstack/highlight/languages/toml').then((m) => [m.toml])
112
- },
113
- {
114
- id: 'typescript',
115
- label: 'TypeScript',
116
- grammar: 'ts',
117
- load: () => import('@tanstack/highlight/languages/ts').then((m) => [m.ts])
118
- },
119
- {
120
- id: 'vue',
121
- label: 'Vue',
122
- grammar: 'vue',
123
- load: markup(() => import('@tanstack/highlight/languages/vue').then((m) => m.vue))
124
- },
125
- {
126
- id: 'xml',
127
- label: 'XML',
128
- grammar: 'html',
129
- load: () => import('@tanstack/highlight/languages/html').then((m) => [m.html])
130
- },
131
- {
132
- id: 'yaml',
133
- label: 'YAML',
134
- grammar: 'yaml',
135
- load: () => import('@tanstack/highlight/languages/yaml').then((m) => [m.yaml])
136
- }
41
+ language('json', 'JSON', () => import('@tanstack/highlight/languages/json')),
42
+ language('markdown', 'Markdown', () => import('@tanstack/highlight/languages/markdown')),
43
+ language('mermaid', 'Mermaid', () => import('@tanstack/highlight/languages/mermaid')),
44
+ language('php', 'PHP', () => import('@tanstack/highlight/languages/php')),
45
+ language('python', 'Python', () => import('@tanstack/highlight/languages/python')),
46
+ language('sql', 'SQL', () => import('@tanstack/highlight/languages/sql')),
47
+ language('svelte', 'Svelte', () => import('@tanstack/highlight/languages/svelte'), 'svelte', true),
48
+ language('toml', 'TOML', () => import('@tanstack/highlight/languages/toml')),
49
+ language('typescript', 'TypeScript', ts, 'ts'),
50
+ language('vue', 'Vue', () => import('@tanstack/highlight/languages/vue'), 'vue', true),
51
+ language('xml', 'XML', html, 'html'),
52
+ language('yaml', 'YAML', () => import('@tanstack/highlight/languages/yaml'))
137
53
  ];
138
54
  /**
139
55
  * The grammars loaded so far, by name, shared by every editor (a grammar is
@@ -181,11 +97,8 @@ export const tokenizeCode = (code, language) => {
181
97
  };
182
98
  export const DEFAULT_CODE_SETTINGS = {
183
99
  languages: CODE_LANGUAGES,
184
- defaultLanguage: 'javascript',
185
- labels: englishLabels.code
100
+ defaultLanguage: 'javascript'
186
101
  };
187
- /** A language's label as shown: the labels' `languages` entry for its id, else its own. */
188
- export const languageLabel = (language, { labels }) => labels.languages[language.id] ?? language.label;
189
102
  /** Each view's code options, for its code blocks' header (which reads them through its view). */
190
103
  export const codeSettings = new WeakMap();
191
104
  /** A code block's language id: its `data.language`, else the default. */