edytor 1.0.0-rc.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. package/README.md +65 -25
  2. package/dist/block/block.svelte.d.ts +10 -85
  3. package/dist/block/block.svelte.js +47 -141
  4. package/dist/block/colors.d.ts +0 -9
  5. package/dist/block/colors.js +1 -18
  6. package/dist/block/contentRange.d.ts +5 -1
  7. package/dist/block/contentRange.js +15 -16
  8. package/dist/block/inlineBlock.svelte.d.ts +8 -10
  9. package/dist/block/inlineBlock.svelte.js +14 -22
  10. package/dist/clipboard/createClipboardFragment.js +22 -64
  11. package/dist/clipboard/fragmentData.js +17 -42
  12. package/dist/clipboard/htmlFlow.d.ts +6 -1
  13. package/dist/clipboard/htmlFlow.js +26 -13
  14. package/dist/clipboard/insertClipboardFragment.js +5 -4
  15. package/dist/clipboard/moveText.js +16 -8
  16. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  17. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  18. package/dist/cloudflare/DocumentRoom.d.ts +22 -17
  19. package/dist/cloudflare/DocumentRoom.js +10 -5
  20. package/dist/cloudflare/index.d.ts +1 -1
  21. package/dist/cloudflare/index.js +1 -1
  22. package/dist/cloudflare/move.d.ts +1 -18
  23. package/dist/cloudflare/move.js +2 -48
  24. package/dist/cloudflare/room/admission.d.ts +1 -60
  25. package/dist/cloudflare/room/admission.js +25 -29
  26. package/dist/cloudflare/room/comments.d.ts +1 -3
  27. package/dist/cloudflare/room/comments.js +6 -6
  28. package/dist/cloudflare/room/context.d.ts +20 -82
  29. package/dist/cloudflare/room/context.js +8 -8
  30. package/dist/cloudflare/room/forged.d.ts +1 -1
  31. package/dist/cloudflare/room/forged.js +2 -12
  32. package/dist/cloudflare/room/frames.d.ts +1 -1
  33. package/dist/cloudflare/room/frames.js +1 -1
  34. package/dist/cloudflare/room/history.d.ts +1 -25
  35. package/dist/cloudflare/room/history.js +39 -54
  36. package/dist/cloudflare/room/moves.d.ts +1 -13
  37. package/dist/cloudflare/room/moves.js +33 -57
  38. package/dist/cloudflare/room/presence.d.ts +1 -11
  39. package/dist/cloudflare/room/presence.js +4 -4
  40. package/dist/cloudflare/room/purge.d.ts +1 -2
  41. package/dist/cloudflare/room/purge.js +2 -2
  42. package/dist/cloudflare/room/replicas.d.ts +1 -7
  43. package/dist/cloudflare/room/replicas.js +2 -2
  44. package/dist/cloudflare/room/storage.d.ts +9 -30
  45. package/dist/cloudflare/room/storage.js +52 -104
  46. package/dist/cloudflare/room/updates.d.ts +4 -4
  47. package/dist/cloudflare/room/updates.js +17 -24
  48. package/dist/cloudflare/room/validation.d.ts +1 -5
  49. package/dist/cloudflare/room/validation.js +16 -37
  50. package/dist/collaboration/RemoteSelections.svelte +13 -17
  51. package/dist/collaboration/comments/client.d.ts +2 -2
  52. package/dist/collaboration/comments/client.js +1 -1
  53. package/dist/collaboration/history/index.d.ts +5 -5
  54. package/dist/collaboration/history/index.js +5 -5
  55. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  56. package/dist/collaboration/history/panel.svelte.js +223 -0
  57. package/dist/collaboration/providers.d.ts +12 -3
  58. package/dist/collaboration/providers.js +5 -4
  59. package/dist/components/Block.svelte +160 -119
  60. package/dist/components/Block.svelte.d.ts +8 -3
  61. package/dist/components/Content.svelte +91 -44
  62. package/dist/components/CustomMark.svelte +46 -0
  63. package/dist/components/CustomMark.svelte.d.ts +11 -0
  64. package/dist/components/Edytor.svelte +80 -95
  65. package/dist/components/Edytor.svelte.d.ts +8 -12
  66. package/dist/components/InlineBlock.svelte +4 -9
  67. package/dist/components/Mark.svelte +46 -35
  68. package/dist/components/Mark.svelte.d.ts +7 -0
  69. package/dist/components/Ranges.svelte +96 -0
  70. package/dist/components/Ranges.svelte.d.ts +19 -0
  71. package/dist/components/Suggestion.svelte +3 -2
  72. package/dist/components/Text.svelte +48 -14
  73. package/dist/components/Text.svelte.d.ts +1 -1
  74. package/dist/crdt/admission.d.ts +2 -9
  75. package/dist/crdt/admission.js +3 -9
  76. package/dist/crdt/attribution/attribution.d.ts +11 -72
  77. package/dist/crdt/attribution/attribution.js +5 -52
  78. package/dist/crdt/attribution/block.d.ts +0 -78
  79. package/dist/crdt/attribution/block.js +1 -144
  80. package/dist/crdt/data.d.ts +8 -13
  81. package/dist/crdt/data.js +30 -70
  82. package/dist/crdt/doc/anchors.js +4 -4
  83. package/dist/crdt/doc/content.d.ts +5 -1
  84. package/dist/crdt/doc/content.js +3 -1
  85. package/dist/crdt/doc/delete.d.ts +1 -0
  86. package/dist/crdt/doc/funnel.d.ts +0 -23
  87. package/dist/crdt/doc/funnel.js +34 -85
  88. package/dist/crdt/doc/gate.d.ts +8 -9
  89. package/dist/crdt/doc/gate.js +7 -17
  90. package/dist/crdt/doc/history.d.ts +87 -14
  91. package/dist/crdt/doc/history.js +334 -149
  92. package/dist/crdt/doc/layout.d.ts +0 -1
  93. package/dist/crdt/doc/layout.js +2 -3
  94. package/dist/crdt/doc/meta.d.ts +4 -4
  95. package/dist/crdt/doc/meta.js +10 -21
  96. package/dist/crdt/doc/moves.d.ts +4 -4
  97. package/dist/crdt/doc/moves.js +5 -5
  98. package/dist/crdt/doc/plan.d.ts +2 -0
  99. package/dist/crdt/doc/plan.js +2 -0
  100. package/dist/crdt/doc/reads.d.ts +1 -5
  101. package/dist/crdt/doc/reads.js +38 -49
  102. package/dist/crdt/doc/seed.d.ts +15 -6
  103. package/dist/crdt/doc/seed.js +27 -26
  104. package/dist/crdt/doc/split-merge.d.ts +1 -3
  105. package/dist/crdt/doc/split-merge.js +4 -5
  106. package/dist/crdt/doc/steps.d.ts +3 -7
  107. package/dist/crdt/doc/steps.js +20 -9
  108. package/dist/crdt/doc/types.d.ts +0 -10
  109. package/dist/crdt/document.d.ts +24 -115
  110. package/dist/crdt/document.js +207 -305
  111. package/dist/crdt/edytor-doc.d.ts +671 -90
  112. package/dist/crdt/edytor-doc.js +73 -149
  113. package/dist/crdt/engine-api.d.ts +15 -47
  114. package/dist/crdt/engine.d.ts +7 -17
  115. package/dist/crdt/engine.js +9 -19
  116. package/dist/crdt/flow.d.ts +9 -37
  117. package/dist/crdt/flow.js +260 -238
  118. package/dist/crdt/index.d.ts +26 -85
  119. package/dist/crdt/index.js +21 -47
  120. package/dist/crdt/operations.d.ts +24 -33
  121. package/dist/crdt/operations.js +7 -17
  122. package/dist/crdt/placement/display.d.ts +0 -2
  123. package/dist/crdt/placement/display.js +0 -15
  124. package/dist/crdt/placement/model.d.ts +160 -12
  125. package/dist/crdt/placement/model.js +413 -414
  126. package/dist/crdt/placement/rank.d.ts +1 -5
  127. package/dist/crdt/placement/rank.js +28 -38
  128. package/dist/crdt/protocol.d.ts +4 -5
  129. package/dist/crdt/protocol.js +3 -4
  130. package/dist/crdt/protocols/awareness.d.ts +3 -7
  131. package/dist/crdt/protocols/awareness.js +17 -33
  132. package/dist/crdt/protocols/envelope.d.ts +9 -29
  133. package/dist/crdt/protocols/envelope.js +8 -25
  134. package/dist/crdt/protocols/sync.d.ts +15 -30
  135. package/dist/crdt/protocols/sync.js +27 -89
  136. package/dist/crdt/providers/bound.d.ts +3 -1
  137. package/dist/crdt/providers/bound.js +3 -1
  138. package/dist/crdt/providers/container.d.ts +11 -17
  139. package/dist/crdt/providers/container.js +39 -27
  140. package/dist/crdt/providers/index.d.ts +34 -6
  141. package/dist/crdt/providers/index.js +106 -111
  142. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  143. package/dist/crdt/providers/indexeddb.js +29 -90
  144. package/dist/crdt/providers/room.d.ts +58 -2
  145. package/dist/crdt/providers/room.js +38 -21
  146. package/dist/crdt/providers/websocket.d.ts +1 -1
  147. package/dist/crdt/providers/websocket.js +3 -4
  148. package/dist/crdt/purge.d.ts +2 -2
  149. package/dist/crdt/purge.js +69 -6
  150. package/dist/crdt/rangeDelete.d.ts +4 -42
  151. package/dist/crdt/rangeDelete.js +7 -6
  152. package/dist/crdt/restore.d.ts +21 -1
  153. package/dist/crdt/restore.js +54 -59
  154. package/dist/crdt/schema.d.ts +2 -2
  155. package/dist/crdt/schema.js +4 -5
  156. package/dist/crdt/semantics.d.ts +10 -15
  157. package/dist/crdt/semantics.js +22 -21
  158. package/dist/crdt/storage.d.ts +7 -13
  159. package/dist/crdt/storage.js +10 -24
  160. package/dist/crdt/structs.d.ts +42 -47
  161. package/dist/crdt/structs.js +76 -67
  162. package/dist/crdt/tables.d.ts +9 -0
  163. package/dist/crdt/tables.js +20 -0
  164. package/dist/crdt/text/delete-index.d.ts +0 -13
  165. package/dist/crdt/text/delete-index.js +7 -14
  166. package/dist/crdt/text/deletes.d.ts +9 -22
  167. package/dist/crdt/text/deletes.js +11 -74
  168. package/dist/crdt/text/index/cache.js +3 -3
  169. package/dist/crdt/text/index/fold.d.ts +1 -2
  170. package/dist/crdt/text/index/fold.js +15 -10
  171. package/dist/crdt/text/index/layout.d.ts +0 -10
  172. package/dist/crdt/text/index/layout.js +6 -20
  173. package/dist/crdt/text/index/records.js +2 -1
  174. package/dist/crdt/text/index/report.js +5 -6
  175. package/dist/crdt/text/index/shared.d.ts +11 -4
  176. package/dist/crdt/text/index/shared.js +8 -7
  177. package/dist/crdt/text/index/state.d.ts +3 -33
  178. package/dist/crdt/text/index/state.js +2 -4
  179. package/dist/crdt/text/model.d.ts +82 -2
  180. package/dist/crdt/text/model.js +344 -354
  181. package/dist/crdt/text/rows.d.ts +0 -2
  182. package/dist/crdt/text/rows.js +0 -11
  183. package/dist/crdt/text/runs.d.ts +6 -3
  184. package/dist/crdt/text/runs.js +132 -137
  185. package/dist/crdt/text/streams.d.ts +1 -1
  186. package/dist/crdt/text/streams.js +1 -1
  187. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  188. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  189. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  190. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  191. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  192. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  193. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  194. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  195. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  196. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  197. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  198. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  199. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  200. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  201. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  202. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  203. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  204. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  205. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  206. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  207. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  208. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  209. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  210. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  211. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  212. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  213. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  214. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  215. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  216. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  217. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  218. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  219. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  220. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  221. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  222. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  223. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  224. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  225. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  226. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  227. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  228. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  229. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  230. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  231. package/dist/{plugins/blockHandles → dnd}/autoScroll.d.ts +2 -1
  232. package/dist/{plugins/blockHandles → dnd}/autoScroll.js +3 -3
  233. package/dist/dnd/pragmatic.d.ts +4 -22
  234. package/dist/dnd/pragmatic.js +7 -26
  235. package/dist/dnd/track.d.ts +14 -0
  236. package/dist/dnd/track.js +55 -0
  237. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  238. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  239. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  240. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  241. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  242. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  243. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  254. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +36 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  265. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  293. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  294. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  295. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  296. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  297. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  298. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  299. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  300. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  301. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  302. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  303. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  304. package/dist/edytor.svelte.d.ts +34 -64
  305. package/dist/edytor.svelte.js +118 -180
  306. package/dist/events/beforeInputCommands.d.ts +6 -11
  307. package/dist/events/beforeInputCommands.js +189 -184
  308. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  309. package/dist/events/beforeInputDeleteCommands.js +153 -204
  310. package/dist/events/domTextOffset.d.ts +9 -9
  311. package/dist/events/domTextOffset.js +20 -48
  312. package/dist/events/events.utils.d.ts +0 -2
  313. package/dist/events/events.utils.js +0 -4
  314. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  315. package/dist/events/nativeInteractiveControl.js +28 -56
  316. package/dist/events/onBeforeInput.d.ts +6 -1
  317. package/dist/events/onBeforeInput.js +207 -331
  318. package/dist/events/onCopy.js +1 -5
  319. package/dist/events/onDrop.d.ts +7 -1
  320. package/dist/events/onDrop.js +33 -72
  321. package/dist/events/onFocus.d.ts +9 -4
  322. package/dist/events/onFocus.js +92 -72
  323. package/dist/events/onInput.d.ts +8 -4
  324. package/dist/events/onInput.js +34 -147
  325. package/dist/events/onKeyDown.js +55 -122
  326. package/dist/events/onPaste.d.ts +13 -1
  327. package/dist/events/onPaste.js +46 -76
  328. package/dist/index.d.ts +10 -13
  329. package/dist/index.js +3 -3
  330. package/dist/kinds.d.ts +4 -6
  331. package/dist/kinds.js +28 -27
  332. package/dist/labels.d.ts +91 -314
  333. package/dist/labels.js +180 -396
  334. package/dist/plugins/Chrome.svelte +29 -0
  335. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  336. package/dist/plugins/Control.svelte +23 -0
  337. package/dist/plugins/Control.svelte.d.ts +30 -0
  338. package/dist/plugins/anchored.svelte.d.ts +47 -0
  339. package/dist/plugins/anchored.svelte.js +73 -0
  340. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  341. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  342. package/dist/plugins/bands.svelte.d.ts +57 -0
  343. package/dist/plugins/bands.svelte.js +95 -0
  344. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -151
  345. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  346. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +63 -97
  347. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +247 -268
  348. package/dist/plugins/blockHandles/BlockHandles.svelte +46 -29
  349. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  350. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +29 -23
  351. package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -162
  352. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  353. package/dist/plugins/blockHandles/dragPreview.js +20 -17
  354. package/dist/plugins/blockHandles/dropIndicator.js +52 -60
  355. package/dist/plugins/blockHandles/geometry.d.ts +46 -1
  356. package/dist/plugins/blockHandles/geometry.js +51 -4
  357. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +59 -28
  358. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +180 -105
  359. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  360. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  361. package/dist/plugins/brand.d.ts +8 -0
  362. package/dist/plugins/brand.js +8 -0
  363. package/dist/plugins/chrome.d.ts +79 -0
  364. package/dist/plugins/chrome.js +87 -0
  365. package/dist/plugins/code/CodeHeader.svelte +12 -58
  366. package/dist/plugins/code/CodeHeader.svelte.d.ts +1 -0
  367. package/dist/plugins/code/CodePlugin.svelte +75 -56
  368. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  369. package/dist/plugins/code/LanguageMenu.svelte +25 -0
  370. package/dist/plugins/code/LanguageMenu.svelte.d.ts +9 -0
  371. package/dist/plugins/code/code.css +5 -100
  372. package/dist/plugins/code/header.svelte.d.ts +47 -0
  373. package/dist/plugins/code/header.svelte.js +141 -0
  374. package/dist/plugins/code/languageMenu.svelte.d.ts +84 -0
  375. package/dist/plugins/code/languageMenu.svelte.js +199 -0
  376. package/dist/plugins/code/languages.d.ts +21 -10
  377. package/dist/plugins/code/languages.js +39 -126
  378. package/dist/plugins/columns/ColumnResize.svelte +13 -25
  379. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  380. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  381. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  382. package/dist/plugins/columns/columns.css +7 -26
  383. package/dist/plugins/columns/resize.svelte.d.ts +14 -51
  384. package/dist/plugins/columns/resize.svelte.js +70 -164
  385. package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
  386. package/dist/plugins/comments/CommentsController.svelte.js +14 -25
  387. package/dist/plugins/comments/CommentsSidebar.svelte +82 -430
  388. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +6 -7
  389. package/dist/plugins/comments/commentsPlugin.d.ts +31 -10
  390. package/dist/plugins/comments/commentsPlugin.js +12 -10
  391. package/dist/plugins/equation/EquationEditor.svelte +18 -129
  392. package/dist/plugins/equation/EquationEditor.svelte.d.ts +2 -1
  393. package/dist/plugins/equation/EquationPlugin.svelte +123 -168
  394. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +5 -3
  395. package/dist/plugins/equation/EquationView.svelte +20 -11
  396. package/dist/plugins/equation/equation.svelte.d.ts +74 -36
  397. package/dist/plugins/equation/equation.svelte.js +74 -66
  398. package/dist/plugins/equation/importUrl.d.ts +6 -0
  399. package/dist/plugins/equation/importUrl.js +6 -0
  400. package/dist/plugins/equation/katex.d.ts +8 -0
  401. package/dist/plugins/equation/katex.js +77 -0
  402. package/dist/plugins/find/FindController.svelte.d.ts +8 -13
  403. package/dist/plugins/find/FindController.svelte.js +34 -55
  404. package/dist/plugins/find/findPlugin.d.ts +4 -8
  405. package/dist/plugins/find/findPlugin.js +29 -9
  406. package/dist/plugins/image/ImageChrome.svelte +5 -151
  407. package/dist/plugins/image/ImagePlugin.svelte +49 -117
  408. package/dist/plugins/image/ImagePlugin.svelte.d.ts +1 -24
  409. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  410. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  411. package/dist/plugins/image/controls.svelte.d.ts +6 -57
  412. package/dist/plugins/image/controls.svelte.js +51 -174
  413. package/dist/plugins/image/image.d.ts +0 -5
  414. package/dist/plugins/image/image.js +0 -3
  415. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  416. package/dist/plugins/image/toolbar.svelte.js +145 -0
  417. package/dist/plugins/index.d.ts +39 -24
  418. package/dist/plugins/index.js +30 -22
  419. package/dist/plugins/list.svelte.d.ts +128 -0
  420. package/dist/plugins/list.svelte.js +217 -0
  421. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  422. package/dist/plugins/markdownShortcuts.js +6 -5
  423. package/dist/plugins/marquee/MarqueeBox.svelte +15 -0
  424. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +9 -0
  425. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +46 -0
  426. package/dist/plugins/marquee/MarqueeController.svelte.js +243 -0
  427. package/dist/plugins/marquee/marquee.d.ts +33 -0
  428. package/dist/plugins/marquee/marquee.js +89 -0
  429. package/dist/plugins/marquee/marqueePlugin.d.ts +32 -0
  430. package/dist/plugins/marquee/marqueePlugin.js +68 -0
  431. package/dist/plugins/media/AudioPlugin.svelte +3 -88
  432. package/dist/plugins/media/AudioPlugin.svelte.d.ts +1 -4
  433. package/dist/plugins/media/BookmarkPlugin.svelte +124 -112
  434. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +20 -7
  435. package/dist/plugins/media/EmbedPlugin.svelte +93 -77
  436. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +21 -9
  437. package/dist/plugins/media/EmptySlot.svelte +44 -0
  438. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  439. package/dist/plugins/media/FilePlugin.svelte +35 -111
  440. package/dist/plugins/media/FilePlugin.svelte.d.ts +12 -4
  441. package/dist/plugins/media/MediaEmpty.svelte +55 -112
  442. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  443. package/dist/plugins/media/SourceBlock.svelte +164 -0
  444. package/dist/plugins/media/SourceBlock.svelte.d.ts +33 -0
  445. package/dist/plugins/media/VideoPlugin.svelte +4 -97
  446. package/dist/plugins/media/VideoPlugin.svelte.d.ts +2 -5
  447. package/dist/plugins/media/empty.svelte.d.ts +69 -0
  448. package/dist/plugins/media/empty.svelte.js +111 -0
  449. package/dist/plugins/media/media.d.ts +93 -30
  450. package/dist/plugins/media/media.js +79 -86
  451. package/dist/plugins/media/urlPaste.svelte.d.ts +9 -32
  452. package/dist/plugins/media/urlPaste.svelte.js +46 -75
  453. package/dist/plugins/mention/MentionPlugin.svelte +47 -124
  454. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +11 -23
  455. package/dist/plugins/page/PageLink.svelte +54 -38
  456. package/dist/plugins/page/PagePlugin.svelte +20 -18
  457. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  458. package/dist/plugins/page/page.d.ts +35 -9
  459. package/dist/plugins/page/page.js +3 -4
  460. package/dist/plugins/pageLink/PageLinkPlugin.svelte +52 -108
  461. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +11 -23
  462. package/dist/plugins/planned.d.ts +10 -0
  463. package/dist/plugins/planned.js +12 -0
  464. package/dist/plugins/richtext/CalloutIcon.svelte +25 -0
  465. package/dist/plugins/richtext/CalloutIcon.svelte.d.ts +9 -0
  466. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  467. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  468. package/dist/plugins/richtext/EmptyBody.svelte +25 -0
  469. package/dist/plugins/richtext/EmptyBody.svelte.d.ts +8 -0
  470. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  471. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  472. package/dist/plugins/richtext/RichTextPlugin.svelte +272 -148
  473. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +37 -18
  474. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  475. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  476. package/dist/plugins/richtext/body.d.ts +9 -0
  477. package/dist/plugins/richtext/body.js +16 -0
  478. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +97 -0
  479. package/dist/plugins/richtext/calloutIcons.svelte.js +214 -0
  480. package/dist/plugins/richtext/callouts.d.ts +15 -0
  481. package/dist/plugins/richtext/callouts.js +23 -0
  482. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  483. package/dist/plugins/richtext/controls.svelte.js +126 -0
  484. package/dist/plugins/richtext/richTextOperations.js +37 -28
  485. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +18 -11
  486. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +93 -35
  487. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +11 -24
  488. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  489. package/dist/plugins/suggestions/SuggestionBars.svelte +32 -84
  490. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  491. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -16
  492. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  493. package/dist/plugins/table/TableChrome.svelte +96 -127
  494. package/dist/plugins/table/TableChrome.svelte.d.ts +5 -1
  495. package/dist/plugins/table/TablePlugin.svelte +116 -171
  496. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  497. package/dist/plugins/table/chrome.svelte.d.ts +110 -117
  498. package/dist/plugins/table/chrome.svelte.js +643 -289
  499. package/dist/plugins/table/ops.d.ts +47 -0
  500. package/dist/plugins/table/ops.js +233 -0
  501. package/dist/plugins/table/table.css +55 -134
  502. package/dist/plugins/table/table.d.ts +26 -7
  503. package/dist/plugins/table/table.js +23 -49
  504. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  505. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  506. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  507. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  508. package/dist/plugins/toc/toc.d.ts +41 -10
  509. package/dist/plugins/toc/toc.js +2 -3
  510. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +29 -66
  511. package/dist/plugins/toolbar/ToolbarController.svelte.js +151 -76
  512. package/dist/plugins/toolbar/toolbarPlugin.d.ts +14 -13
  513. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  514. package/dist/plugins/triggers/TriggerController.svelte.d.ts +6 -45
  515. package/dist/plugins/triggers/TriggerController.svelte.js +51 -96
  516. package/dist/plugins/triggers/place.d.ts +0 -9
  517. package/dist/plugins/triggers/place.js +1 -17
  518. package/dist/plugins/triggers/triggers.d.ts +31 -9
  519. package/dist/plugins/triggers/triggers.js +82 -62
  520. package/dist/plugins/uploads.svelte.d.ts +38 -20
  521. package/dist/plugins/uploads.svelte.js +39 -32
  522. package/dist/plugins.d.ts +167 -60
  523. package/dist/selection/domSelection.d.ts +13 -4
  524. package/dist/selection/domSelection.js +110 -183
  525. package/dist/selection/pointer.svelte.d.ts +12 -10
  526. package/dist/selection/pointer.svelte.js +154 -71
  527. package/dist/selection/replaceSelection.d.ts +21 -22
  528. package/dist/selection/replaceSelection.js +60 -69
  529. package/dist/selection/selection.svelte.d.ts +5 -73
  530. package/dist/selection/selection.svelte.js +263 -542
  531. package/dist/selection/selection.utils.d.ts +34 -11
  532. package/dist/selection/selection.utils.js +128 -247
  533. package/dist/selection/visibility.d.ts +11 -8
  534. package/dist/selection/visibility.js +23 -8
  535. package/dist/session/announcer.svelte.d.ts +2 -1
  536. package/dist/session/announcer.svelte.js +7 -3
  537. package/dist/session/attempt.d.ts +33 -39
  538. package/dist/session/attempt.js +61 -53
  539. package/dist/session/bindings.js +108 -139
  540. package/dist/session/commands.d.ts +47 -22
  541. package/dist/session/commands.js +206 -208
  542. package/dist/session/composition.svelte.d.ts +2 -4
  543. package/dist/session/composition.svelte.js +55 -65
  544. package/dist/session/editing/text.d.ts +6 -0
  545. package/dist/session/editing/text.js +17 -3
  546. package/dist/session/handles.d.ts +10 -1
  547. package/dist/session/handles.js +28 -0
  548. package/dist/session/history.d.ts +0 -4
  549. package/dist/session/history.js +15 -21
  550. package/dist/session/inputRules.js +75 -84
  551. package/dist/session/keymap.d.ts +1 -6
  552. package/dist/session/keymap.js +17 -20
  553. package/dist/session/moves.d.ts +10 -10
  554. package/dist/session/moves.js +31 -59
  555. package/dist/session/navigation.d.ts +18 -3
  556. package/dist/session/navigation.js +194 -153
  557. package/dist/session/ports.d.ts +7 -0
  558. package/dist/session/selection.d.ts +4 -3
  559. package/dist/session/selection.js +8 -0
  560. package/dist/session/suggestions.svelte.d.ts +1 -1
  561. package/dist/session/suggestions.svelte.js +64 -47
  562. package/dist/session/virtual.d.ts +3 -3
  563. package/dist/session/virtual.js +18 -40
  564. package/dist/surface/attributes.d.ts +1 -0
  565. package/dist/surface/attributes.js +3 -26
  566. package/dist/surface/cells.d.ts +5 -0
  567. package/dist/surface/cells.js +5 -0
  568. package/dist/surface/lines.d.ts +32 -0
  569. package/dist/surface/lines.js +43 -0
  570. package/dist/surface/observer.svelte.d.ts +3 -20
  571. package/dist/surface/observer.svelte.js +73 -77
  572. package/dist/surface/overlay.d.ts +48 -6
  573. package/dist/surface/overlay.js +133 -23
  574. package/dist/surface/pin.svelte.d.ts +5 -0
  575. package/dist/surface/pin.svelte.js +5 -0
  576. package/dist/surface/projector.svelte.d.ts +4 -6
  577. package/dist/surface/projector.svelte.js +42 -69
  578. package/dist/text/text.svelte.d.ts +14 -40
  579. package/dist/text/text.svelte.js +35 -51
  580. package/dist/text/wordBoundary.d.ts +19 -0
  581. package/dist/text/wordBoundary.js +29 -44
  582. package/dist/themes/notion.css +315 -126
  583. package/dist/utils/json.d.ts +3 -1
  584. package/dist/utils/json.js +52 -51
  585. package/dist/utils/listen.d.ts +8 -0
  586. package/dist/utils/listen.js +19 -0
  587. package/package.json +4 -5
  588. package/dist/block/block.utils.d.ts +0 -340
  589. package/dist/block/block.utils.js +0 -356
  590. package/dist/collaboration/history/HistoryPanel.svelte +0 -525
  591. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  592. package/dist/collaboration/history/panel.d.ts +0 -43
  593. package/dist/collaboration/history/panel.js +0 -3
  594. package/dist/components/SuggestionRanges.svelte +0 -58
  595. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  596. package/dist/crdt/doc/table.d.ts +0 -21
  597. package/dist/crdt/doc/table.js +0 -288
  598. package/dist/crdt/migration/generation.d.ts +0 -58
  599. package/dist/crdt/migration/generation.js +0 -70
  600. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  601. package/dist/crdt/migration/legacy-schema.js +0 -151
  602. package/dist/crdt/migration/migrate.d.ts +0 -56
  603. package/dist/crdt/migration/migrate.js +0 -227
  604. package/dist/crdt/nodes.d.ts +0 -121
  605. package/dist/crdt/nodes.js +0 -56
  606. package/dist/crdt/text/index/checks.d.ts +0 -15
  607. package/dist/crdt/text/index/checks.js +0 -156
  608. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  609. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  610. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  611. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  612. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  613. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  614. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  615. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  616. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  617. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  618. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  619. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  620. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  621. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  622. package/dist/edytor.utils.d.ts +0 -50
  623. package/dist/edytor.utils.js +0 -67
  624. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -447
  625. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  626. package/dist/plugins/find/FindBar.svelte +0 -170
  627. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  628. package/dist/plugins/find/FindHighlights.svelte +0 -75
  629. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  630. package/dist/plugins/icons.d.ts +0 -2
  631. package/dist/plugins/icons.js +0 -63
  632. package/dist/plugins/image/ImageEmpty.svelte +0 -116
  633. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -12
  634. package/dist/plugins/keepInView.d.ts +0 -4
  635. package/dist/plugins/keepInView.js +0 -6
  636. package/dist/plugins/media/UrlPasteMenu.svelte +0 -83
  637. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -7
  638. package/dist/plugins/richtext/labels.d.ts +0 -5
  639. package/dist/plugins/richtext/labels.js +0 -3
  640. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -360
  641. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  642. package/dist/plugins/toolbar/LinkCard.svelte +0 -118
  643. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -7
  644. package/dist/plugins/toolbar/Toolbar.svelte +0 -400
  645. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  646. package/dist/plugins/triggers/TriggerMenu.svelte +0 -144
  647. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  648. package/dist/session/props.d.ts +0 -28
  649. package/dist/session/props.js +0 -162
  650. package/dist/text/deltas.d.ts +0 -22
  651. package/dist/text/deltas.js +0 -46
  652. package/dist/text/text.utils.d.ts +0 -45
  653. package/dist/text/text.utils.js +0 -199
