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
@@ -4,9 +4,12 @@
4
4
  import type { Block } from '../../block/block.svelte.js';
5
5
  import type { Edytor } from '../../edytor.svelte.js';
6
6
  import { tableKinds } from '../../crdt/semantics.js';
7
- import { tableBlock, unlistedOrder } from '../../crdt/tables.js';
7
+ import { listedColumns, tableBlock, unlistedOrder } from '../../crdt/tables.js';
8
8
  import { onPress } from '../../events/onFocus.js';
9
- import { keywordsOf, labelsWith, viewLabels } from '../../labels.js';
9
+ import { all } from '../../utils/listen.js';
10
+ import type { HotKey } from '../../session/keymap.js';
11
+ import { tableEnglish, keywordsOf, labelsOf, type TableLabels } from '../../labels.js';
12
+ import { hoverChrome } from '../bands.svelte.js';
10
13
  import TableChromeLayer from './TableChrome.svelte';
11
14
  import { TableChrome } from './chrome.svelte.js';
12
15
  import {
@@ -17,6 +20,7 @@
17
20
  gridOf,
18
21
  insertColumn,
19
22
  insertRow,
23
+ kebab,
20
24
  positionOf,
21
25
  tableOf,
22
26
  tabFrom,
@@ -28,21 +32,8 @@
28
32
 
29
33
  export type { TablePluginOptions };
30
34
 
31
- const tablePlugins = new WeakSet<Plugin>();
32
35
  /** Each view's chrome (the first table plugin listed in it claims the view). */
33
36
  const chromes = new WeakMap<Edytor, TableChrome>();
34
- const labelsOf = viewLabels('table');
35
-
36
- /** Recognize any table plugin instance. */
37
- export const isTablePlugin = (plugin: Plugin) => tablePlugins.has(plugin);
38
-
39
- /** The ids of a row's cell, its row and its table, from the handle (stable while it shows). */
40
- const parentsOf = (edytor: Edytor, id: string | undefined) => {
41
- const cell = id ? edytor.idToBlock.get(id) : undefined;
42
- const row = cell?.parent;
43
- const table = row?.parent;
44
- return { cell, row, table };
45
- };
46
37
 
47
38
  /**
48
39
  * The column ids `table`'s rows show, read from the cells (reactive), as
@@ -52,14 +43,9 @@
52
43
  */
53
44
  const columnsOfTable = (edytor: Edytor, table: string): string[] => {
54
45
  const cell = edytor.cells?.get(table);
55
- const listed = cell?.data?.columns;
56
- if (Array.isArray(listed)) {
57
- const ids = new Set(
58
- listed.flatMap((c) => {
59
- const id = (c as { id?: unknown } | null)?.id;
60
- return typeof id === 'string' ? [id] : [];
61
- })
62
- );
46
+ const listed = listedColumns(cell?.data);
47
+ if (listed !== null) {
48
+ const ids = new Set(listed);
63
49
  const unlisted = (cell?.childIds ?? []).flatMap((row) =>
64
50
  (edytor.cells?.get(row)?.childIds ?? []).flatMap((id) => {
65
51
  const column = edytor.cells?.get(id)?.data?.column;
@@ -84,15 +70,10 @@
84
70
  * listed ones.
85
71
  */
86
72
  const columnIndex = (edytor: Edytor, table: string, row: string, id: string): number => {
87
- const listed = edytor.cells?.get(table)?.data?.columns;
88
- if (!Array.isArray(listed)) return edytor.cells?.get(row)?.childIds.indexOf(id) ?? -1;
73
+ const ids = listedColumns(edytor.cells?.get(table)?.data);
74
+ if (ids === null) return edytor.cells?.get(row)?.childIds.indexOf(id) ?? -1;
89
75
  const column = edytor.cells?.get(id)?.data?.column;
90
76
  if (typeof column !== 'string') return -1;
91
- const ids: string[] = [];
92
- for (const c of listed) {
93
- const at = (c as { id?: unknown } | null)?.id;
94
- if (typeof at === 'string' && !ids.includes(at)) ids.push(at);
95
- }
96
77
  const index = ids.indexOf(column);
97
78
  return index !== -1 ? index : columnsOfTable(edytor, table).indexOf(column);
98
79
  };
@@ -118,23 +99,20 @@
118
99
  const minColumnWidth = options.minColumnWidth ?? 48;
119
100
  const fresh = tableBlock({ rows: options.rows ?? 3, columns: options.columns ?? 3 });
120
101
  const plugin: Plugin = (edytor) => {
121
- const labels = labelsWith('table', options.labels);
122
- labelsOf.claim(edytor, labels);
123
- const chrome =
124
- chromes.get(edytor) ?? new TableChrome(edytor, labels, columnWidth, minColumnWidth);
102
+ const labels = labelsOf(edytor, 'table', tableEnglish);
103
+ const chrome = chromes.get(edytor) ?? new TableChrome(edytor, columnWidth, minColumnWidth);
125
104
  chromes.set(edytor, chrome);
126
105
  /** A cell's element: its role, its column, and whether a header row or column holds it. */
127
- const cellElement = (data: Record<string, unknown>, id?: string) => {
128
- const { row, table } = parentsOf(edytor, id);
129
- const tableId = table?.id;
130
- if (!id || !row?.id || !tableId)
106
+ const cellElement = (_: unknown, id?: string) => {
107
+ // The ids of its row and its table, from the handle (stable while it shows).
108
+ const row = id ? edytor.idToBlock.get(id)?.parent : undefined;
109
+ const table = row?.parent?.id;
110
+ if (!id || !row?.id || !table)
131
111
  return { tag: 'div', attributes: { 'data-edytor-table-cell': '' } };
132
- const tableData = edytor.cells?.get(tableId)?.data;
133
- const rowIndex = edytor.cells?.get(tableId)?.childIds.indexOf(row.id) ?? -1;
134
- const column = columnIndex(edytor, tableId, row.id, id);
135
- const headerRow = tableData?.headerRow === true && rowIndex === 0;
136
- const headerColumn = tableData?.headerColumn === true && column === 0;
137
- void data;
112
+ const cell = edytor.cells?.get(table);
113
+ const column = columnIndex(edytor, table, row.id, id);
114
+ const headerRow = cell?.data?.headerRow === true && cell.childIds.indexOf(row.id) === 0;
115
+ const headerColumn = cell?.data?.headerColumn === true && column === 0;
138
116
  return {
139
117
  tag: 'div',
140
118
  attributes: {
@@ -148,55 +126,55 @@
148
126
  /**
149
127
  * The block menu's row and column actions on `table`: at the row and
150
128
  * column of the cell the caret was last in (`chrome.cell`), else the
151
- * last row and column. An insert puts the caret in the new cells.
129
+ * last row and column (an insert puts the caret in the new cells);
130
+ * then its Header row and Header column switches.
152
131
  */
153
- const rowsOf = (table: Block): KindMenuAction[] => {
132
+ const menuOf = (table: Block): KindMenuAction[] => {
133
+ const action = (key: keyof TableLabels, icon: string, run: () => unknown) => ({
134
+ id: `table.${kebab(key)}`,
135
+ label: labels[key] as string,
136
+ icon,
137
+ run
138
+ });
139
+ const switches = (['headerRow', 'headerColumn'] as const).map((flag) => ({
140
+ ...action(flag, `table.${kebab(flag)}`, () => toggleHeader(table, flag)),
141
+ checked: table.data[flag] === true
142
+ }));
154
143
  const grid = gridOf(table);
155
- if (!grid || grid.rows.length === 0) return [];
144
+ if (!grid || grid.rows.length === 0) return switches;
156
145
  const cell = chrome.cell ? edytor.idToBlock.get(chrome.cell) : undefined;
157
146
  const at = cell && tableOf(cell)?.id === table.id ? positionOf(cell) : null;
158
147
  const row = at?.row ?? grid.rows.length - 1;
159
148
  const column = at?.column ?? grid.columns.length - 1;
160
149
  const rowBlock = edytor.idToBlock.get(grid.rows[row]!.id);
161
150
  return [
162
- {
163
- id: 'table.insert-row-above',
164
- label: labels.insertRowAbove,
165
- icon: 'action.up',
166
- run: () => insertRow(table, row, true)
167
- },
168
- {
169
- id: 'table.insert-row-below',
170
- label: labels.insertRowBelow,
171
- icon: 'action.down',
172
- run: () => insertRow(table, row + 1, true)
173
- },
174
- {
175
- id: 'table.insert-column-left',
176
- label: labels.insertColumnLeft,
177
- icon: 'table.left',
178
- run: () => insertColumn(table, column, undefined, row)
179
- },
180
- {
181
- id: 'table.insert-column-right',
182
- label: labels.insertColumnRight,
183
- icon: 'table.right',
184
- run: () => insertColumn(table, column + 1, undefined, row)
185
- },
186
- {
187
- id: 'table.delete-row',
188
- label: labels.deleteRow,
189
- icon: 'action.delete',
190
- run: () => rowBlock && deleteRows(table, [rowBlock])
191
- },
192
- {
193
- id: 'table.delete-column',
194
- label: labels.deleteColumn,
195
- icon: 'action.delete',
196
- run: () => deleteColumn(table, column)
197
- }
151
+ action('insertRowAbove', 'action.up', () => insertRow(table, row, true)),
152
+ action('insertRowBelow', 'action.down', () => insertRow(table, row + 1, true)),
153
+ action('insertColumnLeft', 'table.left', () =>
154
+ insertColumn(table, column, undefined, row)
155
+ ),
156
+ action('insertColumnRight', 'table.right', () =>
157
+ insertColumn(table, column + 1, undefined, row)
158
+ ),
159
+ action('deleteRow', 'action.delete', () => rowBlock && deleteRows(table, [rowBlock])),
160
+ action('deleteColumn', 'action.delete', () => deleteColumn(table, column)),
161
+ ...switches
198
162
  ];
199
163
  };
164
+ /** Tab and Shift+Tab (`step`) walk the cells, unless blocks are selected. */
165
+ const tab =
166
+ (step: 1 | -1): HotKey =>
167
+ ({ prevent }) => {
168
+ const cell = caretCell(edytor);
169
+ if (cell && !edytor.selection.selectedBlocks.size) prevent(() => tabFrom(cell, step));
170
+ };
171
+ /** ArrowUp and ArrowDown (`step`) go to the cell above and below. */
172
+ const vertical =
173
+ (step: 1 | -1): HotKey =>
174
+ ({ prevent }) => {
175
+ const cell = caretCell(edytor);
176
+ if (cell && verticalFrom(cell, step)) prevent();
177
+ };
200
178
  return {
201
179
  onSelectionChange: () => {
202
180
  if (chromes.get(edytor) === chrome) chrome.track();
@@ -220,31 +198,17 @@
220
198
  {
221
199
  label: labels.table,
222
200
  data: fresh.data,
223
- keywords: keywordsOf(
224
- 'block.table',
225
- ['table', 'grid', 'simple table', 'rows', 'columns'],
226
- options.keywords
227
- ),
201
+ keywords: keywordsOf(edytor, 'block.table', [
202
+ 'table',
203
+ 'grid',
204
+ 'simple table',
205
+ 'rows',
206
+ 'columns'
207
+ ]),
228
208
  group: 'Advanced blocks'
229
209
  }
230
210
  ],
231
- menu: (block) => [
232
- ...rowsOf(block),
233
- {
234
- id: 'table.header-row',
235
- label: labels.headerRow,
236
- icon: 'table.header-row',
237
- checked: block.data.headerRow === true,
238
- run: () => toggleHeader(block, 'headerRow')
239
- },
240
- {
241
- id: 'table.header-column',
242
- label: labels.headerColumn,
243
- icon: 'table.header-column',
244
- checked: block.data.headerColumn === true,
245
- run: () => toggleHeader(block, 'headerColumn')
246
- }
247
- ],
211
+ menu: menuOf,
248
212
  html: (block, _, children) => tableHtml(block.data ?? {}, children),
249
213
  plain: (_, __, children) => children,
250
214
  parse: (element) => (element.localName === 'table' ? parseTable(element) : undefined)
@@ -267,79 +231,53 @@
267
231
  }
268
232
  },
269
233
  hotkeys: {
270
- tab: ({ prevent }) => {
271
- const cell = caretCell(edytor);
272
- if (cell && !edytor.selection.selectedBlocks.size) prevent(() => tabFrom(cell, 1));
273
- },
274
- 'shift+tab': ({ prevent }) => {
275
- const cell = caretCell(edytor);
276
- if (cell && !edytor.selection.selectedBlocks.size) prevent(() => tabFrom(cell, -1));
277
- },
278
- arrowup: ({ prevent }) => {
279
- const cell = caretCell(edytor);
280
- if (cell && verticalFrom(cell, -1)) prevent();
281
- },
282
- arrowdown: ({ prevent }) => {
283
- const cell = caretCell(edytor);
284
- if (cell && verticalFrom(cell, 1)) prevent();
285
- }
234
+ tab: tab(1),
235
+ 'shift+tab': tab(-1),
236
+ arrowup: vertical(-1),
237
+ arrowdown: vertical(1)
286
238
  },
287
239
  onEdytorAttached: ({ node }) => {
288
240
  if (chromes.get(edytor) !== chrome) return;
289
- const over = (event: PointerEvent) => chrome.hover(event.target);
290
- const leave = (event: PointerEvent) => chrome.leave(event.relatedTarget);
291
241
  const layer = edytor.overlay.layer;
292
- const document = node.ownerDocument;
293
- // Another drag (a block's) hides the chrome; a grip's own drag keeps it (`table.drag`).
294
- const drag = (event: Event) =>
295
- (chrome.dragging =
296
- event.type === 'dragstart' &&
297
- !(event.target instanceof Node && layer?.contains(event.target)));
298
- node.addEventListener('pointerover', over);
299
- node.addEventListener('pointerleave', leave);
300
- layer?.addEventListener('pointerleave', leave);
301
- document.addEventListener('dragstart', drag, true);
302
- document.addEventListener('dragend', drag, true);
303
- document.addEventListener('drop', drag, true);
304
- // A press outside an open grip menu closes it.
305
- const outside = onPress(
306
- edytor,
307
- document,
308
- (event) => {
309
- const target = event.target as Node | null;
310
- if (!chrome.menu || (target && layer?.contains(target))) return;
311
- chrome.menu = null;
312
- edytor.overlay.invalidate();
313
- },
314
- true
315
- );
316
- const unmount = edytor.overlay.mount(
317
- TableChromeLayer,
318
- { chrome, grip: options.grip, menu: options.menu, add: options.add },
319
- 'edytor-table-chrome',
320
- 6,
321
- chrome.measure
242
+ const off = all(
243
+ hoverChrome(
244
+ edytor,
245
+ node,
246
+ chrome.hover,
247
+ chrome.leave,
248
+ // Another drag (a block's) hides the chrome; a grip's own drag keeps it (`table.drag`).
249
+ (event) =>
250
+ (chrome.dragging =
251
+ event.type === 'dragstart' &&
252
+ !(event.target instanceof Node && layer?.contains(event.target)))
253
+ ),
254
+ // A press outside an open grip menu closes it.
255
+ onPress(
256
+ edytor,
257
+ node.ownerDocument,
258
+ (event) => {
259
+ const target = event.target as Node | null;
260
+ if (!chrome.menu || (target && layer?.contains(target))) return;
261
+ chrome.menu = null;
262
+ edytor.overlay.invalidate();
263
+ },
264
+ true
265
+ ),
266
+ edytor.overlay.mount(
267
+ TableChromeLayer,
268
+ { chrome, grip: options.grip, menu: options.menu, add: options.add },
269
+ 'edytor-table-chrome',
270
+ 6,
271
+ chrome.measure
272
+ )
322
273
  );
323
- return () => {
324
- node.removeEventListener('pointerover', over);
325
- node.removeEventListener('pointerleave', leave);
326
- layer?.removeEventListener('pointerleave', leave);
327
- document.removeEventListener('dragstart', drag, true);
328
- document.removeEventListener('dragend', drag, true);
329
- document.removeEventListener('drop', drag, true);
330
- outside();
331
- unmount();
332
- };
274
+ return off;
333
275
  }
334
276
  };
335
277
  };
336
- tablePlugins.add(plugin);
337
278
  return plugin;
338
279
  };
339
280
 
340
- /** The table with the default options. */
341
- export const tablePlugin = createTablePlugin();
342
-
343
281
  /** `table`'s grid template: each column's width (the resize preview while a band drags it). */
344
282
  const templateOf = (view: BlockView) => {
345
283
  const edytor = view.handle?.edytor;
@@ -440,7 +378,7 @@
440
378
 
441
379
  <!-- A row: its cells, then a placeholder in each column it shows none of (`table.pad`). -->
442
380
  {#snippet row({ block, children }: BlockSnippetPayload)}
443
- {@const labels = labelsOf.of(block.handle?.edytor)}
381
+ {@const labels = labelsOf(block.handle?.edytor, 'table', tableEnglish)}
444
382
  <div data-edytor-children data-edytor-table-cells>
445
383
  {@render children?.()}<!--
446
384
  -->{#each padsOf(block) as column (column)}
@@ -2,8 +2,6 @@ import './table.css';
2
2
  import type { Plugin } from '../../plugins.js';
3
3
  import { type TablePluginOptions } from './table.js';
4
4
  export type { TablePluginOptions };
5
- /** Recognize any table plugin instance. */
6
- export declare const isTablePlugin: (plugin: Plugin) => boolean;
7
5
  /**
8
6
  * Notion's simple table (`table.*` in the delete contract): a `table` of
9
7
  * `tableRow`s of `tableCell`s, each cell a text island whose lines are line
@@ -21,8 +19,6 @@ export declare const isTablePlugin: (plugin: Plugin) => boolean;
21
19
  * Not a default plugin; its roles are in `defaultSemantics`.
22
20
  */
23
21
  export declare const createTablePlugin: (options?: TablePluginOptions) => Plugin;
24
- /** The table with the default options. */
25
- export declare const tablePlugin: Plugin;
26
22
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
27
23
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
28
24
  $$bindings?: Bindings;
@@ -1,46 +1,32 @@
1
1
  import type { Attachment } from 'svelte/attachments';
2
2
  import type { Edytor } from '../../edytor.svelte.js';
3
- import type { TableLabels } from '../../labels.js';
4
- import { type MenuItemPayload, type OptionAttributes } from '../chrome.js';
5
- /** What a grip's menu acts on: a row of a table (its block id), or a column (its position). */
3
+ import { type MenuItemPayload } from '../chrome.js';
4
+ import { ChromeList } from '../list.svelte.js';
5
+ type Kind = 'row' | 'column';
6
+ /** What a grip's menu acts on: a row (its block id) or a column (its id) of a table. */
6
7
  export type TableMenu = {
7
- kind: 'row';
8
+ kind: Kind;
8
9
  table: string;
9
- row: string;
10
- } | {
11
- kind: 'column';
12
- table: string;
13
- column: number;
10
+ id: string;
14
11
  };
15
- /** A row of a grip's menu (insert, move, delete). */
12
+ /**
13
+ * A row of a grip's menu: `insert-above`, `insert-below`, `move-up`,
14
+ * `move-down`, `delete-row`; `insert-left`, `insert-right`, `move-left`,
15
+ * `move-right`, `delete-column`.
16
+ */
16
17
  export type TableMenuRow = {
17
- /**
18
- * `insert-above`, `insert-below`, `move-up`, `move-down`, `delete-row`;
19
- * `insert-left`, `insert-right`, `move-left`, `move-right`, `delete-column`.
20
- */
21
18
  id: string;
22
- /** Its words, in the plugin's labels. */
23
- label: string;
24
- /** Its built-in icon's name. */
25
- icon: string;
26
- /** It deletes. */
27
- danger?: boolean;
28
- /** Whether it can run now (Move up on the first row cannot). */
29
- isEnabled: () => boolean;
30
- run: () => unknown;
31
19
  };
32
20
  /**
33
- * One row of a grip's menu, for a custom `menu`: the row shape every menu
21
+ * One row of a grip's menu, for your `menu`: the row shape every menu
34
22
  * shares (`item` is the row, `run` runs it and closes the menu), with
35
- * whether it can run now, whether it deletes, and its built-in icon.
23
+ * whether it can run now and whether it deletes.
36
24
  */
37
25
  export type TableMenuItem = MenuItemPayload<TableMenuRow> & {
38
26
  /** It cannot run now (`aria-disabled`): the keys skip it, a click does nothing. */
39
27
  disabled: boolean;
40
28
  /** It deletes. */
41
29
  danger: boolean;
42
- /** The built-in line icon as a CSS `mask-image` value, when the row has one. */
43
- icon: string | undefined;
44
30
  };
45
31
  /**
46
32
  * What a `grip` snippet receives: the grip of the hovered row (left of the
@@ -48,11 +34,10 @@ export type TableMenuItem = MenuItemPayload<TableMenuRow> & {
48
34
  * `button`): it drags the row or the column, a click opens its menu,
49
35
  * ArrowDown opens it too and Escape closes it, and it carries the ARIA
50
36
  * (`aria-haspopup`, `aria-expanded`, `aria-controls` while its menu is
51
- * open, its name unless you set one). The plugin centers it where the
52
- * grip stands.
37
+ * open; name it). The plugin centers it where the grip stands.
53
38
  */
54
39
  export type TableGripPayload = {
55
- kind: 'row' | 'column';
40
+ kind: Kind;
56
41
  /** The row's block id, or the column's id. */
57
42
  id: string;
58
43
  /** Its position among the table's rows (columns). */
@@ -61,14 +46,10 @@ export type TableGripPayload = {
61
46
  expanded: boolean;
62
47
  /** It is being dragged. */
63
48
  dragging: boolean;
64
- /** Its accessible name (`labels.rowMenu`, `labels.columnMenu`). */
65
- label: string;
66
49
  /** Open its menu, or close it when it is open (what a click does). */
67
50
  toggle: () => void;
68
51
  /** The grip's behavior and ARIA: `{@attach grip}`. */
69
52
  grip: Attachment<HTMLElement>;
70
- /** The plugin's words. */
71
- labels: TableLabels;
72
53
  /** The table's chrome (its menu, its actions). */
73
54
  chrome: TableChrome;
74
55
  };
@@ -79,13 +60,9 @@ export type TableGripPayload = {
79
60
  * the editor's selection.
80
61
  */
81
62
  export type TableAddPayload = {
82
- kind: 'row' | 'column';
83
- /** Its accessible name (`labels.addRow`, `labels.addColumn`). */
84
- label: string;
63
+ kind: Kind;
85
64
  /** Add the row or the column. */
86
65
  add: () => void;
87
- /** The plugin's words. */
88
- labels: TableLabels;
89
66
  };
90
67
  /**
91
68
  * The table's chrome (`table.*`), in the overlay: while the pointer is over
@@ -99,25 +76,17 @@ export type TableAddPayload = {
99
76
  * drops the preview. Every action is a table command (`table.ts`): refused
100
77
  * when the view is readonly.
101
78
  *
102
- * What a custom `menu` snippet receives: the open menu (`menu`), its rows
79
+ * What a `menu` snippet receives: the open menu (`menu`), its rows
103
80
  * (`items`, each a `MenuItemPayload`), the keyboard's row (`index`), the
104
- * attachments that keep the built-in keys and ARIA (`popup` and `keys` on
105
- * the menu's element, `option(index)` spread on each row), `close()` and
106
- * the plugin's `labels`. A grip's own attachment is its payload's `grip`.
81
+ * attachments that give it the keys and the ARIA (`popup` and `keys` on
82
+ * the menu's element, `option(index)` on each row) and `close()`.
83
+ * A grip's own attachment is its payload's `grip`.
107
84
  */
108
- export declare class TableChrome {
85
+ export declare class TableChrome extends ChromeList {
109
86
  #private;
110
- /** The words the chrome shows and says (the plugin's `labels`). */
111
- readonly labels: TableLabels;
112
87
  /** What the open grip menu acts on (`null`: none is open). */
113
88
  menu: TableMenu | null;
114
- /** The keyboard's row of the open menu, in `rows` (never a disabled one). */
115
- index: number;
116
- constructor(
117
- /** @internal */
118
- edytor: Edytor,
119
- /** The words the chrome shows and says (the plugin's `labels`). */
120
- labels: TableLabels,
89
+ constructor(edytor: Edytor,
121
90
  /**
122
91
  * A column's width when it sets none, and the narrowest a resize leaves.
123
92
  * @internal
@@ -125,67 +94,34 @@ export declare class TableChrome {
125
94
  columnWidth: number,
126
95
  /** @internal */
127
96
  minColumnWidth: number);
97
+ protected get count(): number;
128
98
  /** The view is readonly (reactive): the chrome shows nothing. */
129
99
  get readonly(): boolean;
130
- /** The resize's width: the pointer's, between the minimum and the room's (`table.width.fit`). */
131
- private dragWidth;
132
100
  /**
133
- * The right neighbour's width while column `drag.column` is `dragWidth`
134
- * (`table.width.neighbour`): the column grows into the free room first,
135
- * then what it gains past it comes off its neighbour, down to the
136
- * minimum; a narrowing gives nothing back.
101
+ * Open the `kind` grip's menu on the row or column it stands for, its
102
+ * first row that can run the keyboard's, or close it when it is open
103
+ * there (a grip's click).
137
104
  */
138
- private nextWidth;
139
- /**
140
- * The widths `table`'s grid shows, by position (its columns' stored
141
- * widths, else the default one): what its template reads, the model's.
142
- */
143
- private widthsOf;
144
- /**
145
- * A resize of column `column` of `table`, pressed at `from` (`table.width.fit`,
146
- * `table.width.neighbour`): the column may grow by the room the table
147
- * leaves free and by what its right neighbour can give (down to the
148
- * minimum), so the table never gets wider; it may always narrow.
149
- */
150
- private resize;
151
- private read;
152
- /**
153
- * Open the menu of a row's or a column's grip (a second press on it
154
- * closes it), its first row that can run the keyboard's.
155
- */
156
- open: (menu: TableMenu) => void;
157
- /** Open the `kind` grip's menu on the row or column it stands for, or close it (a grip's click). */
158
- toggle: (kind: TableMenu["kind"]) => void;
105
+ toggle: (kind: Kind) => void;
159
106
  /** Whether a menu is open (reactive). */
160
107
  get isOpen(): boolean;
161
108
  /** Close the menu; the editor takes the keys back. */
162
109
  close: () => void;
163
- /** The menu element's id (page-unique), for `aria-controls`. */
164
- get menuId(): string;
165
- /** A row's element id (page-unique), for `aria-activedescendant`. */
166
- rowId: (row: TableMenuRow) => string;
167
110
  /**
168
- * The open menu's rows for a custom `menu`: each the row shape every menu
111
+ * The open menu's rows for your `menu`: each the row shape every menu
169
112
  * shares (`run` runs it and closes the menu, `select` makes it the
170
113
  * keyboard's, `option` its attributes), whether it can run now
171
- * (`disabled`), whether it deletes (`danger`), and its icon.
114
+ * (`disabled`) and whether it deletes (`danger`).
172
115
  */
173
116
  get items(): TableMenuItem[];
174
117
  /**
175
- * The attributes of the open menu's row at `index`: spread them on its
176
- * element (`{...chrome.option(index)}`). Its id, `menuitem` role,
177
- * `aria-disabled` when it cannot run now, `data-selected` for the
178
- * keyboard's row, which scrolls into view.
118
+ * The attachment of the open menu's row at `index`
119
+ * (`{@attach chrome.option(index)}`). Its id, `menuitem` role,
120
+ * `aria-disabled` when it cannot run now; the keyboard's row scrolls into
121
+ * view. The menu's element takes
122
+ * `data-edytor-table-menu` (the kind it is open on) from `popup`.
179
123
  */
180
- option: (index: number) => OptionAttributes;
181
- /**
182
- * The menu's element (`{@attach chrome.popup}`): its id, `menu` role and
183
- * name (Row options, Column options) unless it has its own, presses that
184
- * keep the focus, and its publication to the view's root
185
- * (`edytor.popups`: `aria-controls`, `aria-haspopup`) while it is in
186
- * the page; `data-edytor-table-menu` names the kind it is open on.
187
- */
188
- popup: Attachment<HTMLElement>;
124
+ option(index: number): Attachment<HTMLElement>;
189
125
  /**
190
126
  * The element that holds the menu's keyboard (`{@attach chrome.keys}`,
191
127
  * the menu's own): it takes the focus when it mounts and names the
@@ -200,50 +136,11 @@ export declare class TableChrome {
200
136
  * `grip` snippet's payload carries it): in an editable view, dragging it
201
137
  * moves its row or column within its table (`table.drag`); a click with
202
138
  * no drag opens or closes its menu; ArrowDown opens the menu, Escape
203
- * closes it and gives the keys back to the editor. It names the element (its own name wins) and carries
139
+ * closes it and gives the keys back to the editor. It carries
204
140
  * `aria-haspopup`, `aria-expanded`, `aria-controls` while its menu is
205
141
  * open, and `data-dragging` during its drag. A press on it is never
206
142
  * prevented: that would stop the native drag.
207
143
  */
208
- gripOf: (kind: TableMenu["kind"]) => Attachment<HTMLElement>;
209
- /** The rows of the open menu. */
210
- get rows(): TableMenuRow[];
211
- /** Run a menu row, then close the menu. */
212
- runRow: (row: TableMenuRow) => void;
213
- /** The `+` under the table: a row at its end, the caret in its first cell. */
214
- addRow: () => void;
215
- /** The `+` beside the table: a column at its end. */
216
- addColumn: () => void;
217
- /**
218
- * The release: column `drag.column`'s width, and its right neighbour's
219
- * when the column took from it (`table.width.neighbour`), one command;
220
- * nothing when neither changed, or when the table does not list the
221
- * column. A width is written on its column's entry by its item id (the
222
- * first entry naming it), never by position: the stored array may hold
223
- * an entry the grid does not show.
224
- */
225
- private release;
226
- /** What the row grip or the column grip stands for now: its table, the row's or column's id, its position. */
227
- private source;
228
- /** The drag starts: what it moves, its ghost, the page as its drop target, auto-scroll. */
229
- private begin;
230
- /** The ghost: the row's cells side by side, or the column's cells one under the other. */
231
- private preview;
232
- /**
233
- * Where the moving row or column would land at `input` (`table.drag`):
234
- * its gap, by the rows' (columns') middles, and its position once moved;
235
- * `null` outside the table (past its box and the gutter) and at its own
236
- * place (the gap before or after it).
237
- */
238
- private landing;
239
- /** The pointer moved during the drag: the drop line follows it. */
240
- private aim;
241
- /**
242
- * The drop: the row or column moves to the gap at the pointer (`moveRows`,
243
- * `moveColumn`: one command, one undo step), the keys go to the editor;
244
- * nothing where no line shows.
245
- */
246
- private drop;
247
- /** The drag ended, dropped or cancelled: no line, no target; the chrome follows the pointer again. */
248
- private finish;
144
+ gripOf: (kind: Kind) => Attachment<HTMLElement>;
249
145
  }
146
+ export {};