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
@@ -0,0 +1,47 @@
1
+ import type { BlockId } from '../../crdt/placement/model.js';
2
+ import type { DocumentOperations } from '../../crdt/operations.js';
3
+ import type { Prepared } from '../../crdt/doc/types.js';
4
+ /**
5
+ * Insert a row at `index` among `table`'s rows (`table.insert-row`): one
6
+ * empty cell per column, in one plan. `ids`: the new row.
7
+ */
8
+ export declare const insertTableRow: (doc: Omit<DocumentOperations, "transact">, table: BlockId, index: number) => Prepared;
9
+ /**
10
+ * Delete `rows` with their cells (`table.delete-row`): one plan; a table
11
+ * left with no row goes with them. `ids`: the rows.
12
+ */
13
+ export declare const deleteTableRows: (doc: Omit<DocumentOperations, "transact">, rows: readonly BlockId[]) => Prepared;
14
+ /**
15
+ * Insert a column at `index` among `table`'s listed columns
16
+ * (`table.insert-column`): a new id in `data.columns` and an empty cell
17
+ * for it in every row the table shows, in one plan. `width`: the new
18
+ * column's. `ids`: the table.
19
+ */
20
+ export declare const insertTableColumn: (doc: Omit<DocumentOperations, "transact">, table: BlockId, index: number, width?: number) => Prepared;
21
+ /**
22
+ * Delete a column (`table.delete-column`, by id or position among the
23
+ * grid's): it leaves `data.columns` (every entry naming it) and every
24
+ * shown cell of it is deleted, in one plan; a table left with no column
25
+ * goes with it. A column the table shows but no longer lists
26
+ * (`table.cell`) loses its cells. `ids`: the table.
27
+ */
28
+ export declare const deleteTableColumn: (doc: Omit<DocumentOperations, "transact">, table: BlockId, column: string | number) => Prepared;
29
+ /**
30
+ * Move a listed column to position `to` among them (`table.move-column`):
31
+ * one `order` patch of `data.columns`; no cell moves, every row shows its
32
+ * cells in the new order. `ids`: the table.
33
+ */
34
+ export declare const moveTableColumn: (doc: Omit<DocumentOperations, "transact">, table: BlockId, column: string | number, to: number) => Prepared;
35
+ /**
36
+ * Move rows to position `to` among their table's rows
37
+ * (`table.move-row`): a move. Refused unless every one is a row of the
38
+ * same table. `ids`: the rows.
39
+ */
40
+ export declare const moveTableRows: (doc: Omit<DocumentOperations, "transact">, rows: readonly BlockId[], to: number) => Prepared;
41
+ /**
42
+ * Create the cell `row` shows none of for `column` (an id, or a
43
+ * position among the grid's; `table.pad`: the first edit in a padded
44
+ * cell), empty, in one plan. A column the table shows but no longer
45
+ * lists (`table.cell`) is listed again, last. `ids`: the new cell.
46
+ */
47
+ export declare const fillTableCell: (doc: Omit<DocumentOperations, "transact">, row: BlockId, column: string | number) => Prepared;
@@ -0,0 +1,233 @@
1
+ /**
2
+ * The table ops (`table.*`), prepared over any document's public
3
+ * operations (a view's `edytor.document`, a headless document, a room's
4
+ * `transact`): each answers one plan composed of the document's own
5
+ * (`patchData`, `insertBlocks`, `deleteBlocks`, `moveBlocks`), which
6
+ * `document.apply(…)` writes (`document.apply(insertTableRow(document,
7
+ * 'T', 0))`), or a refusal. A table (a kind whose role says `table`) holds
8
+ * rows, a row cells, each cell names its column (`data.column`) and the
9
+ * table lists its columns in order (`data.columns`: `{ id, width? }`). The
10
+ * columns are data: inserting, deleting or moving one writes the table's
11
+ * `columns` array (and the cells of the rows it shows) in one plan, and
12
+ * the index shows every row's cells in that order (`table.columns`); a
13
+ * cell of no listed column does not display (`table.cell`), and the view
14
+ * pads a row that shows fewer cells than the table's columns
15
+ * (`table.pad`). Rows are blocks: a row moves among its table's rows by
16
+ * placement. No core code references these: the table plugin's commands
17
+ * dispatch them (`table.ts`).
18
+ */
19
+ import { id as newId } from '../../utils.js';
20
+ import { columnIds } from '../../crdt/tables.js';
21
+ import { ref, refused } from '../../crdt/doc/plan.js';
22
+ const REFUSED = refused(null);
23
+ /**
24
+ * The table's columns and grid. A table listing none gets one column
25
+ * per column of its widest row, with ids from their positions (`c1`,
26
+ * `c2`, … as `tableBlock`'s), and `adopt` names each shown cell's column:
27
+ * two peers adopting one table write the same array items and the same
28
+ * cells' columns. The op then writes that array first, in its plan
29
+ * ({@link columnsParts}).
30
+ */
31
+ const adopted = (doc, table) => {
32
+ const grid = doc.tableGrid(table);
33
+ const head = grid?.rows[0];
34
+ const sample = head?.cells.find((cell) => cell !== null);
35
+ if (!grid || !head || !sample)
36
+ return null;
37
+ const kinds = { row: doc.blockTypeOf(head.id), cell: doc.blockTypeOf(sample) };
38
+ const listed = doc.tableColumns(table);
39
+ if (listed !== null)
40
+ return {
41
+ columns: listed,
42
+ raw: columnIds(doc.blockDataOf(table)),
43
+ adopt: [],
44
+ first: [],
45
+ grid,
46
+ ...kinds
47
+ };
48
+ const columns = grid.columns.map((_, i) => ({ id: `c${i + 1}` }));
49
+ return {
50
+ columns,
51
+ raw: columns.map((col) => col.id),
52
+ adopt: grid.rows.flatMap((row) => row.cells.flatMap((cell, i) => cell === null
53
+ ? []
54
+ : [doc.prepare.patchData(cell, [{ path: ['column'], value: columns[i].id }])])),
55
+ first: [{ path: ['columns'], value: columns }],
56
+ grid: { columns: columns.map((col) => col.id), rows: grid.rows },
57
+ ...kinds
58
+ };
59
+ };
60
+ /** The adoption's plans, then `patches` of the table's `data.columns` (one plan, empty without any). */
61
+ const columnsParts = (doc, table, a, patches = []) => [...a.adopt, doc.prepare.patchData(table, [...a.first, ...patches])];
62
+ /** `parts` as one plan answering `ids` (a composed plan answers its parts'). */
63
+ const planOf = (doc, ids, parts) => {
64
+ const p = doc.compose(...parts);
65
+ return 'writes' in p ? { ...p, ids } : p;
66
+ };
67
+ const cellSpec = (a, column) => ({
68
+ id: newId('b'),
69
+ type: a.cell,
70
+ data: { column }
71
+ });
72
+ /**
73
+ * The position among the grid's columns of `column`: a position, or an
74
+ * id (a table listing no columns names them by position until it adopts
75
+ * them); `-1` when none.
76
+ */
77
+ const positionIn = (a, listed, column) => {
78
+ const at = typeof column === 'number' ? column : listed ? a.grid.columns.indexOf(column) : Number(column);
79
+ return Number.isInteger(at) && at >= 0 && at < a.grid.columns.length ? at : -1;
80
+ };
81
+ /**
82
+ * The stored entry (its index in `data.columns`) the listed column at
83
+ * position `at` is: the first naming it; the array's length past them.
84
+ */
85
+ const rawIndex = (a, at) => {
86
+ const id = a.columns[at]?.id;
87
+ const i = id === undefined ? -1 : a.raw.indexOf(id);
88
+ return i < 0 ? a.raw.length : i;
89
+ };
90
+ /** Where among `row`'s children a new cell at grid position `at` goes. */
91
+ const slotOf = (doc, cells, row, at) => Math.min(cells.slice(0, at).filter((x) => x !== null).length, doc.childrenIds(row).length);
92
+ /**
93
+ * Insert a row at `index` among `table`'s rows (`table.insert-row`): one
94
+ * empty cell per column, in one plan. `ids`: the new row.
95
+ */
96
+ export const insertTableRow = (doc, table, index) => {
97
+ table = ref(table);
98
+ const a = adopted(doc, table);
99
+ if (a === null)
100
+ return REFUSED;
101
+ const at = Math.max(0, Math.min(Math.trunc(index) || 0, doc.childrenIds(table).length));
102
+ const row = {
103
+ id: newId('b'),
104
+ type: a.row,
105
+ data: {},
106
+ children: a.columns.map((col) => cellSpec(a, col.id))
107
+ };
108
+ return planOf(doc, [row.id], [...columnsParts(doc, table, a), doc.prepare.insertBlocks({ parent: table, index: at }, [row])]);
109
+ };
110
+ /**
111
+ * Delete `rows` with their cells (`table.delete-row`): one plan; a table
112
+ * left with no row goes with them. `ids`: the rows.
113
+ */
114
+ export const deleteTableRows = (doc, rows) => {
115
+ const ids = [...new Set(rows.map(ref))];
116
+ if (ids.length === 0 || ids.some((id) => !doc.isVisibleBlock(id) || !doc.isTableRow(id)))
117
+ return REFUSED;
118
+ return doc.prepare.deleteBlocks(ids);
119
+ };
120
+ /**
121
+ * Insert a column at `index` among `table`'s listed columns
122
+ * (`table.insert-column`): a new id in `data.columns` and an empty cell
123
+ * for it in every row the table shows, in one plan. `width`: the new
124
+ * column's. `ids`: the table.
125
+ */
126
+ export const insertTableColumn = (doc, table, index, width) => {
127
+ table = ref(table);
128
+ const a = adopted(doc, table);
129
+ if (a === null)
130
+ return REFUSED;
131
+ const at = Math.max(0, Math.min(Math.trunc(index) || 0, a.columns.length));
132
+ const column = typeof width === 'number' && Number.isFinite(width) && width > 0
133
+ ? { id: newId('c'), width }
134
+ : { id: newId('c') };
135
+ return planOf(doc, [table], [
136
+ ...columnsParts(doc, table, a, [{ path: ['columns'], splice: [rawIndex(a, at), 0, column] }]),
137
+ ...a.grid.rows.map((row) => doc.prepare.insertBlocks({ parent: row.id, index: slotOf(doc, row.cells, row.id, at) }, [
138
+ cellSpec(a, column.id)
139
+ ]))
140
+ ]);
141
+ };
142
+ /**
143
+ * Delete a column (`table.delete-column`, by id or position among the
144
+ * grid's): it leaves `data.columns` (every entry naming it) and every
145
+ * shown cell of it is deleted, in one plan; a table left with no column
146
+ * goes with it. A column the table shows but no longer lists
147
+ * (`table.cell`) loses its cells. `ids`: the table.
148
+ */
149
+ export const deleteTableColumn = (doc, table, column) => {
150
+ table = ref(table);
151
+ const listed = doc.tableColumns(table) !== null;
152
+ const a = adopted(doc, table);
153
+ if (a === null)
154
+ return REFUSED;
155
+ const at = positionIn(a, listed, column);
156
+ if (at < 0)
157
+ return REFUSED;
158
+ if (a.grid.columns.length === 1)
159
+ return doc.prepare.deleteBlock(table, { keepChildren: false });
160
+ const id = a.grid.columns[at];
161
+ const items = listed ? doc.dataItemIds(table, ['columns']) : [];
162
+ const gone = a.grid.rows.flatMap((row) => row.cells[at] ?? []);
163
+ return planOf(doc, [table], [
164
+ ...columnsParts(doc, table, a, listed
165
+ ? a.raw.flatMap((c, i) => c === id && items[i] ? [{ path: ['columns', items[i]] }] : [])
166
+ : [{ path: ['columns'], splice: [at, 1] }]),
167
+ doc.prepare.deleteBlocks(gone)
168
+ ]);
169
+ };
170
+ /**
171
+ * Move a listed column to position `to` among them (`table.move-column`):
172
+ * one `order` patch of `data.columns`; no cell moves, every row shows its
173
+ * cells in the new order. `ids`: the table.
174
+ */
175
+ export const moveTableColumn = (doc, table, column, to) => {
176
+ table = ref(table);
177
+ const listed = doc.tableColumns(table) !== null;
178
+ const a = adopted(doc, table);
179
+ if (a === null)
180
+ return REFUSED;
181
+ const from = positionIn(a, listed, column);
182
+ const dest = Math.trunc(to);
183
+ if (from < 0 || from >= a.columns.length || !(dest >= 0 && dest < a.columns.length))
184
+ return REFUSED;
185
+ if (from === dest)
186
+ return planOf(doc, [table], columnsParts(doc, table, a));
187
+ const moved = a.columns.map((_, i) => i);
188
+ moved.splice(from, 1);
189
+ moved.splice(dest, 0, from);
190
+ // Over the stored entries: the listed ones in their new order, then the rest as they were.
191
+ const firsts = moved.map((i) => rawIndex(a, i));
192
+ const rest = a.raw.map((_, i) => i).filter((i) => !firsts.includes(i));
193
+ return planOf(doc, [table], columnsParts(doc, table, a, [{ path: ['columns'], order: [...firsts, ...rest] }]));
194
+ };
195
+ /**
196
+ * Move rows to position `to` among their table's rows
197
+ * (`table.move-row`): a move. Refused unless every one is a row of the
198
+ * same table. `ids`: the rows.
199
+ */
200
+ export const moveTableRows = (doc, rows, to) => {
201
+ const ids = rows.map(ref);
202
+ const table = ids.length > 0 ? doc.parentOf(ids[0]) : null;
203
+ if (table === null || ids.some((id) => !doc.isTableRow(id) || doc.parentOf(id) !== table))
204
+ return REFUSED;
205
+ const at = Math.max(0, Math.min(Math.trunc(to) || 0, doc.childrenIds(table).length));
206
+ return doc.prepare.moveBlocks(ids, { parent: table, index: at });
207
+ };
208
+ /**
209
+ * Create the cell `row` shows none of for `column` (an id, or a
210
+ * position among the grid's; `table.pad`: the first edit in a padded
211
+ * cell), empty, in one plan. A column the table shows but no longer
212
+ * lists (`table.cell`) is listed again, last. `ids`: the new cell.
213
+ */
214
+ export const fillTableCell = (doc, row, column) => {
215
+ row = ref(row);
216
+ if (!doc.isTableRow(row))
217
+ return REFUSED;
218
+ const table = doc.parentOf(row);
219
+ const listed = doc.tableColumns(table) !== null;
220
+ const a = adopted(doc, table);
221
+ if (a === null)
222
+ return REFUSED;
223
+ const at = positionIn(a, listed, column);
224
+ const shown = a.grid.rows.find((r) => r.id === row);
225
+ if (at < 0 || shown === undefined || shown.cells[at] !== null)
226
+ return REFUSED;
227
+ const id = a.grid.columns[at];
228
+ const spec = cellSpec(a, id);
229
+ return planOf(doc, [spec.id], [
230
+ ...columnsParts(doc, table, a, at < a.columns.length ? [] : [{ path: ['columns'], splice: [a.raw.length, 0, { id }] }]),
231
+ doc.prepare.insertBlocks({ parent: row, index: slotOf(doc, shown.cells, row, at) }, [spec])
232
+ ]);
233
+ };
@@ -1,16 +1,13 @@
1
1
  /*
2
- * Tables (`table.*` in the delete contract): Notion's simple table. The
3
- * table's grid is a CSS grid of its columns' widths (the template the kind
4
- * sets from `data.columns`); each row is a subgrid of it, its cells and its
2
+ * Tables (`table.*` in the delete contract): the table's grid is a CSS
3
+ * grid of its columns' widths (the template the kind sets from
4
+ * `data.columns`); each row is a subgrid of it, its cells and its
5
5
  * placeholders (`table.pad`) items of that row: a placeholder sits at its
6
- * column, the cells fill the others in order. Neither the grid nor a row is
7
- * a nesting step: their indent is zeroed. Wider than the page, the table
8
- * scrolls sideways.
6
+ * column, the cells fill the others in order. Neither the grid nor a cell
7
+ * is a nesting step: their indent is zeroed. Wider than the page, the
8
+ * table scrolls sideways. The look (borders, the cells' padding, a header
9
+ * cell's shade) is a theme's: `edytor/themes/notion.css`.
9
10
  */