@@ -0,0 +1,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,17 +1,21 @@
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] {
12
+ /*
13
+ * The table's place sizes the box, never its columns (`table.overflow`):
14
+ * its content gives it no intrinsic width, so a page laying the editor out
15
+ * by its content (a grid or flex item, a float) does not grow with a wide
16
+ * table; the grid scrolls inside.
17
+ */
18
+ contain: inline-size;
15
19
  overflow-x: auto;
16
20
  overflow-y: hidden;
17
21
  /* Room for the `+` under it (the chrome's), so it never covers the next block. */
@@ -21,16 +25,11 @@
21
25
  display: grid;
22
26
  width: max-content;
23
27
  padding-inline-start: 0;
24
- border-top: 1px solid var(--edytor-table-border-color);
25
- border-left: 1px solid var(--edytor-table-border-color);
26
28
  }
27
29
  [data-edytor-block][data-edytor-table-row][data-edytor-type] {
28
30
  display: grid;
29
31
  grid-column: 1 / -1;
30
32
  grid-template-columns: subgrid;
31
- margin: 0;
32
- padding: 0;
33
- border-radius: 0;
34
33
  }
35
34
  [data-edytor-table-row] > [data-edytor-children][data-edytor-table-cells] {
36
35
  display: contents;
@@ -39,12 +38,6 @@
39
38
  [data-edytor-table-pad] {
40
39
  grid-row: 1;
41
40
  min-width: 0;
42
- min-height: 33px;
43
- margin: 0;
44
- padding: 7px 9px;
45
- border-radius: 0;
46
- border-right: 1px solid var(--edytor-table-border-color);
47
- border-bottom: 1px solid var(--edytor-table-border-color);
48
41
  white-space: pre-wrap;
49
42
  overflow-wrap: anywhere;
50
43
  box-sizing: border-box;
@@ -54,18 +47,33 @@
54
47
  user-select: none;
55
48
  -webkit-user-select: none;
56
49
  }
57
- /* A header row's or header column's cells: Notion's gray, a little bolder. */
58
- [data-edytor-block][data-edytor-table-cell][data-edytor-table-header='true'] {
59
- background: var(--edytor-table-header-background, rgb(247, 246, 243));
60
- font-weight: 600;
61
- }
62
50
  [data-edytor-table-row] [data-edytor-table-cell] > [data-edytor-children] {
63
51
  padding-inline-start: 0;
64
52
  }
65
53
 
66
54
  /* ── The chrome (overlay): grips, `+` bars, resize bands, menus ─────── */
67
- [data-edytor-table-chrome] button[data-edytor-table-grip],
68
- [data-edytor-table-chrome] button[data-edytor-table-add],
55
+ /* Where a grip stands (a point: the app's grip centered on it), a `+`, a menu. */
56
+ [data-edytor-table-chrome] [data-edytor-table-grip-host] {
57
+ position: absolute;
58
+ display: flex;
59
+ align-items: center;
60
+ justify-content: center;
61
+ width: 0;
62
+ height: 0;
63
+ }
64
+ [data-edytor-table-chrome] [data-edytor-table-add-host],
65
+ [data-edytor-table-chrome] [data-edytor-table-menu-host] {
66
+ position: absolute;
67
+ }
68
+ [data-edytor-table-chrome] [data-edytor-table-menu-host] {
69
+ z-index: 1;
70
+ }
71
+ [data-edytor-table-chrome] [data-edytor-table-grip-host] > *,
72
+ [data-edytor-table-chrome] [data-edytor-table-add-host] > * {
73
+ flex: none;
74
+ pointer-events: auto;
75
+ touch-action: none;
76
+ }
69
77
  [data-edytor-table-chrome] [data-edytor-table-resize] {
70
78
  position: absolute;
71
79
  margin: 0;
@@ -74,56 +82,25 @@
74
82
  pointer-events: auto;
75
83
  touch-action: none;
76
84
  }
77
- [data-edytor-table-chrome][data-selecting='true'] > * {
85
+ [data-edytor-table-chrome][data-selecting='true'] > *,
86
+ [data-edytor-table-chrome][data-selecting='true'] [data-edytor-table-grip-host] > *,
87
+ [data-edytor-table-chrome][data-selecting='true'] [data-edytor-table-add-host] > * {
78
88
  pointer-events: none;
79
89
  }
80
- [data-edytor-table-chrome] button[data-edytor-table-grip] {
81
- width: 18px;
82
- height: 24px;
83
- border-radius: 4px;
84
- background: var(--edytor-table-grip-background, #fff);
85
- box-shadow:
86
- 0 0 0 1px rgba(15, 15, 15, 0.1),
87
- 0 2px 4px rgba(15, 15, 15, 0.1);
88
- color: rgba(55, 53, 47, 0.45);
89
- cursor: grab;
90
- }
91
- [data-edytor-table-chrome] button[data-edytor-table-grip='column'] {
92
- width: 24px;
93
- height: 18px;
94
- }
95
- [data-edytor-table-chrome] button[data-edytor-table-grip]::before {
96
- content: '⋮⋮';
97
- font-size: 10px;
98
- letter-spacing: -2px;
99
- line-height: 24px;
100
- }
101
- [data-edytor-table-chrome] button[data-edytor-table-grip='column']::before {
102
- content: '⋯';
103
- font-size: 14px;
104
- letter-spacing: 0;
105
- line-height: 18px;
106
- }
107
- [data-edytor-table-chrome] button[data-edytor-table-add] {
108
- height: 16px;
109
- border-radius: 3px;
110
- background: rgba(55, 53, 47, 0.04);
111
- color: rgba(55, 53, 47, 0.45);
112
- cursor: pointer;
113
- opacity: 0;
114
- transition: opacity 80ms ease;
115
- }
116
- [data-edytor-table-chrome] button[data-edytor-table-add='column'] {
117
- width: 16px;
118
- }
119
- [data-edytor-table-chrome] button[data-edytor-table-add]::before {
120
- content: '+';
121
- font-size: 14px;
122
- }
123
- [data-edytor-table-chrome] button[data-edytor-table-add]:hover,
124
- [data-edytor-table-chrome] button[data-edytor-table-add]:focus-visible {
125
- opacity: 1;
126
- background: rgba(55, 53, 47, 0.08);
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
+ */
95
+ [data-edytor-table-chrome] [data-edytor-table-drop] {
96
+ position: absolute;
97
+ pointer-events: none;
98
+ }
99
+ [data-edytor-table-chrome] [data-edytor-table-drop='row'] {
100
+ height: 4px;
101
+ }
102
+ [data-edytor-table-chrome] [data-edytor-table-drop='column'] {
103
+ width: 4px;
127
104
  }
128
105
  [data-edytor-table-chrome] [data-edytor-table-resize] {
129
106
  width: 8px;
@@ -136,67 +113,11 @@
136
113
  bottom: 0;
137
114
  left: 3px;
138
115
  width: 2px;
139
- background: var(--edytor-table-resize-color, rgba(35, 131, 226, 0.43));
140
- opacity: 0;
141
116
  pointer-events: none;
117
+ visibility: hidden;
142
118
  }
143
119
  [data-edytor-table-chrome] [data-edytor-table-resize]:hover::after,
144
120
  [data-edytor-table-chrome] [data-edytor-table-resize]:focus-visible::after,
145
121
  [data-edytor-table-chrome] [data-edytor-table-resize][data-dragging='true']::after {
146
- opacity: 1;
147
- }
148
- [data-edytor-table-chrome] [data-edytor-table-resize]:focus-visible {
149
- outline: none;
150
- }
151
- .edytor-table-menu {
152
- position: absolute;
153
- z-index: 1;
154
- min-width: 180px;
155
- padding: 6px;
156
- border-radius: 10px;
157
- background: var(--edytor-menu-background, #fff);
158
- box-shadow:
159
- 0 0 0 1px rgba(15, 15, 15, 0.05),
160
- 0 3px 6px rgba(15, 15, 15, 0.1),
161
- 0 9px 24px rgba(15, 15, 15, 0.2);
162
- pointer-events: auto;
163
- }
164
- .edytor-table-menu-row {
165
- display: flex;
166
- align-items: center;
167
- gap: 8px;
168
- width: 100%;
169
- padding: 4px 8px;
170
- border: none;
171
- border-radius: 6px;
172
- background: transparent;
173
- color: rgb(55, 53, 47);
174
- font: inherit;
175
- font-size: 14px;
176
- text-align: start;
177
- cursor: pointer;
178
- }
179
- .edytor-table-menu-row::before {
180
- content: '';
181
- flex: none;
182
- width: 20px;
183
- height: 20px;
184
- background: #383836;
185
- -webkit-mask: var(--table-menu-icon) center / 20px no-repeat;
186
- mask: var(--table-menu-icon) center / 20px no-repeat;
187
- }
188
- .edytor-table-menu-row:hover:not(:disabled),
189
- .edytor-table-menu-row:focus-visible {
190
- background: rgba(33, 27, 23, 0.06);
191
- outline: none;
192
- }
193
- .edytor-table-menu-row:disabled {
194
- opacity: 0.4;
195
- cursor: default;
196
- }
197
- .edytor-table-menu-row.danger:hover:not(:disabled) {
198
- color: #cf5148;
199
- }
200
- .edytor-table-menu-row.danger:hover:not(:disabled)::before {
201
- background: #cf5148;
122
+ visibility: visible;
202
123
  }
@@ -1,15 +1,16 @@
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
7
7
  * readonly view. The grid is the document's (`facade.tableGrid`): a padded
8
8
  * cell is `null` there, and the first edit in it creates it.
9
9
  */
10
+ import type { Snippet } from 'svelte';
10
11
  import type { Block } from '../../block/block.svelte.js';
12
+ import type { TableAddPayload, TableChrome, TableGripPayload } from './chrome.svelte.js';
11
13
  import type { Edytor } from '../../edytor.svelte.js';
12
- import type { PartialLabels } from '../../labels.js';
13
14
  export type TablePluginOptions = {
14
15
  /** The rows a new table has (default 3). */
15
16
  rows?: number;
@@ -19,10 +20,26 @@ export type TablePluginOptions = {
19
20
  columnWidth?: number;
20
21
  /** The narrowest a column may be resized to, in pixels (default 48). */
21
22
  minColumnWidth?: number;
22
- /** The words the table's command and controls say, over the English ones. */
23
- labels?: PartialLabels<'table'>;
24
- /** The slash menu's keywords of the table command (`block.table`), which replace its own. */
25
- keywords?: Partial<Record<string, string[]>>;
23
+ /**
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
27
+ * `{@attach payload.grip}` on its element: the drag, the click that
28
+ * opens its menu, its keys and its ARIA.
29
+ */
30
+ grip?: Snippet<[TableGripPayload]>;
31
+ /**
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`).
36
+ */
37
+ menu?: Snippet<[TableChrome]>;
38
+ /**
39
+ * The `+` under the table (a row) and beside it (a column): it renders
40
+ * along that edge (without it, no `+`).
41
+ */
42
+ add?: Snippet<[TableAddPayload]>;
26
43
  };
27
44
  /** A table's grid as the document shows it (`facade.tableGrid`). */
28
45
  export type TableGrid = {
@@ -71,6 +88,8 @@ export declare const moveRows: (table: Block, rows: readonly Block[], to: number
71
88
  export declare const fillCell: (table: Block, row: string, column: string | number) => Block | null;
72
89
  /** Toggle `flag` (`headerRow` or `headerColumn`) of `table`'s data (`table.header`). */
73
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;
74
93
  /** A cell's width as set, else `fallback`: `data.columns[i].width`. */
75
94
  export declare const widthOf: (column: unknown, fallback: number) => number;
76
95
  /**