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.
- package/README.md +21 -39
- package/dist/block/block.svelte.d.ts +11 -84
- package/dist/block/block.svelte.js +30 -134
- package/dist/block/colors.d.ts +0 -9
- package/dist/block/colors.js +1 -18
- package/dist/block/contentRange.d.ts +5 -1
- package/dist/block/contentRange.js +15 -16
- package/dist/block/inlineBlock.svelte.d.ts +11 -9
- package/dist/block/inlineBlock.svelte.js +18 -21
- package/dist/clipboard/createClipboardFragment.js +22 -64
- package/dist/clipboard/fragmentData.js +17 -42
- package/dist/clipboard/htmlFlow.js +7 -7
- package/dist/clipboard/insertClipboardFragment.js +5 -4
- package/dist/clipboard/moveText.js +16 -8
- package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
- package/dist/clipboard/serializeClipboardFragment.js +32 -28
- package/dist/cloudflare/DocumentRoom.d.ts +4 -17
- package/dist/cloudflare/DocumentRoom.js +3 -5
- package/dist/cloudflare/move.d.ts +1 -18
- package/dist/cloudflare/move.js +2 -48
- package/dist/cloudflare/room/admission.d.ts +1 -60
- package/dist/cloudflare/room/admission.js +25 -29
- package/dist/cloudflare/room/comments.d.ts +1 -3
- package/dist/cloudflare/room/comments.js +6 -6
- package/dist/cloudflare/room/context.d.ts +25 -82
- package/dist/cloudflare/room/context.js +8 -8
- package/dist/cloudflare/room/forged.d.ts +1 -1
- package/dist/cloudflare/room/forged.js +2 -12
- package/dist/cloudflare/room/frames.d.ts +1 -1
- package/dist/cloudflare/room/frames.js +1 -1
- package/dist/cloudflare/room/history.d.ts +1 -25
- package/dist/cloudflare/room/history.js +39 -54
- package/dist/cloudflare/room/moves.d.ts +1 -13
- package/dist/cloudflare/room/moves.js +33 -57
- package/dist/cloudflare/room/presence.d.ts +1 -11
- package/dist/cloudflare/room/presence.js +4 -4
- package/dist/cloudflare/room/purge.d.ts +1 -2
- package/dist/cloudflare/room/purge.js +2 -2
- package/dist/cloudflare/room/replicas.d.ts +1 -7
- package/dist/cloudflare/room/replicas.js +2 -2
- package/dist/cloudflare/room/storage.d.ts +3 -32
- package/dist/cloudflare/room/storage.js +33 -108
- package/dist/cloudflare/room/updates.d.ts +4 -4
- package/dist/cloudflare/room/updates.js +17 -24
- package/dist/cloudflare/room/validation.d.ts +1 -5
- package/dist/cloudflare/room/validation.js +16 -37
- package/dist/collaboration/RemoteSelections.svelte +13 -17
- package/dist/collaboration/awarenessSelection.d.ts +22 -1
- package/dist/collaboration/awarenessSelection.js +42 -0
- package/dist/collaboration/comments/client.d.ts +2 -2
- package/dist/collaboration/comments/client.js +1 -1
- package/dist/collaboration/history/index.d.ts +5 -5
- package/dist/collaboration/history/index.js +5 -5
- package/dist/collaboration/history/panel.svelte.d.ts +91 -0
- package/dist/collaboration/history/panel.svelte.js +223 -0
- package/dist/collaboration/providers.d.ts +12 -3
- package/dist/collaboration/providers.js +5 -4
- package/dist/components/Block.svelte +42 -56
- package/dist/components/Block.svelte.d.ts +7 -5
- package/dist/components/Content.svelte +1 -5
- package/dist/components/Edytor.svelte +82 -99
- package/dist/components/Edytor.svelte.d.ts +16 -13
- package/dist/components/InlineBlock.svelte +1 -1
- package/dist/components/Ranges.svelte +96 -0
- package/dist/components/Ranges.svelte.d.ts +19 -0
- package/dist/components/Suggestion.svelte +3 -2
- package/dist/components/Text.svelte +2 -5
- package/dist/components/Text.svelte.d.ts +1 -1
- package/dist/crdt/admission.d.ts +2 -9
- package/dist/crdt/admission.js +3 -9
- package/dist/crdt/attribution/attribution.d.ts +11 -72
- package/dist/crdt/attribution/attribution.js +5 -52
- package/dist/crdt/attribution/block.d.ts +0 -78
- package/dist/crdt/attribution/block.js +1 -144
- package/dist/crdt/data.d.ts +18 -13
- package/dist/crdt/data.js +49 -71
- package/dist/crdt/doc/anchors.js +4 -4
- package/dist/crdt/doc/content.d.ts +5 -1
- package/dist/crdt/doc/content.js +3 -1
- package/dist/crdt/doc/delete.d.ts +1 -0
- package/dist/crdt/doc/funnel.d.ts +0 -23
- package/dist/crdt/doc/funnel.js +34 -85
- package/dist/crdt/doc/gate.d.ts +8 -9
- package/dist/crdt/doc/gate.js +7 -17
- package/dist/crdt/doc/history.d.ts +87 -14
- package/dist/crdt/doc/history.js +334 -149
- package/dist/crdt/doc/layout.d.ts +0 -1
- package/dist/crdt/doc/layout.js +2 -3
- package/dist/crdt/doc/meta.d.ts +4 -4
- package/dist/crdt/doc/meta.js +10 -21
- package/dist/crdt/doc/moves.d.ts +4 -4
- package/dist/crdt/doc/moves.js +5 -5
- package/dist/crdt/doc/plan.d.ts +2 -0
- package/dist/crdt/doc/plan.js +2 -0
- package/dist/crdt/doc/reads.d.ts +8 -5
- package/dist/crdt/doc/reads.js +49 -50
- package/dist/crdt/doc/seed.d.ts +15 -6
- package/dist/crdt/doc/seed.js +27 -26
- package/dist/crdt/doc/split-merge.d.ts +1 -3
- package/dist/crdt/doc/split-merge.js +4 -5
- package/dist/crdt/doc/steps.d.ts +3 -7
- package/dist/crdt/doc/steps.js +20 -9
- package/dist/crdt/doc/types.d.ts +0 -10
- package/dist/crdt/document.d.ts +32 -115
- package/dist/crdt/document.js +216 -302
- package/dist/crdt/edytor-doc.d.ts +689 -90
- package/dist/crdt/edytor-doc.js +74 -149
- package/dist/crdt/engine-api.d.ts +15 -47
- package/dist/crdt/engine.d.ts +7 -17
- package/dist/crdt/engine.js +9 -19
- package/dist/crdt/flow.d.ts +9 -37
- package/dist/crdt/flow.js +260 -238
- package/dist/crdt/index.d.ts +32 -85
- package/dist/crdt/index.js +21 -47
- package/dist/crdt/operations.d.ts +24 -33
- package/dist/crdt/operations.js +8 -17
- package/dist/crdt/placement/display.d.ts +0 -2
- package/dist/crdt/placement/display.js +0 -15
- package/dist/crdt/placement/model.d.ts +160 -12
- package/dist/crdt/placement/model.js +413 -414
- package/dist/crdt/placement/rank.d.ts +1 -5
- package/dist/crdt/placement/rank.js +28 -38
- package/dist/crdt/props.d.ts +32 -0
- package/dist/crdt/props.js +172 -0
- package/dist/crdt/protocol.d.ts +4 -5
- package/dist/crdt/protocol.js +3 -4
- package/dist/crdt/protocols/awareness.d.ts +3 -7
- package/dist/crdt/protocols/awareness.js +17 -33
- package/dist/crdt/protocols/envelope.d.ts +9 -29
- package/dist/crdt/protocols/envelope.js +8 -25
- package/dist/crdt/protocols/sync.d.ts +15 -30
- package/dist/crdt/protocols/sync.js +27 -89
- package/dist/crdt/providers/bound.d.ts +3 -1
- package/dist/crdt/providers/bound.js +3 -1
- package/dist/crdt/providers/container.d.ts +11 -17
- package/dist/crdt/providers/container.js +39 -27
- package/dist/crdt/providers/index.d.ts +34 -6
- package/dist/crdt/providers/index.js +106 -111
- package/dist/crdt/providers/indexeddb.d.ts +2 -12
- package/dist/crdt/providers/indexeddb.js +29 -90
- package/dist/crdt/providers/room.d.ts +58 -2
- package/dist/crdt/providers/room.js +38 -21
- package/dist/crdt/providers/websocket.d.ts +1 -1
- package/dist/crdt/providers/websocket.js +3 -4
- package/dist/crdt/purge.d.ts +2 -2
- package/dist/crdt/purge.js +69 -6
- package/dist/crdt/rangeDelete.d.ts +4 -42
- package/dist/crdt/rangeDelete.js +7 -6
- package/dist/crdt/restore.d.ts +21 -1
- package/dist/crdt/restore.js +54 -59
- package/dist/crdt/schema.d.ts +2 -2
- package/dist/crdt/schema.js +4 -5
- package/dist/crdt/semantics.d.ts +10 -15
- package/dist/crdt/semantics.js +22 -21
- package/dist/crdt/storage.d.ts +7 -13
- package/dist/crdt/storage.js +10 -24
- package/dist/crdt/structs.d.ts +42 -47
- package/dist/crdt/structs.js +76 -67
- package/dist/crdt/tables.d.ts +9 -0
- package/dist/crdt/tables.js +20 -0
- package/dist/crdt/text/delete-index.d.ts +0 -13
- package/dist/crdt/text/delete-index.js +7 -14
- package/dist/crdt/text/deletes.d.ts +9 -22
- package/dist/crdt/text/deletes.js +11 -74
- package/dist/crdt/text/index/cache.js +3 -3
- package/dist/crdt/text/index/fold.d.ts +1 -2
- package/dist/crdt/text/index/fold.js +15 -10
- package/dist/crdt/text/index/layout.d.ts +0 -10
- package/dist/crdt/text/index/layout.js +6 -20
- package/dist/crdt/text/index/records.js +2 -1
- package/dist/crdt/text/index/report.js +5 -6
- package/dist/crdt/text/index/shared.d.ts +11 -4
- package/dist/crdt/text/index/shared.js +8 -7
- package/dist/crdt/text/index/state.d.ts +3 -33
- package/dist/crdt/text/index/state.js +2 -4
- package/dist/crdt/text/model.d.ts +82 -2
- package/dist/crdt/text/model.js +344 -354
- package/dist/crdt/text/rows.d.ts +0 -2
- package/dist/crdt/text/rows.js +0 -11
- package/dist/crdt/text/runs.d.ts +6 -3
- package/dist/crdt/text/runs.js +132 -137
- package/dist/crdt/text/streams.d.ts +1 -1
- package/dist/crdt/text/streams.js +1 -1
- package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
- package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
- package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
- package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
- package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
- package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
- package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
- package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
- package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
- package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
- package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
- package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
- package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
- package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
- package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
- package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
- package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
- package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
- package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
- package/dist/crdt/vendor/yjs/global.d.ts +5 -26
- package/dist/crdt/vendor/yjs/src/index.js +11 -25
- package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
- package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
- package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
- package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
- package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
- package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
- package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
- package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
- package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
- package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
- package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
- package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
- package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
- package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
- package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
- package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
- package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
- package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
- package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
- package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
- package/dist/dnd/autoScroll.js +1 -2
- package/dist/{plugins/blockHandles → dnd}/dropIndicator.d.ts +2 -2
- package/dist/{plugins/blockHandles → dnd}/dropIndicator.js +52 -60
- package/dist/{plugins/blockHandles → dnd}/geometry.d.ts +4 -3
- package/dist/{plugins/blockHandles → dnd}/geometry.js +6 -6
- package/dist/dnd/placement.d.ts +200 -0
- package/dist/dnd/placement.js +426 -0
- package/dist/dnd/pragmatic.d.ts +4 -22
- package/dist/dnd/pragmatic.js +7 -26
- package/dist/dnd/track.d.ts +14 -0
- package/dist/dnd/track.js +55 -0
- package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
- 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
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
- package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
- package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
- package/dist/edytor.svelte.d.ts +46 -63
- package/dist/edytor.svelte.js +126 -181
- package/dist/events/beforeInputCommands.d.ts +6 -11
- package/dist/events/beforeInputCommands.js +189 -181
- package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
- package/dist/events/beforeInputDeleteCommands.js +153 -204
- package/dist/events/domTextOffset.d.ts +9 -9
- package/dist/events/domTextOffset.js +20 -48
- package/dist/events/events.utils.d.ts +0 -2
- package/dist/events/events.utils.js +0 -4
- package/dist/events/nativeInteractiveControl.d.ts +13 -13
- package/dist/events/nativeInteractiveControl.js +28 -56
- package/dist/events/onBeforeInput.d.ts +6 -1
- package/dist/events/onBeforeInput.js +207 -331
- package/dist/events/onCopy.js +1 -5
- package/dist/events/onDrop.d.ts +7 -1
- package/dist/events/onDrop.js +64 -78
- package/dist/events/onFocus.d.ts +9 -4
- package/dist/events/onFocus.js +45 -67
- package/dist/events/onInput.d.ts +8 -4
- package/dist/events/onInput.js +34 -147
- package/dist/events/onKeyDown.js +55 -122
- package/dist/events/onPaste.d.ts +14 -1
- package/dist/events/onPaste.js +51 -76
- package/dist/index.d.ts +11 -15
- package/dist/index.js +3 -3
- package/dist/kinds.d.ts +4 -6
- package/dist/kinds.js +28 -27
- package/dist/labels.d.ts +83 -320
- package/dist/labels.js +181 -408
- package/dist/plugins/Chrome.svelte +29 -0
- package/dist/plugins/Chrome.svelte.d.ts +32 -0
- package/dist/plugins/Control.svelte +23 -0
- package/dist/plugins/Control.svelte.d.ts +30 -0
- package/dist/plugins/anchored.svelte.d.ts +47 -0
- package/dist/plugins/anchored.svelte.js +73 -0
- package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
- package/dist/plugins/arrowMove/arrowMove.js +9 -5
- package/dist/plugins/bands.svelte.d.ts +57 -0
- package/dist/plugins/bands.svelte.js +95 -0
- package/dist/plugins/blockHandles/BlockHandle.svelte +14 -154
- package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +21 -196
- package/dist/plugins/blockHandles/BlockHandleController.svelte.js +158 -573
- package/dist/plugins/blockHandles/BlockHandles.svelte +15 -23
- package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +25 -39
- package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -185
- package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
- package/dist/plugins/blockHandles/dragPreview.js +18 -16
- package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +28 -38
- package/dist/plugins/blockMenu/BlockMenuController.svelte.js +116 -183
- package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
- package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
- package/dist/plugins/brand.d.ts +8 -0
- package/dist/plugins/brand.js +8 -0
- package/dist/plugins/chrome.d.ts +45 -38
- package/dist/plugins/chrome.js +59 -36
- package/dist/plugins/code/CodeHeader.svelte +8 -38
- package/dist/plugins/code/CodePlugin.svelte +53 -56
- package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
- package/dist/plugins/code/LanguageMenu.svelte +16 -125
- package/dist/plugins/code/LanguageMenu.svelte.d.ts +2 -1
- package/dist/plugins/code/code.css +5 -117
- package/dist/plugins/code/header.svelte.d.ts +2 -11
- package/dist/plugins/code/header.svelte.js +11 -38
- package/dist/plugins/code/languageMenu.svelte.d.ts +12 -32
- package/dist/plugins/code/languageMenu.svelte.js +30 -160
- package/dist/plugins/code/languages.d.ts +9 -22
- package/dist/plugins/code/languages.js +39 -128
- package/dist/plugins/columns/ColumnResize.svelte +16 -27
- package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
- package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
- package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
- package/dist/plugins/columns/columns.css +7 -26
- package/dist/plugins/columns/gaps.d.ts +7 -5
- package/dist/plugins/columns/gaps.js +11 -6
- package/dist/plugins/columns/resize.svelte.d.ts +17 -54
- package/dist/plugins/columns/resize.svelte.js +80 -173
- package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
- package/dist/plugins/comments/CommentsController.svelte.js +14 -25
- package/dist/plugins/comments/CommentsSidebar.svelte +82 -431
- package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +4 -2
- package/dist/plugins/comments/commentsPlugin.d.ts +25 -9
- package/dist/plugins/comments/commentsPlugin.js +12 -10
- package/dist/plugins/equation/EquationEditor.svelte +16 -130
- package/dist/plugins/equation/EquationEditor.svelte.d.ts +1 -2
- package/dist/plugins/equation/EquationPlugin.svelte +109 -172
- package/dist/plugins/equation/EquationPlugin.svelte.d.ts +3 -2
- package/dist/plugins/equation/EquationView.svelte +20 -11
- package/dist/plugins/equation/equation.css +7 -0
- package/dist/plugins/equation/equation.svelte.d.ts +37 -24
- package/dist/plugins/equation/equation.svelte.js +20 -94
- package/dist/plugins/equation/katex.js +6 -9
- package/dist/plugins/fileDrop.d.ts +28 -0
- package/dist/plugins/fileDrop.js +116 -0
- package/dist/plugins/find/FindController.svelte.d.ts +8 -13
- package/dist/plugins/find/FindController.svelte.js +34 -55
- package/dist/plugins/find/findPlugin.d.ts +4 -8
- package/dist/plugins/find/findPlugin.js +29 -9
- package/dist/plugins/image/ImageChrome.svelte +6 -167
- package/dist/plugins/image/ImageChrome.svelte.d.ts +0 -2
- package/dist/plugins/image/ImagePlugin.svelte +71 -151
- package/dist/plugins/image/ImagePlugin.svelte.d.ts +12 -41
- package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
- package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
- package/dist/plugins/image/controls.svelte.d.ts +6 -36
- package/dist/plugins/image/controls.svelte.js +43 -212
- package/dist/plugins/image/image.css +17 -0
- package/dist/plugins/image/image.d.ts +0 -5
- package/dist/plugins/image/image.js +0 -3
- package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
- package/dist/plugins/image/toolbar.svelte.js +145 -0
- package/dist/plugins/index.d.ts +30 -26
- package/dist/plugins/index.js +28 -22
- package/dist/plugins/list.svelte.d.ts +128 -0
- package/dist/plugins/list.svelte.js +217 -0
- package/dist/plugins/markdownShortcuts.d.ts +1 -1
- package/dist/plugins/markdownShortcuts.js +10 -9
- package/dist/plugins/marquee/MarqueeBox.svelte +3 -20
- package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +1 -1
- package/dist/plugins/marquee/MarqueeController.svelte.d.ts +0 -2
- package/dist/plugins/marquee/MarqueeController.svelte.js +20 -23
- package/dist/plugins/marquee/marquee.js +4 -21
- package/dist/plugins/marquee/marqueePlugin.d.ts +4 -3
- package/dist/plugins/marquee/marqueePlugin.js +16 -15
- package/dist/plugins/media/AudioPlugin.svelte +13 -88
- package/dist/plugins/media/AudioPlugin.svelte.d.ts +11 -4
- package/dist/plugins/media/BookmarkPlugin.svelte +113 -120
- package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +10 -15
- package/dist/plugins/media/EmbedPlugin.svelte +82 -86
- package/dist/plugins/media/EmbedPlugin.svelte.d.ts +11 -17
- package/dist/plugins/media/EmptySlot.svelte +44 -0
- package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
- package/dist/plugins/media/FilePlugin.svelte +45 -113
- package/dist/plugins/media/FilePlugin.svelte.d.ts +21 -4
- package/dist/plugins/media/MediaEmpty.svelte +51 -90
- package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
- package/dist/plugins/media/SourceBlock.svelte +200 -0
- package/dist/plugins/media/SourceBlock.svelte.d.ts +34 -0
- package/dist/plugins/media/UploadPreview.svelte +32 -0
- package/dist/plugins/media/UploadPreview.svelte.d.ts +11 -0
- package/dist/plugins/media/VideoPlugin.svelte +14 -97
- package/dist/plugins/media/VideoPlugin.svelte.d.ts +12 -5
- package/dist/plugins/media/empty.svelte.d.ts +47 -46
- package/dist/plugins/media/empty.svelte.js +67 -60
- package/dist/plugins/media/media.d.ts +97 -44
- package/dist/plugins/media/media.js +77 -99
- package/dist/plugins/media/upload.css +23 -0
- package/dist/plugins/media/urlPaste.svelte.d.ts +6 -37
- package/dist/plugins/media/urlPaste.svelte.js +32 -102
- package/dist/plugins/mention/MentionPlugin.svelte +84 -126
- package/dist/plugins/mention/MentionPlugin.svelte.d.ts +17 -27
- package/dist/plugins/mention/mention.css +6 -0
- package/dist/plugins/page/PageLink.svelte +54 -38
- package/dist/plugins/page/PagePlugin.svelte +20 -18
- package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
- package/dist/plugins/page/page.d.ts +35 -9
- package/dist/plugins/page/page.js +3 -4
- package/dist/plugins/pageLink/PageLinkPlugin.svelte +154 -109
- package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +19 -26
- package/dist/plugins/pageLink/pageLink.css +6 -0
- package/dist/plugins/planned.d.ts +10 -0
- package/dist/plugins/planned.js +12 -0
- package/dist/plugins/richtext/CalloutIcon.svelte +13 -26
- package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
- package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
- package/dist/plugins/richtext/EmptyBody.svelte +13 -20
- package/dist/plugins/richtext/RichTextControl.svelte +39 -0
- package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
- package/dist/plugins/richtext/RichTextPlugin.svelte +174 -183
- package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +34 -34
- package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
- package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
- package/dist/plugins/richtext/body.js +2 -2
- package/dist/plugins/richtext/calloutIcons.svelte.d.ts +50 -55
- package/dist/plugins/richtext/calloutIcons.svelte.js +86 -174
- package/dist/plugins/richtext/callouts.d.ts +15 -0
- package/dist/plugins/richtext/callouts.js +23 -0
- package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
- package/dist/plugins/richtext/controls.svelte.js +126 -0
- package/dist/plugins/richtext/richTextOperations.js +37 -28
- package/dist/plugins/richtext/richtext.css +6 -0
- package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +2 -14
- package/dist/plugins/slashMenu/SlashMenuController.svelte.js +34 -71
- package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +9 -26
- package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
- package/dist/plugins/suggestions/SuggestionBars.svelte +27 -84
- package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
- package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -18
- package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
- package/dist/plugins/table/TableChrome.svelte +40 -124
- package/dist/plugins/table/TablePlugin.svelte +106 -168
- package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
- package/dist/plugins/table/chrome.svelte.d.ts +38 -141
- package/dist/plugins/table/chrome.svelte.js +340 -589
- package/dist/plugins/table/ops.d.ts +47 -0
- package/dist/plugins/table/ops.js +233 -0
- package/dist/plugins/table/table.css +16 -152
- package/dist/plugins/table/table.d.ts +15 -14
- package/dist/plugins/table/table.js +22 -16
- package/dist/plugins/toc/TableOfContents.svelte +32 -38
- package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
- package/dist/plugins/toc/TocPlugin.svelte +22 -22
- package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
- package/dist/plugins/toc/toc.d.ts +41 -10
- package/dist/plugins/toc/toc.js +2 -3
- package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +4 -68
- package/dist/plugins/toolbar/ToolbarController.svelte.js +63 -89
- package/dist/plugins/toolbar/toolbarPlugin.d.ts +8 -18
- package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
- package/dist/plugins/triggers/TriggerController.svelte.d.ts +4 -68
- package/dist/plugins/triggers/TriggerController.svelte.js +48 -129
- package/dist/plugins/triggers/place.d.ts +0 -9
- package/dist/plugins/triggers/place.js +1 -17
- package/dist/plugins/triggers/triggers.d.ts +31 -9
- package/dist/plugins/triggers/triggers.js +82 -62
- package/dist/plugins/uploads.svelte.d.ts +55 -24
- package/dist/plugins/uploads.svelte.js +123 -50
- package/dist/plugins.d.ts +187 -66
- package/dist/selection/domSelection.d.ts +13 -4
- package/dist/selection/domSelection.js +110 -183
- package/dist/selection/pointer.svelte.d.ts +8 -10
- package/dist/selection/pointer.svelte.js +32 -73
- package/dist/selection/replaceSelection.d.ts +21 -22
- package/dist/selection/replaceSelection.js +60 -69
- package/dist/selection/selection.svelte.d.ts +5 -73
- package/dist/selection/selection.svelte.js +224 -542
- package/dist/selection/selection.utils.d.ts +34 -11
- package/dist/selection/selection.utils.js +128 -247
- package/dist/selection/visibility.d.ts +3 -8
- package/dist/selection/visibility.js +7 -5
- package/dist/session/announcer.svelte.d.ts +2 -1
- package/dist/session/announcer.svelte.js +7 -3
- package/dist/session/attempt.d.ts +43 -39
- package/dist/session/attempt.js +62 -55
- package/dist/session/bindings.js +117 -145
- package/dist/session/commands.d.ts +47 -22
- package/dist/session/commands.js +208 -208
- package/dist/session/composition.svelte.d.ts +2 -4
- package/dist/session/composition.svelte.js +55 -65
- package/dist/session/editing/text.d.ts +6 -0
- package/dist/session/editing/text.js +17 -3
- package/dist/session/handles.d.ts +10 -1
- package/dist/session/handles.js +28 -0
- package/dist/session/history.d.ts +0 -4
- package/dist/session/history.js +16 -21
- package/dist/session/inputRules.d.ts +6 -3
- package/dist/session/inputRules.js +78 -83
- package/dist/session/keymap.d.ts +1 -6
- package/dist/session/keymap.js +17 -20
- package/dist/session/moves.d.ts +43 -10
- package/dist/session/moves.js +101 -59
- package/dist/session/navigation.d.ts +10 -2
- package/dist/session/navigation.js +140 -172
- package/dist/session/ports.d.ts +2 -7
- package/dist/session/props.d.ts +25 -25
- package/dist/session/props.js +62 -159
- package/dist/session/selection.d.ts +4 -3
- package/dist/session/selection.js +5 -0
- package/dist/session/suggestions.svelte.d.ts +1 -1
- package/dist/session/suggestions.svelte.js +42 -47
- package/dist/session/uploads.d.ts +29 -0
- package/dist/session/uploads.js +10 -0
- package/dist/session/virtual.d.ts +3 -3
- package/dist/session/virtual.js +18 -40
- package/dist/surface/attributes.d.ts +1 -0
- package/dist/surface/attributes.js +3 -26
- package/dist/surface/cells.d.ts +5 -0
- package/dist/surface/cells.js +5 -0
- package/dist/surface/lines.d.ts +2 -2
- package/dist/surface/lines.js +1 -1
- package/dist/surface/observer.svelte.d.ts +3 -20
- package/dist/surface/observer.svelte.js +52 -72
- package/dist/surface/overlay.d.ts +41 -3
- package/dist/surface/overlay.js +92 -37
- package/dist/surface/pin.svelte.d.ts +5 -0
- package/dist/surface/pin.svelte.js +5 -0
- package/dist/surface/projector.svelte.d.ts +4 -6
- package/dist/surface/projector.svelte.js +42 -69
- package/dist/text/text.svelte.d.ts +14 -40
- package/dist/text/text.svelte.js +35 -51
- package/dist/text/wordBoundary.d.ts +19 -0
- package/dist/text/wordBoundary.js +29 -44
- package/dist/themes/notion.css +272 -106
- package/dist/utils/json.d.ts +3 -1
- package/dist/utils/json.js +52 -51
- package/dist/utils/listen.d.ts +8 -0
- package/dist/utils/listen.js +19 -0
- package/package.json +4 -5
- package/dist/block/block.utils.d.ts +0 -340
- package/dist/block/block.utils.js +0 -356
- package/dist/collaboration/history/HistoryPanel.svelte +0 -554
- package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
- package/dist/collaboration/history/panel.d.ts +0 -61
- package/dist/collaboration/history/panel.js +0 -3
- package/dist/components/SuggestionRanges.svelte +0 -58
- package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
- package/dist/crdt/doc/table.d.ts +0 -21
- package/dist/crdt/doc/table.js +0 -288
- package/dist/crdt/migration/generation.d.ts +0 -58
- package/dist/crdt/migration/generation.js +0 -70
- package/dist/crdt/migration/legacy-schema.d.ts +0 -61
- package/dist/crdt/migration/legacy-schema.js +0 -151
- package/dist/crdt/migration/migrate.d.ts +0 -56
- package/dist/crdt/migration/migrate.js +0 -227
- package/dist/crdt/nodes.d.ts +0 -121
- package/dist/crdt/nodes.js +0 -56
- package/dist/crdt/text/index/checks.d.ts +0 -15
- package/dist/crdt/text/index/checks.js +0 -156
- package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
- package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
- package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
- package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
- package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
- package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
- package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
- package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
- package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
- package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
- package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
- package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
- package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
- package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
- package/dist/edytor.utils.d.ts +0 -50
- package/dist/edytor.utils.js +0 -67
- package/dist/plugins/blockMenu/BlockMenu.svelte +0 -335
- package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
- package/dist/plugins/find/FindBar.svelte +0 -170
- package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
- package/dist/plugins/find/FindHighlights.svelte +0 -75
- package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
- package/dist/plugins/icons.d.ts +0 -2
- package/dist/plugins/icons.js +0 -63
- package/dist/plugins/image/ImageEmpty.svelte +0 -93
- package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -15
- package/dist/plugins/image/empty.svelte.d.ts +0 -56
- package/dist/plugins/image/empty.svelte.js +0 -83
- package/dist/plugins/keepInView.d.ts +0 -4
- package/dist/plugins/keepInView.js +0 -6
- package/dist/plugins/media/UrlPasteMenu.svelte +0 -92
- package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -9
- package/dist/plugins/richtext/CalloutIconMenu.svelte +0 -98
- package/dist/plugins/richtext/CalloutIconMenu.svelte.d.ts +0 -9
- package/dist/plugins/richtext/labels.d.ts +0 -9
- package/dist/plugins/richtext/labels.js +0 -7
- package/dist/plugins/slashMenu/SlashMenu.svelte +0 -276
- package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
- package/dist/plugins/table/dragPreview.d.ts +0 -29
- package/dist/plugins/table/dragPreview.js +0 -103
- package/dist/plugins/toolbar/LinkCard.svelte +0 -122
- package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -9
- package/dist/plugins/toolbar/Toolbar.svelte +0 -349
- package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
- package/dist/plugins/triggers/TriggerMenu.svelte +0 -135
- package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
- package/dist/text/deltas.d.ts +0 -22
- package/dist/text/deltas.js +0 -46
- package/dist/text/text.utils.d.ts +0 -45
- package/dist/text/text.utils.js +0 -199
- /package/dist/{plugins/columns → dnd}/stacking.d.ts +0 -0
- /package/dist/{plugins/columns → dnd}/stacking.js +0 -0
package/dist/session/keymap.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export type Modifiers = {
|
|
|
23
23
|
/** A chord: a key, after up to three modifiers in any order (matched case-insensitively). */
|
|
24
24
|
export type HotKeyCombination = Key | `${Modifiers}+${Key}`;
|
|
25
25
|
export declare class Keymap {
|
|
26
|
+
#private;
|
|
26
27
|
private edytor;
|
|
27
28
|
/** chord → bindings in precedence order. */
|
|
28
29
|
private table;
|
|
@@ -30,12 +31,6 @@ export declare class Keymap {
|
|
|
30
31
|
offered: string | null;
|
|
31
32
|
get isMac(): boolean;
|
|
32
33
|
constructor(edytor: Edytor, consumer?: EdytorOptions['hotkeys'], plugins?: InitializedPlugin[]);
|
|
33
|
-
/**
|
|
34
|
-
* A keyboard event's chord: `mod` is Cmd on Apple and Ctrl elsewhere; on
|
|
35
|
-
* Apple bare Ctrl stays `ctrl` (the Emacs rows); a reverse tab is Shift+Tab;
|
|
36
|
-
* the space bar is `space`.
|
|
37
|
-
*/
|
|
38
|
-
chordOf: (event: KeyboardEvent, key?: string) => string;
|
|
39
34
|
/** Offer a keydown to its bindings (the produced key first, then the layout key). */
|
|
40
35
|
handle: (event: KeyboardEvent) => boolean;
|
|
41
36
|
/** Run `chord`'s bindings in precedence order until one claims it. */
|
package/dist/session/keymap.js
CHANGED
|
@@ -19,32 +19,33 @@ const CHARS = 'abcdefghijklmnopqrstuvwxyz0123456789`~!@#$%^&*()-_=+[]{}\\|;:\'",
|
|
|
19
19
|
// prettier-ignore
|
|
20
20
|
const NAMED = ['arrowup', 'arrowdown', 'arrowleft', 'arrowright', 'tab', 'enter', 'backspace', 'delete', 'space', 'escape', 'home', 'end', 'pageup', 'pagedown', 'insert', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'f10', 'f11', 'f12'];
|
|
21
21
|
const MODIFIERS = ['mod', 'alt', 'ctrl', 'shift'];
|
|
22
|
-
/** Every token a keydown's chord can carry (`chordOf`). */
|
|
23
|
-
const TOKENS = new Set([...MODIFIERS, ...CHARS, ...NAMED]);
|
|
24
22
|
/** The canonical chord: lower case, modifiers in one order, then the key. */
|
|
25
23
|
const chord = (parts) => {
|
|
26
24
|
const lower = parts.map((part) => part.toLowerCase());
|
|
27
25
|
const key = lower.filter((part) => part && !MODIFIERS.includes(part));
|
|
28
26
|
return [...MODIFIERS.filter((modifier) => lower.includes(modifier)), ...key].join('+');
|
|
29
27
|
};
|
|
30
|
-
/** US-layout keys and what Shift makes of them: a keydown reports the character typed. */
|
|
31
|
-
const [BASE, SHIFT] = ["`1234567890-=[]\\;',./", '~!@#$%^&*()_+{}|:"<>?'];
|
|
32
|
-
const SHIFTED = new Map([...BASE].map((base, index) => [base, SHIFT[index]]));
|
|
33
|
-
/** Characters only Shift types (the numeric keypad types `+` and `*` unshifted). */
|
|
34
|
-
const TYPED_WITH_SHIFT = new Set([...SHIFTED.values()].filter((key) => !'+*'.includes(key)));
|
|
35
28
|
/**
|
|
36
|
-
* Why a
|
|
37
|
-
* a
|
|
38
|
-
*
|
|
39
|
-
*
|
|
29
|
+
* Why a chord never fires (a development hint), or null: a part that is no
|
|
30
|
+
* token a keydown's chord can carry (`#chordOf`); a character Shift types
|
|
31
|
+
* needs `shift` (`mod+shift+?`), Shift turns a key into another character
|
|
32
|
+
* (`shift+/` arrives as `?`: US-layout keys, a keydown reports the
|
|
33
|
+
* character typed; the numeric keypad types `+` and `*` unshifted), and on
|
|
34
|
+
* macOS Option with a character types text (`alt+b` is `∫`) unless `mod` or
|
|
35
|
+
* `ctrl` holds.
|
|
40
36
|
*/
|
|
41
37
|
const silent = (parts) => {
|
|
42
38
|
const lower = parts.map((part) => part.toLowerCase());
|
|
39
|
+
const tokens = new Set([...MODIFIERS, ...CHARS, ...NAMED]);
|
|
40
|
+
const dead = lower.find((part) => !tokens.has(part));
|
|
41
|
+
if (dead !== undefined)
|
|
42
|
+
return `"${parts[lower.indexOf(dead)]}" is neither a modifier (mod, alt, ctrl, shift) nor a key name`;
|
|
43
43
|
const key = lower.find((part) => !MODIFIERS.includes(part)) ?? '';
|
|
44
44
|
const has = (modifier) => lower.includes(modifier);
|
|
45
|
-
|
|
45
|
+
const [base, shift] = ["`1234567890-=[]\\;',./", '~!@#$%^&*()_+{}|:"<>?'];
|
|
46
|
+
if (!has('shift') && key && shift.includes(key) && !'+*'.includes(key))
|
|
46
47
|
return `"${key}" is typed with Shift: bind "${chord([...lower, 'shift'])}"`;
|
|
47
|
-
const shifted =
|
|
48
|
+
const shifted = key && shift[base.indexOf(key)];
|
|
48
49
|
if (has('shift') && shifted)
|
|
49
50
|
return `Shift turns "${key}" into "${shifted}": bind "${chord([...lower.filter((part) => part !== key), shifted])}"`;
|
|
50
51
|
if (has('alt') && !has('mod') && !has('ctrl') && key.length === 1)
|
|
@@ -90,11 +91,7 @@ export class Keymap {
|
|
|
90
91
|
continue;
|
|
91
92
|
}
|
|
92
93
|
const parts = keys.split(/\+(?!$)/);
|
|
93
|
-
const
|
|
94
|
-
if (DEV && dead !== undefined)
|
|
95
|
-
console.warn(`[edytor] hotkey "${keys}" never fires: "${dead}" is neither a modifier ` +
|
|
96
|
-
'(mod, alt, ctrl, shift) nor a key name.');
|
|
97
|
-
const hint = DEV && dead === undefined && silent(parts);
|
|
94
|
+
const hint = DEV && silent(parts);
|
|
98
95
|
if (hint)
|
|
99
96
|
console.warn(`[edytor] hotkey "${keys}" never fires: ${hint}.`);
|
|
100
97
|
const at = chord(parts);
|
|
@@ -106,7 +103,7 @@ export class Keymap {
|
|
|
106
103
|
* Apple bare Ctrl stays `ctrl` (the Emacs rows); a reverse tab is Shift+Tab;
|
|
107
104
|
* the space bar is `space`.
|
|
108
105
|
*/
|
|
109
|
-
chordOf = (event, key = event.key === ' ' ? 'space' : event.key.toLowerCase()) => {
|
|
106
|
+
#chordOf = (event, key = event.key === ' ' ? 'space' : event.key.toLowerCase()) => {
|
|
110
107
|
const back = key === 'iso_left_tab' || key === 'backtab';
|
|
111
108
|
const mac = this.isMac;
|
|
112
109
|
return chord([
|
|
@@ -122,7 +119,7 @@ export class Keymap {
|
|
|
122
119
|
if (composesText(event))
|
|
123
120
|
return false;
|
|
124
121
|
const fallback = layoutKey(event);
|
|
125
|
-
const chords = [this
|
|
122
|
+
const chords = [this.#chordOf(event), ...(fallback ? [this.#chordOf(event, fallback)] : [])];
|
|
126
123
|
this.offered = chords[0];
|
|
127
124
|
const claimed = chords.some((at) => this.run(at, event));
|
|
128
125
|
if (claimed)
|
package/dist/session/moves.d.ts
CHANGED
|
@@ -25,16 +25,49 @@ export type BlockMoveRequest = {
|
|
|
25
25
|
} | {
|
|
26
26
|
direction: BlockMoveDirection;
|
|
27
27
|
});
|
|
28
|
+
/**
|
|
29
|
+
* The view's nesting rule (`allowNesting`, off by default): whether a user
|
|
30
|
+
* gesture may place `blocks` under `parent`. With nesting off, blocks land
|
|
31
|
+
* only at the root or in a block made to hold children — a container (a
|
|
32
|
+
* list, a column, a toggle's or a callout's body: `isContainer`, the kind's
|
|
33
|
+
* `container`), an island (a code block's lines) — or stay under the parent
|
|
34
|
+
* they already have (a document holding nested blocks still edits them).
|
|
35
|
+
* Every move (`destination`: keys, drops, menus, `edytor.move`) and every
|
|
36
|
+
* new block a drop places (`canPlaceNew`) reads it.
|
|
37
|
+
*/
|
|
38
|
+
export declare const nestsInto: (edytor: Edytor, parent: Block, blocks?: readonly Block[]) => boolean;
|
|
28
39
|
/** Whether the move is allowed: for runs (`parts`), whether one of them may move. */
|
|
29
|
-
export declare const
|
|
40
|
+
export declare const canMove: (edytor: Edytor, request: BlockMoveRequest) => boolean;
|
|
41
|
+
/**
|
|
42
|
+
* One move: the document's `moveBlocks`, an `out` step's outdent
|
|
43
|
+
* (`unNestBlocks`) or a beside placement (`placeBeside`), dispatched as the
|
|
44
|
+
* view's write — identity kept, one undo step, a closed toggle the blocks
|
|
45
|
+
* land in or that adopts blocks opening (every caller — keys, drops, menus,
|
|
46
|
+
* the public command — shows the moved blocks); `[]` when refused or
|
|
47
|
+
* vetoed. Runs (`parts`) move one by one, a run that cannot move staying, as
|
|
48
|
+
* Tab does (`dispatcher.each`). The view announces what moved
|
|
49
|
+
* (`announcer.moved`).
|
|
50
|
+
*/
|
|
51
|
+
export declare const move: (edytor: Edytor, request: BlockMoveRequest) => Block[];
|
|
52
|
+
/** A new block a drop places (`placeNew`): its kind, and its id when the caller names it. */
|
|
53
|
+
export type NewBlock = {
|
|
54
|
+
type: string;
|
|
55
|
+
id?: string;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Whether new blocks of `kinds` may land at `target`'s `position` (a file
|
|
59
|
+
* dropped there, `placeNew`): the move's places (`destination`) asked of
|
|
60
|
+
* blocks not yet in the document — the container rule (`fits`) of the
|
|
61
|
+
* parent they land in, never inside a void or an island; beside, a layout
|
|
62
|
+
* kind and a target outside any island (`placeBeside` takes any block a
|
|
63
|
+
* column holds).
|
|
64
|
+
*/
|
|
65
|
+
export declare const canPlaceNew: (edytor: Edytor, kinds: readonly string[], target: Block, position: BlockMovePosition) => boolean;
|
|
30
66
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* adopts blocks, opens (`revealing`): every caller — keys, drops, menus,
|
|
37
|
-
* the public command — shows the moved blocks. The view announces what
|
|
38
|
-
* moved (`announcer.moved`).
|
|
67
|
+
* Insert new blocks at `target`'s `position` (a file drop's placement):
|
|
68
|
+
* before or after it, inside it (its last children), or beside it — inserted
|
|
69
|
+
* after the block it stands beside (`besideAt`) and moved there by the one
|
|
70
|
+
* move path (`layout.place-beside`) — in one transaction. The caller's
|
|
71
|
+
* command makes it one undo step. Answers the ids placed (none: refused).
|
|
39
72
|
*/
|
|
40
|
-
export declare const
|
|
73
|
+
export declare const placeNew: (edytor: Edytor, blocks: readonly NewBlock[], target: Block, position: BlockMovePosition) => string[];
|
package/dist/session/moves.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { dispatchPlan } from '../block/block.utils.js';
|
|
2
|
-
import { revealing } from '../selection/replaceSelection.js';
|
|
3
1
|
/** The positions that place the blocks beside the target, in a layout. */
|
|
4
2
|
const BESIDE = ['left', 'right'];
|
|
5
3
|
const isBeside = (position) => BESIDE.includes(position);
|
|
@@ -27,12 +25,28 @@ const placement = (edytor, request) => {
|
|
|
27
25
|
};
|
|
28
26
|
const POSITIONS = ['before', 'after', 'inside', ...BESIDE];
|
|
29
27
|
/**
|
|
30
|
-
* The
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* a
|
|
35
|
-
*
|
|
28
|
+
* The view's nesting rule (`allowNesting`, off by default): whether a user
|
|
29
|
+
* gesture may place `blocks` under `parent`. With nesting off, blocks land
|
|
30
|
+
* only at the root or in a block made to hold children — a container (a
|
|
31
|
+
* list, a column, a toggle's or a callout's body: `isContainer`, the kind's
|
|
32
|
+
* `container`), an island (a code block's lines) — or stay under the parent
|
|
33
|
+
* they already have (a document holding nested blocks still edits them).
|
|
34
|
+
* Every move (`destination`: keys, drops, menus, `edytor.move`) and every
|
|
35
|
+
* new block a drop places (`canPlaceNew`) reads it.
|
|
36
|
+
*/
|
|
37
|
+
export const nestsInto = (edytor, parent, blocks = []) => edytor.allowNesting ||
|
|
38
|
+
parent.isRoot ||
|
|
39
|
+
parent.isContainer ||
|
|
40
|
+
!!parent.definition.container ||
|
|
41
|
+
edytor.facade.isIsland(parent.id) ||
|
|
42
|
+
(blocks.length > 0 && blocks.every((block) => block.parent === parent));
|
|
43
|
+
/**
|
|
44
|
+
* The document write a move request is, or `null` when refused: a
|
|
45
|
+
* well-formed request, then the document's one structural answer
|
|
46
|
+
* (`canPlace` — the predicate the move applies at execution; an `out` step
|
|
47
|
+
* asks the outdent plan, which places the blocks as the kind they take
|
|
48
|
+
* there: a paragraph outdented into a list is its item; `left`/`right` ask
|
|
49
|
+
* the beside plan, `placeBeside`). Extensions may still veto it.
|
|
36
50
|
*/
|
|
37
51
|
const destination = (edytor, request) => {
|
|
38
52
|
const move = placement(edytor, request);
|
|
@@ -49,21 +63,24 @@ const destination = (edytor, request) => {
|
|
|
49
63
|
// root or a column) and owns every refusal (fits, its own subtree).
|
|
50
64
|
if (isBeside(position)) {
|
|
51
65
|
return 'writes' in edytor.facade.prepare.placeBeside(ids, target.id, position)
|
|
52
|
-
? { blocks,
|
|
66
|
+
? { blocks, write: () => edytor.placeBeside(ids, target.id, position) }
|
|
53
67
|
: null;
|
|
54
68
|
}
|
|
55
69
|
// Inside a container they are no items of: under its last item (Tab after a list).
|
|
56
70
|
const nest = () => edytor.idToBlock.get(edytor.facade.nestParent(ids, target.id));
|
|
57
71
|
const parent = position === 'inside' ? (nest() ?? target) : target.parent;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
72
|
+
// The outdent plan: the siblings after the last block follow it.
|
|
73
|
+
if ('direction' in request && request.direction === 'out')
|
|
74
|
+
return 'writes' in edytor.facade.prepare.unNestBlocks(ids)
|
|
75
|
+
? { blocks, write: () => edytor.unNestBlocks(ids) }
|
|
76
|
+
: null;
|
|
77
|
+
const to = parent?.isRoot ? null : parent?.id;
|
|
78
|
+
if (!parent || !nestsInto(edytor, parent, blocks) || !edytor.facade.canPlace(ids, to))
|
|
62
79
|
return null;
|
|
63
80
|
const at = position === 'inside' ? parent.children.length : target.index + (position === 'after' ? 1 : 0);
|
|
64
81
|
// The document counts the destination's children without the moved blocks.
|
|
65
82
|
const index = at - blocks.filter((block) => block.parent === parent && block.index < at).length;
|
|
66
|
-
return { blocks,
|
|
83
|
+
return { blocks, write: () => edytor.moveBlocks(ids, { parent: to, index }) };
|
|
67
84
|
};
|
|
68
85
|
/**
|
|
69
86
|
* An `in` or `out` step over siblings as its runs of adjacent ones:
|
|
@@ -88,24 +105,24 @@ const parts = (edytor, request) => {
|
|
|
88
105
|
return runs.map((run) => ({ blocks: run, direction }));
|
|
89
106
|
};
|
|
90
107
|
/** Whether the move is allowed: for runs (`parts`), whether one of them may move. */
|
|
91
|
-
export const
|
|
108
|
+
export const canMove = (edytor, request) => parts(edytor, request).some((part) => destination(edytor, part) !== null);
|
|
92
109
|
/**
|
|
93
|
-
* One move
|
|
94
|
-
* `
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
110
|
+
* One move: the document's `moveBlocks`, an `out` step's outdent
|
|
111
|
+
* (`unNestBlocks`) or a beside placement (`placeBeside`), dispatched as the
|
|
112
|
+
* view's write — identity kept, one undo step, a closed toggle the blocks
|
|
113
|
+
* land in or that adopts blocks opening (every caller — keys, drops, menus,
|
|
114
|
+
* the public command — shows the moved blocks); `[]` when refused or
|
|
115
|
+
* vetoed. Runs (`parts`) move one by one, a run that cannot move staying, as
|
|
116
|
+
* Tab does (`dispatcher.each`). The view announces what moved
|
|
117
|
+
* (`announcer.moved`).
|
|
101
118
|
*/
|
|
102
|
-
export const
|
|
119
|
+
export const move = (edytor, request) => {
|
|
103
120
|
const runs = parts(edytor, request);
|
|
104
|
-
const moved =
|
|
121
|
+
const moved = runs.length > 1
|
|
105
122
|
? edytor.dispatcher
|
|
106
123
|
.each('moveBlocks', runs, (run) => place(edytor, run))
|
|
107
124
|
.flatMap((moved) => moved ?? [])
|
|
108
|
-
: place(edytor, runs[0] ?? request)
|
|
125
|
+
: place(edytor, runs[0] ?? request);
|
|
109
126
|
// Said to assistive technology: what moved, and where (`session/announcer`).
|
|
110
127
|
edytor.announcer.moved(request, moved);
|
|
111
128
|
return moved;
|
|
@@ -114,39 +131,64 @@ const place = (edytor, request) => {
|
|
|
114
131
|
const move = destination(edytor, request);
|
|
115
132
|
if (!move) {
|
|
116
133
|
// Refused before any command ran: `last` still reports it (commands#results).
|
|
117
|
-
const
|
|
118
|
-
edytor.dispatcher.record({ operation
|
|
134
|
+
const status = request.blocks.length ? 'refused' : 'noop';
|
|
135
|
+
edytor.dispatcher.record({ operation: 'moveBlocks', status });
|
|
119
136
|
return [];
|
|
120
137
|
}
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
if (
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
return
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
138
|
+
const result = move.write();
|
|
139
|
+
return result.status === 'applied' ? move.blocks : [];
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Whether new blocks of `kinds` may land at `target`'s `position` (a file
|
|
143
|
+
* dropped there, `placeNew`): the move's places (`destination`) asked of
|
|
144
|
+
* blocks not yet in the document — the container rule (`fits`) of the
|
|
145
|
+
* parent they land in, never inside a void or an island; beside, a layout
|
|
146
|
+
* kind and a target outside any island (`placeBeside` takes any block a
|
|
147
|
+
* column holds).
|
|
148
|
+
*/
|
|
149
|
+
export const canPlaceNew = (edytor, kinds, target, position) => {
|
|
150
|
+
const { facade } = edytor;
|
|
151
|
+
if (edytor.readonly || !kinds.length || !target.isInTree || target.isRoot)
|
|
152
|
+
return false;
|
|
153
|
+
if (!POSITIONS.includes(position) || facade.insideIsland(target.id))
|
|
154
|
+
return false;
|
|
155
|
+
if (isBeside(position))
|
|
156
|
+
return ([...edytor.blocks.values()].some((definition) => definition.layout) &&
|
|
157
|
+
!facade.isIsland(target.id));
|
|
158
|
+
const parent = position === 'inside' ? target : target.parent;
|
|
159
|
+
if (!parent || !nestsInto(edytor, parent))
|
|
160
|
+
return false;
|
|
161
|
+
const to = parent.isRoot ? null : parent.id;
|
|
162
|
+
if (to !== null && (facade.isVoid(to) || facade.isIsland(to)))
|
|
163
|
+
return false;
|
|
164
|
+
return kinds.every((kind) => facade.fits(to, kind));
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* Insert new blocks at `target`'s `position` (a file drop's placement):
|
|
168
|
+
* before or after it, inside it (its last children), or beside it — inserted
|
|
169
|
+
* after the block it stands beside (`besideAt`) and moved there by the one
|
|
170
|
+
* move path (`layout.place-beside`) — in one transaction. The caller's
|
|
171
|
+
* command makes it one undo step. Answers the ids placed (none: refused).
|
|
172
|
+
*/
|
|
173
|
+
export const placeNew = (edytor, blocks, target, position) => {
|
|
174
|
+
const kinds = blocks.map((block) => block.type);
|
|
175
|
+
if (!canPlaceNew(edytor, kinds, target, position))
|
|
176
|
+
return [];
|
|
177
|
+
const beside = isBeside(position);
|
|
178
|
+
const at = beside ? (edytor.idToBlock.get(edytor.facade.besideAt(target.id)) ?? target) : target;
|
|
179
|
+
const parent = position === 'inside' ? target : at.parent;
|
|
180
|
+
const destination = position === 'inside'
|
|
181
|
+
? { parent: target.id, index: target.children.length }
|
|
182
|
+
: {
|
|
183
|
+
parent: !parent || parent.isRoot ? null : parent.id,
|
|
184
|
+
index: at.index + (position === 'before' ? 0 : 1)
|
|
185
|
+
};
|
|
186
|
+
return edytor.transact(() => {
|
|
187
|
+
const { ids } = edytor.insertBlocks(destination, blocks.map((block) => ({ ...block })));
|
|
188
|
+
if (!beside || !ids.length)
|
|
189
|
+
return [...ids];
|
|
190
|
+
const placed = ids.flatMap((id) => edytor.idToBlock.get(id) ?? []);
|
|
191
|
+
move(edytor, { blocks: placed, target, position });
|
|
192
|
+
return [...ids];
|
|
193
|
+
});
|
|
152
194
|
};
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
*
|
|
5
5
|
* The stream is the document order of the displayable blocks (a
|
|
6
6
|
* Surface fact: a collapsed toggle's body or a phantom content slot holds no
|
|
7
|
-
* stop), each block's
|
|
8
|
-
* grapheme (or word) boundaries
|
|
7
|
+
* stop), each block's stops in block offsets (an inline atom counts 1, as
|
|
8
|
+
* the projection's points): grapheme (or word) boundaries inside its texts,
|
|
9
|
+
* the inline atoms between them. A key
|
|
9
10
|
* names a unit (grapheme, word, block edge, document edge) and a direction;
|
|
10
11
|
* the arrow and word keys are visual, resolved once from the focus text's
|
|
11
12
|
* computed direction (RTL).
|
|
@@ -22,6 +23,7 @@
|
|
|
22
23
|
* lands it on no caret stop (`landed`).
|
|
23
24
|
*/
|
|
24
25
|
import type { Edytor } from '../edytor.svelte.js';
|
|
26
|
+
import type { Block } from '../block/block.svelte.js';
|
|
25
27
|
import type { HotKey } from './keymap.js';
|
|
26
28
|
/**
|
|
27
29
|
* With no target (`untargeted`: the value is `none`, no gesture placed the
|
|
@@ -47,6 +49,12 @@ export declare const move: (edytor: Edytor, unit: Unit, key: Dir | "left" | "rig
|
|
|
47
49
|
* moves keep the goal column. Answers whether a text selection moved.
|
|
48
50
|
*/
|
|
49
51
|
export declare const extendVertically: (edytor: Edytor, dir: Dir) => boolean;
|
|
52
|
+
/**
|
|
53
|
+
* The block a collapsed text caret sits on the last line of (a line box
|
|
54
|
+
* where the view lays one out, else a line break), if it does: where
|
|
55
|
+
* ArrowDown leaves the block (`nav.trailing.exit`, `body.down`).
|
|
56
|
+
*/
|
|
57
|
+
export declare const onLastLine: (edytor: Edytor) => Block | undefined;
|
|
50
58
|
/**
|
|
51
59
|
* The trailing paragraph (`nav.trailing`, Notion): the caret goes to an
|
|
52
60
|
* empty top-level block of the root's default kind after the document's
|