10
- [data-edytor-block][data-edytor-table][data-edytor-type] {
11
- padding-inline: 0;
12
- --edytor-table-border-color: var(--edytor-table-border, rgb(233, 233, 231));
13
- }
14
11
  [data-edytor-table-scroll] {
15
12
  /*
16
13
  * The table's place sizes the box, never its columns (`table.overflow`):
@@ -28,16 +25,11 @@
28
25
  display: grid;
29
26
  width: max-content;
30
27
  padding-inline-start: 0;
31
- border-top: 1px solid var(--edytor-table-border-color);
32
- border-left: 1px solid var(--edytor-table-border-color);
33
28
  }
34
29
  [data-edytor-block][data-edytor-table-row][data-edytor-type] {
35
30
  display: grid;
36
31
  grid-column: 1 / -1;
37
32
  grid-template-columns: subgrid;
38
- margin: 0;
39
- padding: 0;
40
- border-radius: 0;
41
33
  }
42
34
  [data-edytor-table-row] > [data-edytor-children][data-edytor-table-cells] {
43
35
  display: contents;
@@ -46,12 +38,6 @@
46
38
  [data-edytor-table-pad] {
47
39
  grid-row: 1;
48
40
  min-width: 0;
49
- min-height: 33px;
50
- margin: 0;
51
- padding: 7px 9px;
52
- border-radius: 0;
53
- border-right: 1px solid var(--edytor-table-border-color);
54
- border-bottom: 1px solid var(--edytor-table-border-color);
55
41
  white-space: pre-wrap;
56
42
  overflow-wrap: anywhere;
57
43
  box-sizing: border-box;
@@ -61,17 +47,12 @@
61
47
  user-select: none;
62
48
  -webkit-user-select: none;
63
49
  }
64
- /* A header row's or header column's cells: Notion's gray, a little bolder. */
65
- [data-edytor-block][data-edytor-table-cell][data-edytor-table-header='true'] {
66
- background: var(--edytor-table-header-background, rgb(247, 246, 243));
67
- font-weight: 600;
68
- }
69
50
  [data-edytor-table-row] [data-edytor-table-cell] > [data-edytor-children] {
70
51
  padding-inline-start: 0;
71
52
  }
72
53
 
73
54
  /* ── The chrome (overlay): grips, `+` bars, resize bands, menus ─────── */
74
- /* Where a grip stands (a point: its grip, built-in or an app's, centered on it), a `+`, a menu. */
55
+ /* Where a grip stands (a point: the app's grip centered on it), a `+`, a menu. */
75
56
  [data-edytor-table-chrome] [data-edytor-table-grip-host] {
76
57
  position: absolute;
77
58
  display: flex;
@@ -93,42 +74,26 @@
93
74
  pointer-events: auto;
94
75
  touch-action: none;
95
76
  }
96
- [data-edytor-table-chrome] button[data-edytor-table-grip],
97
- [data-edytor-table-chrome] button[data-edytor-table-add],
98
77
  [data-edytor-table-chrome] [data-edytor-table-resize] {
78
+ position: absolute;
99
79
  margin: 0;
100
80
  padding: 0;
101
81
  border: none;
102
82
  pointer-events: auto;
103
83
  touch-action: none;
104
84
  }
105
- [data-edytor-table-chrome] [data-edytor-table-resize] {
106
- position: absolute;
107
- }
108
85
  [data-edytor-table-chrome][data-selecting='true'] > *,
109
86
  [data-edytor-table-chrome][data-selecting='true'] [data-edytor-table-grip-host] > *,
110
87
  [data-edytor-table-chrome][data-selecting='true'] [data-edytor-table-add-host] > * {
111
88
  pointer-events: none;
112
89
  }
113
- [data-edytor-table-chrome] button[data-edytor-table-grip] {
114
- width: 18px;
115
- height: 24px;
116
- border-radius: 4px;
117
- background: var(--edytor-table-grip-background, #fff);
118
- box-shadow:
119
- 0 0 0 1px rgba(15, 15, 15, 0.1),
120
- 0 2px 4px rgba(15, 15, 15, 0.1);
121
- color: rgba(55, 53, 47, 0.45);
122
- cursor: grab;
123
- }
124
- [data-edytor-table-chrome] button[data-edytor-table-grip][data-dragging='true'] {
125
- cursor: grabbing;
126
- }
127
- /* A grip's drag (`table.drag`): Notion's drop line between two rows or two columns. */
90
+ /*
91
+ * A grip's drag (`table.drag`): the drop line between two rows or two
92
+ * columns, and a band's guide; placed here, painted by a theme
93
+ * (`edytor/themes/notion.css`: Notion's blue line).
94
+ */
128
95
  [data-edytor-table-chrome] [data-edytor-table-drop] {
129
96
  position: absolute;
130
- border-radius: 2px;
131
- background: var(--edytor-table-drop-color, rgba(35, 131, 226, 0.43));
132
97
  pointer-events: none;
133
98
  }
134
99
  [data-edytor-table-chrome] [data-edytor-table-drop='row'] {
@@ -137,46 +102,6 @@
137
102
  [data-edytor-table-chrome] [data-edytor-table-drop='column'] {
138
103
  width: 4px;
139
104
  }
140
- [data-edytor-table-chrome] button[data-edytor-table-grip='column'] {
141
- width: 24px;
142
- height: 18px;
143
- }
144
- [data-edytor-table-chrome] button[data-edytor-table-grip]::before {
145
- content: '⋮⋮';
146
- font-size: 10px;
147
- letter-spacing: -2px;
148
- line-height: 24px;
149
- }
150
- [data-edytor-table-chrome] button[data-edytor-table-grip='column']::before {
151
- content: '⋯';
152
- font-size: 14px;
153
- letter-spacing: 0;
154
- line-height: 18px;
155
- }
156
- [data-edytor-table-chrome] button[data-edytor-table-add] {
157
- display: block;
158
- width: 100%;
159
- height: 16px;
160
- border-radius: 3px;
161
- background: rgba(55, 53, 47, 0.04);
162
- color: rgba(55, 53, 47, 0.45);
163
- cursor: pointer;
164
- opacity: 0;
165
- transition: opacity 80ms ease;
166
- }
167
- [data-edytor-table-chrome] button[data-edytor-table-add='column'] {
168
- width: 16px;
169
- height: 100%;
170
- }
171
- [data-edytor-table-chrome] button[data-edytor-table-add]::before {
172
- content: '+';
173
- font-size: 14px;
174
- }
175
- [data-edytor-table-chrome] button[data-edytor-table-add]:hover,
176
- [data-edytor-table-chrome] button[data-edytor-table-add]:focus-visible {
177
- opacity: 1;
178
- background: rgba(55, 53, 47, 0.08);
179
- }
180
105
  [data-edytor-table-chrome] [data-edytor-table-resize] {
181
106
  width: 8px;
182
107
  cursor: col-resize;
@@ -188,72 +113,11 @@
188
113
  bottom: 0;
189
114
  left: 3px;
190
115
  width: 2px;
191
- background: var(--edytor-table-resize-color, rgba(35, 131, 226, 0.43));
192
- opacity: 0;
193
116
  pointer-events: none;
117
+ visibility: hidden;
194
118
  }
195
119
  [data-edytor-table-chrome] [data-edytor-table-resize]:hover::after,
196
120
  [data-edytor-table-chrome] [data-edytor-table-resize]:focus-visible::after,
197
121
  [data-edytor-table-chrome] [data-edytor-table-resize][data-dragging='true']::after {
198
- opacity: 1;
199
- }
200
- [data-edytor-table-chrome] [data-edytor-table-resize]:focus-visible {
201
- outline: none;
202
- }
203
- .edytor-table-menu {
204
- position: absolute;
205
- z-index: 1;
206
- min-width: 180px;
207
- padding: 6px;
208
- border-radius: 10px;
209
- background: var(--edytor-menu-background, #fff);
210
- box-shadow:
211
- 0 0 0 1px rgba(15, 15, 15, 0.05),
212
- 0 3px 6px rgba(15, 15, 15, 0.1),
213
- 0 9px 24px rgba(15, 15, 15, 0.2);
214
- pointer-events: auto;
215
- }
216
- .edytor-table-menu-row {
217
- display: flex;
218
- align-items: center;
219
- gap: 8px;
220
- width: 100%;
221
- padding: 4px 8px;
222
- border: none;
223
- border-radius: 6px;
224
- background: transparent;
225
- color: rgb(55, 53, 47);
226
- font: inherit;
227
- font-size: 14px;
228
- text-align: start;
229
- cursor: pointer;
230
- }
231
- .edytor-table-menu-row::before {
232
- content: '';
233
- flex: none;
234
- width: 20px;
235
- height: 20px;
236
- background: #383836;
237
- -webkit-mask: var(--table-menu-icon) center / 20px no-repeat;
238
- mask: var(--table-menu-icon) center / 20px no-repeat;
239
- }
240
- /* The menu holds the keys; its keyboard's row shows as hovered. */
241
- .edytor-table-menu:focus {
242
- outline: none;
243
- }
244
- .edytor-table-menu-row:hover:not(:disabled),
245
- .edytor-table-menu-row[data-selected='true']:not(:disabled),
246
- .edytor-table-menu-row:focus-visible {
247
- background: rgba(33, 27, 23, 0.06);
248
- outline: none;
249
- }
250
- .edytor-table-menu-row:disabled {
251
- opacity: 0.4;
252
- cursor: default;
253
- }
254
- .edytor-table-menu-row.danger:hover:not(:disabled) {
255
- color: #cf5148;
256
- }
257
- .edytor-table-menu-row.danger:hover:not(:disabled)::before {
258
- background: #cf5148;
122
+ visibility: visible;
259
123
  }
@@ -1,6 +1,6 @@
1
1
  /**
2
- * The table plugin's commands and reads over the document's table ops
3
- * (`table.*` in the delete contract): each command is one dispatched plan
2
+ * The table plugin's commands and reads over its table ops (`ops.ts`,
3
+ * `table.*` in the delete contract): each command is one dispatched plan
4
4
  * (hooks see it by its name: `insertTableRow`, `deleteTableRows`,
5
5
  * `insertTableColumn`, `deleteTableColumn`, `moveTableColumn`,
6
6
  * `moveTableRows`, `fillTableCell`), its own undo step, refused in a
@@ -11,7 +11,6 @@ import type { Snippet } from 'svelte';
11
11
  import type { Block } from '../../block/block.svelte.js';
12
12
  import type { TableAddPayload, TableChrome, TableGripPayload } from './chrome.svelte.js';
13
13
  import type { Edytor } from '../../edytor.svelte.js';
14
- import type { PartialLabels } from '../../labels.js';
15
14
  export type TablePluginOptions = {
16
15
  /** The rows a new table has (default 3). */
17
16
  rows?: number;
@@ -21,25 +20,25 @@ export type TablePluginOptions = {
21
20
  columnWidth?: number;
22
21
  /** The narrowest a column may be resized to, in pixels (default 48). */
23
22
  minColumnWidth?: number;
24
- /** The words the table's command and controls say, over the English ones. */
25
- labels?: PartialLabels<'table'>;
26
- /** The slash menu's keywords of the table command (`block.table`), which replace its own. */
27
- keywords?: Partial<Record<string, string[]>>;
28
23
  /**
29
- * Replace a row's or a column's grip: it renders centered where the
30
- * grip stands (left of the hovered row, above the hovered column). Put
24
+ * A row's or a column's grip: it renders centered where the grip stands
25
+ * (left of the hovered row, above the hovered column; without it, no
26
+ * grip). Put
31
27
  * `{@attach payload.grip}` on its element: the drag, the click that
32
28
  * opens its menu, its keys and its ARIA.
33
29
  */
34
30
  grip?: Snippet<[TableGripPayload]>;
35
31
  /**
36
- * Replace a grip's menu: it renders under its grip while
37
- * `chrome.menu` is set. Put `{@attach chrome.popup}` and
38
- * `{@attach chrome.keys}` on its element and spread `item.option` (or
39
- * `chrome.option(index)`) on each row of `chrome.items`.
32
+ * A grip's menu: it renders under its grip while `chrome.menu` is set
33
+ * (without it, nothing shows). Put `{@attach chrome.popup}` and
34
+ * `{@attach chrome.keys}` on its element and `{@attach item.option}` on
35
+ * each row of `chrome.items` (its highlight from `item.selected`).
40
36
  */
41
37
  menu?: Snippet<[TableChrome]>;
42
- /** Replace the `+` under the table (a row) and beside it (a column): it renders along that edge. */
38
+ /**
39
+ * The `+` under the table (a row) and beside it (a column): it renders
40
+ * along that edge (without it, no `+`).
41
+ */
43
42
  add?: Snippet<[TableAddPayload]>;
44
43
  };
45
44
  /** A table's grid as the document shows it (`facade.tableGrid`). */
@@ -89,6 +88,8 @@ export declare const moveRows: (table: Block, rows: readonly Block[], to: number
89
88
  export declare const fillCell: (table: Block, row: string, column: string | number) => Block | null;
90
89
  /** Toggle `flag` (`headerRow` or `headerColumn`) of `table`'s data (`table.header`). */
91
90
  export declare const toggleHeader: (table: Block, flag: "headerRow" | "headerColumn") => void;
91
+ /** A label key as a row id: `insertRowAbove` → `insert-row-above`. */
92
+ export declare const kebab: (key: string) => string;
92
93
  /** A cell's width as set, else `fallback`: `data.columns[i].width`. */
93
94
  export declare const widthOf: (column: unknown, fallback: number) => number;
94
95
  /**