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.
- package/README.md +65 -25
- package/dist/block/block.svelte.d.ts +10 -85
- package/dist/block/block.svelte.js +47 -141
- 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 +8 -10
- package/dist/block/inlineBlock.svelte.js +14 -22
- package/dist/clipboard/createClipboardFragment.js +22 -64
- package/dist/clipboard/fragmentData.js +17 -42
- package/dist/clipboard/htmlFlow.d.ts +6 -1
- package/dist/clipboard/htmlFlow.js +26 -13
- 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 +22 -17
- package/dist/cloudflare/DocumentRoom.js +10 -5
- package/dist/cloudflare/index.d.ts +1 -1
- package/dist/cloudflare/index.js +1 -1
- 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 +20 -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 +9 -30
- package/dist/cloudflare/room/storage.js +52 -104
- 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/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 +160 -119
- package/dist/components/Block.svelte.d.ts +8 -3
- package/dist/components/Content.svelte +91 -44
- package/dist/components/CustomMark.svelte +46 -0
- package/dist/components/CustomMark.svelte.d.ts +11 -0
- package/dist/components/Edytor.svelte +80 -95
- package/dist/components/Edytor.svelte.d.ts +8 -12
- package/dist/components/InlineBlock.svelte +4 -9
- package/dist/components/Mark.svelte +46 -35
- package/dist/components/Mark.svelte.d.ts +7 -0
- 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 +48 -14
- 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 +8 -13
- package/dist/crdt/data.js +30 -70
- 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 +1 -5
- package/dist/crdt/doc/reads.js +38 -49
- 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 +24 -115
- package/dist/crdt/document.js +207 -305
- package/dist/crdt/edytor-doc.d.ts +671 -90
- package/dist/crdt/edytor-doc.js +73 -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 +26 -85
- package/dist/crdt/index.js +21 -47
- package/dist/crdt/operations.d.ts +24 -33
- package/dist/crdt/operations.js +7 -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/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/{plugins/blockHandles → dnd}/autoScroll.d.ts +2 -1
- package/dist/{plugins/blockHandles → dnd}/autoScroll.js +3 -3
- 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 +34 -64
- package/dist/edytor.svelte.js +118 -180
- package/dist/events/beforeInputCommands.d.ts +6 -11
- package/dist/events/beforeInputCommands.js +189 -184
- 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 +33 -72
- package/dist/events/onFocus.d.ts +9 -4
- package/dist/events/onFocus.js +92 -72
- 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 +13 -1
- package/dist/events/onPaste.js +46 -76
- package/dist/index.d.ts +10 -13
- package/dist/index.js +3 -3
- package/dist/kinds.d.ts +4 -6
- package/dist/kinds.js +28 -27
- package/dist/labels.d.ts +91 -314
- package/dist/labels.js +180 -396
- 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 -151
- package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +63 -97
- package/dist/plugins/blockHandles/BlockHandleController.svelte.js +247 -268
- package/dist/plugins/blockHandles/BlockHandles.svelte +46 -29
- package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +29 -23
- package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -162
- package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
- package/dist/plugins/blockHandles/dragPreview.js +20 -17
- package/dist/plugins/blockHandles/dropIndicator.js +52 -60
- package/dist/plugins/blockHandles/geometry.d.ts +46 -1
- package/dist/plugins/blockHandles/geometry.js +51 -4
- package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +59 -28
- package/dist/plugins/blockMenu/BlockMenuController.svelte.js +180 -105
- 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 +79 -0
- package/dist/plugins/chrome.js +87 -0
- package/dist/plugins/code/CodeHeader.svelte +12 -58
- package/dist/plugins/code/CodeHeader.svelte.d.ts +1 -0
- package/dist/plugins/code/CodePlugin.svelte +75 -56
- package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
- package/dist/plugins/code/LanguageMenu.svelte +25 -0
- package/dist/plugins/code/LanguageMenu.svelte.d.ts +9 -0
- package/dist/plugins/code/code.css +5 -100
- package/dist/plugins/code/header.svelte.d.ts +47 -0
- package/dist/plugins/code/header.svelte.js +141 -0
- package/dist/plugins/code/languageMenu.svelte.d.ts +84 -0
- package/dist/plugins/code/languageMenu.svelte.js +199 -0
- package/dist/plugins/code/languages.d.ts +21 -10
- package/dist/plugins/code/languages.js +39 -126
- package/dist/plugins/columns/ColumnResize.svelte +13 -25
- 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/resize.svelte.d.ts +14 -51
- package/dist/plugins/columns/resize.svelte.js +70 -164
- 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 -430
- package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +6 -7
- package/dist/plugins/comments/commentsPlugin.d.ts +31 -10
- package/dist/plugins/comments/commentsPlugin.js +12 -10
- package/dist/plugins/equation/EquationEditor.svelte +18 -129
- package/dist/plugins/equation/EquationEditor.svelte.d.ts +2 -1
- package/dist/plugins/equation/EquationPlugin.svelte +123 -168
- package/dist/plugins/equation/EquationPlugin.svelte.d.ts +5 -3
- package/dist/plugins/equation/EquationView.svelte +20 -11
- package/dist/plugins/equation/equation.svelte.d.ts +74 -36
- package/dist/plugins/equation/equation.svelte.js +74 -66
- package/dist/plugins/equation/importUrl.d.ts +6 -0
- package/dist/plugins/equation/importUrl.js +6 -0
- package/dist/plugins/equation/katex.d.ts +8 -0
- package/dist/plugins/equation/katex.js +77 -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 +5 -151
- package/dist/plugins/image/ImagePlugin.svelte +49 -117
- package/dist/plugins/image/ImagePlugin.svelte.d.ts +1 -24
- 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 -57
- package/dist/plugins/image/controls.svelte.js +51 -174
- 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 +39 -24
- package/dist/plugins/index.js +30 -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 +6 -5
- package/dist/plugins/marquee/MarqueeBox.svelte +15 -0
- package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +9 -0
- package/dist/plugins/marquee/MarqueeController.svelte.d.ts +46 -0
- package/dist/plugins/marquee/MarqueeController.svelte.js +243 -0
- package/dist/plugins/marquee/marquee.d.ts +33 -0
- package/dist/plugins/marquee/marquee.js +89 -0
- package/dist/plugins/marquee/marqueePlugin.d.ts +32 -0
- package/dist/plugins/marquee/marqueePlugin.js +68 -0
- package/dist/plugins/media/AudioPlugin.svelte +3 -88
- package/dist/plugins/media/AudioPlugin.svelte.d.ts +1 -4
- package/dist/plugins/media/BookmarkPlugin.svelte +124 -112
- package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +20 -7
- package/dist/plugins/media/EmbedPlugin.svelte +93 -77
- package/dist/plugins/media/EmbedPlugin.svelte.d.ts +21 -9
- package/dist/plugins/media/EmptySlot.svelte +44 -0
- package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
- package/dist/plugins/media/FilePlugin.svelte +35 -111
- package/dist/plugins/media/FilePlugin.svelte.d.ts +12 -4
- package/dist/plugins/media/MediaEmpty.svelte +55 -112
- package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
- package/dist/plugins/media/SourceBlock.svelte +164 -0
- package/dist/plugins/media/SourceBlock.svelte.d.ts +33 -0
- package/dist/plugins/media/VideoPlugin.svelte +4 -97
- package/dist/plugins/media/VideoPlugin.svelte.d.ts +2 -5
- package/dist/plugins/media/empty.svelte.d.ts +69 -0
- package/dist/plugins/media/empty.svelte.js +111 -0
- package/dist/plugins/media/media.d.ts +93 -30
- package/dist/plugins/media/media.js +79 -86
- package/dist/plugins/media/urlPaste.svelte.d.ts +9 -32
- package/dist/plugins/media/urlPaste.svelte.js +46 -75
- package/dist/plugins/mention/MentionPlugin.svelte +47 -124
- package/dist/plugins/mention/MentionPlugin.svelte.d.ts +11 -23
- 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 +52 -108
- package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +11 -23
- package/dist/plugins/planned.d.ts +10 -0
- package/dist/plugins/planned.js +12 -0
- package/dist/plugins/richtext/CalloutIcon.svelte +25 -0
- package/dist/plugins/richtext/CalloutIcon.svelte.d.ts +9 -0
- package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
- package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
- package/dist/plugins/richtext/EmptyBody.svelte +25 -0
- package/dist/plugins/richtext/EmptyBody.svelte.d.ts +8 -0
- package/dist/plugins/richtext/RichTextControl.svelte +39 -0
- package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
- package/dist/plugins/richtext/RichTextPlugin.svelte +272 -148
- package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +37 -18
- package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
- package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
- package/dist/plugins/richtext/body.d.ts +9 -0
- package/dist/plugins/richtext/body.js +16 -0
- package/dist/plugins/richtext/calloutIcons.svelte.d.ts +97 -0
- package/dist/plugins/richtext/calloutIcons.svelte.js +214 -0
- 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/slashMenu/SlashMenuController.svelte.d.ts +18 -11
- package/dist/plugins/slashMenu/SlashMenuController.svelte.js +93 -35
- package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +11 -24
- package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
- package/dist/plugins/suggestions/SuggestionBars.svelte +32 -84
- package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
- package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -16
- package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
- package/dist/plugins/table/TableChrome.svelte +96 -127
- package/dist/plugins/table/TableChrome.svelte.d.ts +5 -1
- package/dist/plugins/table/TablePlugin.svelte +116 -171
- package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
- package/dist/plugins/table/chrome.svelte.d.ts +110 -117
- package/dist/plugins/table/chrome.svelte.js +643 -289
- package/dist/plugins/table/ops.d.ts +47 -0
- package/dist/plugins/table/ops.js +233 -0
- package/dist/plugins/table/table.css +55 -134
- package/dist/plugins/table/table.d.ts +26 -7
- package/dist/plugins/table/table.js +23 -49
- 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 +29 -66
- package/dist/plugins/toolbar/ToolbarController.svelte.js +151 -76
- package/dist/plugins/toolbar/toolbarPlugin.d.ts +14 -13
- package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
- package/dist/plugins/triggers/TriggerController.svelte.d.ts +6 -45
- package/dist/plugins/triggers/TriggerController.svelte.js +51 -96
- 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 +38 -20
- package/dist/plugins/uploads.svelte.js +39 -32
- package/dist/plugins.d.ts +167 -60
- package/dist/selection/domSelection.d.ts +13 -4
- package/dist/selection/domSelection.js +110 -183
- package/dist/selection/pointer.svelte.d.ts +12 -10
- package/dist/selection/pointer.svelte.js +154 -71
- 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 +263 -542
- package/dist/selection/selection.utils.d.ts +34 -11
- package/dist/selection/selection.utils.js +128 -247
- package/dist/selection/visibility.d.ts +11 -8
- package/dist/selection/visibility.js +23 -8
- package/dist/session/announcer.svelte.d.ts +2 -1
- package/dist/session/announcer.svelte.js +7 -3
- package/dist/session/attempt.d.ts +33 -39
- package/dist/session/attempt.js +61 -53
- package/dist/session/bindings.js +108 -139
- package/dist/session/commands.d.ts +47 -22
- package/dist/session/commands.js +206 -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 +15 -21
- package/dist/session/inputRules.js +75 -84
- package/dist/session/keymap.d.ts +1 -6
- package/dist/session/keymap.js +17 -20
- package/dist/session/moves.d.ts +10 -10
- package/dist/session/moves.js +31 -59
- package/dist/session/navigation.d.ts +18 -3
- package/dist/session/navigation.js +194 -153
- package/dist/session/ports.d.ts +7 -0
- package/dist/session/selection.d.ts +4 -3
- package/dist/session/selection.js +8 -0
- package/dist/session/suggestions.svelte.d.ts +1 -1
- package/dist/session/suggestions.svelte.js +64 -47
- 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 +32 -0
- package/dist/surface/lines.js +43 -0
- package/dist/surface/observer.svelte.d.ts +3 -20
- package/dist/surface/observer.svelte.js +73 -77
- package/dist/surface/overlay.d.ts +48 -6
- package/dist/surface/overlay.js +133 -23
- 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 +315 -126
- 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 -525
- package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
- package/dist/collaboration/history/panel.d.ts +0 -43
- 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 -447
- 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 -116
- package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -12
- package/dist/plugins/keepInView.d.ts +0 -4
- package/dist/plugins/keepInView.js +0 -6
- package/dist/plugins/media/UrlPasteMenu.svelte +0 -83
- package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -7
- package/dist/plugins/richtext/labels.d.ts +0 -5
- package/dist/plugins/richtext/labels.js +0 -3
- package/dist/plugins/slashMenu/SlashMenu.svelte +0 -360
- package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
- package/dist/plugins/toolbar/LinkCard.svelte +0 -118
- package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -7
- package/dist/plugins/toolbar/Toolbar.svelte +0 -400
- package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
- package/dist/plugins/triggers/TriggerMenu.svelte +0 -144
- package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
- package/dist/session/props.d.ts +0 -28
- package/dist/session/props.js +0 -162
- 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
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
import { getOwnRowBottom, isBeside, nestIndent, ownRow, ownTextRow } from './geometry.js';
|
|
2
|
-
/** Notion's drop bar: 4px
|
|
3
|
-
const DROP_INDICATOR_COLOR = 'rgba(35, 131, 226, 0.43)';
|
|
4
|
-
/** The nest backdrop's theming variable (its defaults are in `BlockHandle.svelte`). */
|
|
5
|
-
const BACKDROP_COLOR = '--edytor-drop-backdrop-color';
|
|
2
|
+
/** Notion's drop bar: 4px (its height in `BlockHandles.svelte`, its look the app's). */
|
|
6
3
|
const BAR = 4;
|
|
4
|
+
/** Place `element` at `box`, relative to the layer (`origin`). */
|
|
5
|
+
const place = (element, box, origin) => Object.assign(element.style, {
|
|
6
|
+
left: `${box.left - origin.left}px`,
|
|
7
|
+
top: `${box.top - origin.top}px`,
|
|
8
|
+
width: `${box.width}px`,
|
|
9
|
+
...(box.height === undefined ? {} : { height: `${box.height}px` })
|
|
10
|
+
});
|
|
11
|
+
/**
|
|
12
|
+
* The theme variable `name` as `from` (a block) inherits it, read now, and
|
|
13
|
+
* its write on an element of the overlay (which is not inside the editor):
|
|
14
|
+
* unset there without one.
|
|
15
|
+
*/
|
|
16
|
+
const themed = (from, name) => {
|
|
17
|
+
const value = from.ownerDocument.defaultView
|
|
18
|
+
?.getComputedStyle(from)
|
|
19
|
+
.getPropertyValue(name)
|
|
20
|
+
.trim();
|
|
21
|
+
return (element) => value ? element.style.setProperty(name, value) : element.style.removeProperty(name);
|
|
22
|
+
};
|
|
7
23
|
/**
|
|
8
24
|
* Notion's nest backdrop: a soft rounded tint over the future parent's own
|
|
9
25
|
* row, drawn by the overlay layer under the drop line — never a style on the
|
|
@@ -76,17 +92,18 @@ export class DropIndicator {
|
|
|
76
92
|
// How many blocks move, as data only: the bar shows no badge.
|
|
77
93
|
if (count > 1)
|
|
78
94
|
overlay.dataset.count = String(count);
|
|
79
|
-
|
|
80
|
-
?.getComputedStyle(placement.node)
|
|
81
|
-
.getPropertyValue('--edytor-drop-indicator-color')
|
|
82
|
-
.trim();
|
|
83
|
-
overlay.style.setProperty('--edytor-drop-indicator-color', color || DROP_INDICATOR_COLOR);
|
|
95
|
+
themed(placement.node, '--edytor-drop-indicator-color')(overlay);
|
|
84
96
|
const layer = this.edytor.overlay.layer;
|
|
85
97
|
layer?.append(overlay);
|
|
86
98
|
this.#overlay = overlay;
|
|
87
99
|
const measure = (origin) => {
|
|
88
|
-
const
|
|
89
|
-
|
|
100
|
+
const bar = this.#bar(placement);
|
|
101
|
+
const backdrop = this.#positionBackdrop(placement);
|
|
102
|
+
return () => {
|
|
103
|
+
if (bar)
|
|
104
|
+
place(overlay, bar, origin);
|
|
105
|
+
backdrop?.(origin);
|
|
106
|
+
};
|
|
90
107
|
};
|
|
91
108
|
// Placed at once (it must not show at the layer's origin for a frame), then per frame.
|
|
92
109
|
if (layer)
|
|
@@ -117,12 +134,11 @@ export class DropIndicator {
|
|
|
117
134
|
return parent;
|
|
118
135
|
}
|
|
119
136
|
/**
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
* does not nest.
|
|
137
|
+
* The nest backdrop's write (`backdrop`): over the future parent's box
|
|
138
|
+
* (`nestParent`, read per frame: a peer's change may change it), down to
|
|
139
|
+
* where its first child begins; hidden when the placement does not nest.
|
|
124
140
|
*/
|
|
125
|
-
#positionBackdrop(placement
|
|
141
|
+
#positionBackdrop(placement) {
|
|
126
142
|
const backdrop = this.#backdrop;
|
|
127
143
|
if (!backdrop)
|
|
128
144
|
return;
|
|
@@ -131,43 +147,28 @@ export class DropIndicator {
|
|
|
131
147
|
if (!parent || !node?.isConnected)
|
|
132
148
|
return () => delete backdrop.dataset.shown;
|
|
133
149
|
const rect = ownRow(node);
|
|
134
|
-
const color = node
|
|
135
|
-
|
|
136
|
-
.getPropertyValue(BACKDROP_COLOR)
|
|
137
|
-
.trim();
|
|
138
|
-
return () => {
|
|
150
|
+
const color = themed(node, '--edytor-drop-backdrop-color');
|
|
151
|
+
return (origin) => {
|
|
139
152
|
backdrop.dataset.blockId = parent.id;
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
else
|
|
143
|
-
backdrop.style.removeProperty(BACKDROP_COLOR);
|
|
144
|
-
Object.assign(backdrop.style, {
|
|
145
|
-
left: `${rect.left - origin.left}px`,
|
|
146
|
-
top: `${rect.top - origin.top}px`,
|
|
147
|
-
width: `${rect.width}px`,
|
|
148
|
-
height: `${rect.height}px`
|
|
149
|
-
});
|
|
153
|
+
color(backdrop);
|
|
154
|
+
place(backdrop, rect, origin);
|
|
150
155
|
backdrop.dataset.shown = 'true';
|
|
151
156
|
};
|
|
152
157
|
}
|
|
153
158
|
/**
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
159
|
+
* Notion's plain bar: centered between the two siblings of the slot, or
|
|
160
|
+
* — inside the target — where the child lands, indented to the child's
|
|
161
|
+
* column; beside a block or a column, vertical (`#beside`).
|
|
157
162
|
*/
|
|
158
|
-
#
|
|
159
|
-
const placement = this.placement;
|
|
160
|
-
const overlay = this.#overlay;
|
|
161
|
-
if (!placement || !overlay)
|
|
162
|
-
return;
|
|
163
|
+
#bar(placement) {
|
|
163
164
|
if (isBeside(placement.position))
|
|
164
|
-
return this.#
|
|
165
|
+
return this.#beside(placement);
|
|
165
166
|
const rect = placement.node.getBoundingClientRect();
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
};
|
|
167
|
+
const at = (left, width, center) => ({
|
|
168
|
+
left,
|
|
169
|
+
width,
|
|
170
|
+
top: center - BAR / 2
|
|
171
|
+
});
|
|
171
172
|
if (placement.position === 'inside') {
|
|
172
173
|
// Where the child lands (the gap after the last visible child, else after
|
|
173
174
|
// the target's own row), from the child's indent to the target's right edge.
|
|
@@ -180,7 +181,7 @@ export class DropIndicator {
|
|
|
180
181
|
const end = shown ? shown.bottom : getOwnRowBottom(placement.node);
|
|
181
182
|
const land = next && next.top >= end ? (end + next.top) / 2 : end + 4;
|
|
182
183
|
const left = shown && lastNode ? ownTextRow(lastNode).left : row.left + nestIndent(placement.node);
|
|
183
|
-
return
|
|
184
|
+
return at(left, Math.max(16, rect.right - left), land);
|
|
184
185
|
}
|
|
185
186
|
const siblings = placement.target.parent?.children;
|
|
186
187
|
const index = placement.target.index + (placement.position === 'after' ? 1 : 0);
|
|
@@ -189,10 +190,9 @@ export class DropIndicator {
|
|
|
189
190
|
if (previous && next && previous.bottom <= next.top) {
|
|
190
191
|
const left = Math.min(previous.left, next.left);
|
|
191
192
|
const width = Math.max(previous.right, next.right) - left;
|
|
192
|
-
return
|
|
193
|
+
return at(left, width, (previous.bottom + next.top) / 2);
|
|
193
194
|
}
|
|
194
|
-
|
|
195
|
-
return place(rect.left, rect.width, edge);
|
|
195
|
+
return at(rect.left, rect.width, placement.position === 'before' ? rect.top : rect.bottom);
|
|
196
196
|
}
|
|
197
197
|
/**
|
|
198
198
|
* A beside placement's bar: vertical, 4px, at the edge of the block it
|
|
@@ -200,10 +200,9 @@ export class DropIndicator {
|
|
|
200
200
|
* when it adds a column to a layout, the layout's height, in the middle
|
|
201
201
|
* of the gap to the neighbouring column, else at the layout's edge.
|
|
202
202
|
*/
|
|
203
|
-
#
|
|
204
|
-
const overlay = this.#overlay;
|
|
203
|
+
#beside(placement) {
|
|
205
204
|
const outer = this.ctx.besideOf(placement.target);
|
|
206
|
-
if (!
|
|
205
|
+
if (!outer.node)
|
|
207
206
|
return;
|
|
208
207
|
const right = placement.position === 'right';
|
|
209
208
|
const at = this.ctx.layoutOf(outer);
|
|
@@ -224,14 +223,7 @@ export class DropIndicator {
|
|
|
224
223
|
box = outer.node.getBoundingClientRect();
|
|
225
224
|
edge = right ? box.right : box.left;
|
|
226
225
|
}
|
|
227
|
-
return
|
|
228
|
-
Object.assign(overlay.style, {
|
|
229
|
-
left: `${edge - BAR / 2 - origin.left}px`,
|
|
230
|
-
top: `${box.top - origin.top}px`,
|
|
231
|
-
width: `${BAR}px`,
|
|
232
|
-
height: `${box.height}px`
|
|
233
|
-
});
|
|
234
|
-
};
|
|
226
|
+
return { left: edge - BAR / 2, top: box.top, width: BAR, height: box.height };
|
|
235
227
|
}
|
|
236
228
|
/** Hide the bar (the backdrop fades out where it was) and forget the placement. */
|
|
237
229
|
clear = () => {
|
|
@@ -14,7 +14,8 @@ export type DropPlacement = {
|
|
|
14
14
|
blocked?: boolean;
|
|
15
15
|
};
|
|
16
16
|
export declare const isBeside: (position: BlockMovePosition) => position is "left" | "right";
|
|
17
|
-
|
|
17
|
+
/** Where a block's own row ends: where its first shown child begins, else its box's (`rect`) bottom. */
|
|
18
|
+
export declare const getOwnRowBottom: (node: HTMLElement, rect?: DOMRect) => number;
|
|
18
19
|
/** A block's own row: its box down to where its first child begins. */
|
|
19
20
|
export declare const ownRow: (node: HTMLElement) => DOMRect;
|
|
20
21
|
/** The first line of a block's own text (not a child's), or the block's box. */
|
|
@@ -26,3 +27,47 @@ export declare const ownTextRow: (node: HTMLElement) => DOMRect;
|
|
|
26
27
|
*/
|
|
27
28
|
export declare const NEST_INDENT = 24;
|
|
28
29
|
export declare const nestIndent: (node: HTMLElement) => number;
|
|
30
|
+
/**
|
|
31
|
+
* Whether `y` is over the hint of `node`'s empty body (`body.hint`, a kind's
|
|
32
|
+
* `data-edytor-empty-body` element: an open toggle's, a callout's): a drop
|
|
33
|
+
* there goes inside the block.
|
|
34
|
+
*/
|
|
35
|
+
export declare const overEmptyBody: (node: HTMLElement, y: number) => boolean;
|
|
36
|
+
/**
|
|
37
|
+
* How far a block drag reaches past the editor's content column (`dnd.reach`):
|
|
38
|
+
* past the handle column on the left and past the content's right edge, in
|
|
39
|
+
* px, the `--edytor-drop-reach` the root inherits, else this default.
|
|
40
|
+
*/
|
|
41
|
+
export declare const DROP_REACH = 240;
|
|
42
|
+
/**
|
|
43
|
+
* The beside bands' share of each margin, nearest the content: within it a
|
|
44
|
+
* document with a layout kind offers the band (a new column); past it, up
|
|
45
|
+
* to the reach, the row's reorder.
|
|
46
|
+
*/
|
|
47
|
+
export declare const BESIDE_MARGIN = 120;
|
|
48
|
+
/** Which margin of a block drag a pointer is in, and what answers there (`marginAt`). */
|
|
49
|
+
export type DropMargin = {
|
|
50
|
+
side: 'left' | 'right';
|
|
51
|
+
/**
|
|
52
|
+
* `handles`: the handle column, the row's reorder; `beside`: a beside
|
|
53
|
+
* band's place (the reorder without a band to offer); `reorder`: the row's
|
|
54
|
+
* reorder.
|
|
55
|
+
*/
|
|
56
|
+
zone: 'handles' | 'beside' | 'reorder';
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Where `x` falls outside the editor's content column (`start`…`end`, its
|
|
60
|
+
* edges inside): left of it, the handle column (`handles` px wide) at any
|
|
61
|
+
* reach; past that column on the left, and past `end` on the right, the
|
|
62
|
+
* first `BESIDE_MARGIN` px (at most `reach`) a beside band's place, the rest
|
|
63
|
+
* of `reach` the reorder; `null` inside the content or past the reach
|
|
64
|
+
* (`dnd.reach`).
|
|
65
|
+
*/
|
|
66
|
+
export declare const marginAt: (x: number, { start, end, handles, reach }: {
|
|
67
|
+
start: number;
|
|
68
|
+
end: number;
|
|
69
|
+
handles: number;
|
|
70
|
+
reach: number;
|
|
71
|
+
}) => DropMargin | null;
|
|
72
|
+
/** The drop reach a style gives: its `--edytor-drop-reach` in px (0 or more), else `DROP_REACH`. */
|
|
73
|
+
export declare const dropReach: (style: CSSStyleDeclaration | undefined) => number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const isBeside = (position) => position === 'left' || position === 'right';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/** Where a block's own row ends: where its first shown child begins, else its box's (`rect`) bottom. */
|
|
3
|
+
export const getOwnRowBottom = (node, rect = node.getBoundingClientRect()) => {
|
|
4
4
|
// Block nodes wrap their children in the DOM; the parent's placement
|
|
5
5
|
// bands belong to its own row, ending where the first child begins.
|
|
6
6
|
const firstChild = node.querySelector('[data-edytor-block="true"]');
|
|
@@ -17,10 +17,11 @@ export const ownRow = (node) => {
|
|
|
17
17
|
const rect = node.getBoundingClientRect();
|
|
18
18
|
return new DOMRect(rect.left, rect.top, rect.width, Math.max(0, getOwnRowBottom(node) - rect.top));
|
|
19
19
|
};
|
|
20
|
+
/** The first element matching `selector` in a block's own markup (not a child's). */
|
|
21
|
+
const own = (node, selector) => Array.from(node.querySelectorAll(selector)).find((element) => element.closest('[data-edytor-block="true"]') === node);
|
|
20
22
|
/** The first line of a block's own text (not a child's), or the block's box. */
|
|
21
23
|
export const ownTextRow = (node) => {
|
|
22
|
-
const
|
|
23
|
-
const row = text?.getClientRects()[0];
|
|
24
|
+
const row = own(node, '[data-edytor-text="true"]')?.getClientRects()[0];
|
|
24
25
|
return row && row.height > 0 ? row : node.getBoundingClientRect();
|
|
25
26
|
};
|
|
26
27
|
/**
|
|
@@ -36,3 +37,49 @@ export const nestIndent = (node) => {
|
|
|
36
37
|
.trim();
|
|
37
38
|
return value?.endsWith('px') ? parseFloat(value) : NEST_INDENT;
|
|
38
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* Whether `y` is over the hint of `node`'s empty body (`body.hint`, a kind's
|
|
42
|
+
* `data-edytor-empty-body` element: an open toggle's, a callout's): a drop
|
|
43
|
+
* there goes inside the block.
|
|
44
|
+
*/
|
|
45
|
+
export const overEmptyBody = (node, y) => {
|
|
46
|
+
const rect = own(node, '[data-edytor-empty-body]')?.getBoundingClientRect();
|
|
47
|
+
return !!rect && rect.height > 0 && y >= rect.top && y <= rect.bottom;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* How far a block drag reaches past the editor's content column (`dnd.reach`):
|
|
51
|
+
* past the handle column on the left and past the content's right edge, in
|
|
52
|
+
* px, the `--edytor-drop-reach` the root inherits, else this default.
|
|
53
|
+
*/
|
|
54
|
+
export const DROP_REACH = 240;
|
|
55
|
+
/**
|
|
56
|
+
* The beside bands' share of each margin, nearest the content: within it a
|
|
57
|
+
* document with a layout kind offers the band (a new column); past it, up
|
|
58
|
+
* to the reach, the row's reorder.
|
|
59
|
+
*/
|
|
60
|
+
export const BESIDE_MARGIN = 120;
|
|
61
|
+
/**
|
|
62
|
+
* Where `x` falls outside the editor's content column (`start`…`end`, its
|
|
63
|
+
* edges inside): left of it, the handle column (`handles` px wide) at any
|
|
64
|
+
* reach; past that column on the left, and past `end` on the right, the
|
|
65
|
+
* first `BESIDE_MARGIN` px (at most `reach`) a beside band's place, the rest
|
|
66
|
+
* of `reach` the reorder; `null` inside the content or past the reach
|
|
67
|
+
* (`dnd.reach`).
|
|
68
|
+
*/
|
|
69
|
+
export const marginAt = (x, { start, end, handles, reach }) => {
|
|
70
|
+
if (x >= start && x <= end)
|
|
71
|
+
return null;
|
|
72
|
+
if (x < start && x >= start - handles)
|
|
73
|
+
return { side: 'left', zone: 'handles' };
|
|
74
|
+
const side = x < start ? 'left' : 'right';
|
|
75
|
+
const out = side === 'left' ? start - handles - x : x - end;
|
|
76
|
+
if (out > reach)
|
|
77
|
+
return null;
|
|
78
|
+
return { side, zone: out <= Math.min(BESIDE_MARGIN, reach) ? 'beside' : 'reorder' };
|
|
79
|
+
};
|
|
80
|
+
/** The drop reach a style gives: its `--edytor-drop-reach` in px (0 or more), else `DROP_REACH`. */
|
|
81
|
+
export const dropReach = (style) => {
|
|
82
|
+
const value = style?.getPropertyValue('--edytor-drop-reach').trim();
|
|
83
|
+
const px = value?.endsWith('px') ? parseFloat(value) : NaN;
|
|
84
|
+
return Number.isFinite(px) && px >= 0 ? px : DROP_REACH;
|
|
85
|
+
};
|
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
|
+
import type { Attachment } from 'svelte/attachments';
|
|
2
3
|
import type { EditorCommand } from '../../plugins.js';
|
|
3
4
|
import type { Block } from '../../block/block.svelte.js';
|
|
4
5
|
import type { Edytor } from '../../edytor.svelte.js';
|
|
5
6
|
import { type KindRow } from '../../kinds.js';
|
|
6
|
-
import type { Popup } from '../../surface/popups.svelte.js';
|
|
7
|
-
import { type BlockMenuLabels, type PartialLabels } from '../../labels.js';
|
|
8
7
|
import { BLOCK_COLORS, type BlockColorField } from '../../block/colors.js';
|
|
9
8
|
export type BlockMenuOptions = {
|
|
10
9
|
/** A link to the block, for "Copy link to block" (the row is hidden without it). */
|
|
11
10
|
linkTo?: (block: Block) => string;
|
|
12
11
|
/**
|
|
13
|
-
*
|
|
14
|
-
* the handle (mark your panel `data-edytor-block-menu` for placement
|
|
15
|
-
*
|
|
12
|
+
* The menu's markup and its words; it renders while `controller.isOpen`, placed beside
|
|
13
|
+
* the handle (mark your panel `data-edytor-block-menu` for placement;
|
|
14
|
+
* without it, nothing shows).
|
|
15
|
+
* The controller runs every action; `close()` returns the caret. Keep
|
|
16
|
+
* the keyboard and the ARIA with its attachments: `{@attach
|
|
17
|
+
* controller.keys}` on the field that holds the keyboard, `{@attach
|
|
18
|
+
* controller.popup}` on the menu, `{...controller.option(index)}` on each
|
|
19
|
+
* row, `{@attach controller.flyoutMenu}` on an open flyout.
|
|
16
20
|
*/
|
|
17
21
|
menu?: Snippet<[BlockMenuController]>;
|
|
18
|
-
/** The words the menu shows (its actions, search field, headings), over the English ones. */
|
|
19
|
-
labels?: PartialLabels<'blockMenu'>;
|
|
20
22
|
};
|
|
21
23
|
export type BlockMenuAction = {
|
|
22
24
|
id: string;
|
|
@@ -35,7 +37,7 @@ export type BlockMenuAction = {
|
|
|
35
37
|
export type BlockMenuColor = {
|
|
36
38
|
/** `color.<name>` or `background.<name>` (`color.default`, `background.default`). */
|
|
37
39
|
id: string;
|
|
38
|
-
/** Its words in the
|
|
40
|
+
/** Its words in the view's labels (`colorText`, `colorBackground`): "Red text", "Red background", "Default text". */
|
|
39
41
|
label: string;
|
|
40
42
|
field: BlockColorField;
|
|
41
43
|
value: (typeof BLOCK_COLORS)[number] | null;
|
|
@@ -53,7 +55,7 @@ export declare const colorQueryRow: (row: BlockMenuColor) => {
|
|
|
53
55
|
* listed once a query names them (`searchOnly`): each paints the caret's
|
|
54
56
|
* block, as the block menu's Color does (`setBlockColor`).
|
|
55
57
|
*/
|
|
56
|
-
export declare const colorCommands: (edytor: Edytor
|
|
58
|
+
export declare const colorCommands: (edytor: Edytor) => EditorCommand[];
|
|
57
59
|
export declare class BlockMenuController {
|
|
58
60
|
#private;
|
|
59
61
|
private edytor;
|
|
@@ -69,13 +71,12 @@ export declare class BlockMenuController {
|
|
|
69
71
|
blocks: Block[];
|
|
70
72
|
anchor: HTMLElement | null;
|
|
71
73
|
query: string;
|
|
72
|
-
|
|
74
|
+
/** The keyboard's row. */
|
|
75
|
+
index: number;
|
|
73
76
|
/** The open flyout: the kinds (`turn`), the colours (`color`), or none. */
|
|
74
77
|
flyout: false | "color" | "turn";
|
|
75
78
|
/** The keyboard's row in the open flyout. */
|
|
76
79
|
flyoutIndex: number;
|
|
77
|
-
/** The words the menu shows (the plugin's `labels`): read them in a custom `menu`. */
|
|
78
|
-
readonly labels: BlockMenuLabels;
|
|
79
80
|
constructor(edytor: Edytor, options?: BlockMenuOptions);
|
|
80
81
|
get isOpen(): boolean;
|
|
81
82
|
/** The editor is readonly: the menu closes. */
|
|
@@ -85,8 +86,41 @@ export declare class BlockMenuController {
|
|
|
85
86
|
get flyoutId(): string;
|
|
86
87
|
/** A row's element id (page-unique; a flyout's with `flyout`), for `aria-activedescendant`. */
|
|
87
88
|
rowId: (row: BlockMenuAction | KindRow | BlockMenuColor, flyout?: boolean) => string;
|
|
88
|
-
/**
|
|
89
|
-
|
|
89
|
+
/**
|
|
90
|
+
* The menu element (`{@attach controller.popup}`, the one with the rows):
|
|
91
|
+
* it takes the menu's id, its `menu` role and name unless it has its
|
|
92
|
+
* own, keeps the focus where it is on a press (a field takes its own),
|
|
93
|
+
* and is published to the view's root (`edytor.popups`) while it is in
|
|
94
|
+
* the page, the grip that opened it told so.
|
|
95
|
+
*/
|
|
96
|
+
popup: Attachment<HTMLElement>;
|
|
97
|
+
/**
|
|
98
|
+
* An open flyout (`{@attach controller.flyoutMenu}`, named by your
|
|
99
|
+
* markup): its id, `menu` role, the overlay's placement beside the menu,
|
|
100
|
+
* and presses that keep the focus.
|
|
101
|
+
*/
|
|
102
|
+
flyoutMenu: Attachment<HTMLElement>;
|
|
103
|
+
/**
|
|
104
|
+
* The element that holds the keyboard (`{@attach controller.keys}`: the
|
|
105
|
+
* search field): focused when it mounts, it takes every key of the menu
|
|
106
|
+
* (the arrows, Home and End walk the rows, → opens a row's flyout and ←
|
|
107
|
+
* closes it, Enter runs the row, Delete removes the blocks while the
|
|
108
|
+
* query is empty, Escape closes the flyout, then the menu), and names
|
|
109
|
+
* the open menu and its highlighted row (`aria-controls`,
|
|
110
|
+
* `aria-activedescendant`, once that row is in the page).
|
|
111
|
+
*/
|
|
112
|
+
keys: Attachment<HTMLElement>;
|
|
113
|
+
/**
|
|
114
|
+
* The attachment of the row at `index` (of the open flyout's rows with
|
|
115
|
+
* `flyout`): `{@attach controller.option(index)}` on its element.
|
|
116
|
+
* Its id, its role (`menuitem`, a switch's `menuitemcheckbox`, a colour's
|
|
117
|
+
* `menuitemradio` with its ✓ as `aria-checked`, a flyout's opener with
|
|
118
|
+
* `aria-haspopup` and `aria-expanded`); the keyboard's row scrolls into
|
|
119
|
+
* view. Its look is the markup's (`index`, `flyoutIndex`).
|
|
120
|
+
*/
|
|
121
|
+
option: (index: number, flyout?: boolean) => Attachment<HTMLElement>;
|
|
122
|
+
/** The search field typed in: the rows match `query`, the first one highlighted, no flyout open. */
|
|
123
|
+
search(query: string): void;
|
|
90
124
|
/** What Delete and Turn into act on: `blocks`, a list or a code block with its subtree (`selectedMembers`). */
|
|
91
125
|
get members(): Block[];
|
|
92
126
|
/** The Turn into rows: the kinds, then the commands that turn `blocks` into something (`turnCommands`). */
|
|
@@ -102,11 +136,6 @@ export declare class BlockMenuController {
|
|
|
102
136
|
/** The row naming the open block. */
|
|
103
137
|
get currentKind(): KindRow | undefined;
|
|
104
138
|
get actions(): BlockMenuAction[];
|
|
105
|
-
/**
|
|
106
|
-
* With a query, the kinds it names join the list (Notion's "Turn into"
|
|
107
|
-
* results), matched as the slash menu matches them (`matchesQuery`).
|
|
108
|
-
*/
|
|
109
|
-
get matchingKinds(): KindRow[];
|
|
110
139
|
/**
|
|
111
140
|
* With a query, the colours it names join the list after the kinds
|
|
112
141
|
* (Notion's "Color" results: `red` lists "Red text" and "Red background"),
|
|
@@ -130,13 +159,13 @@ export declare class BlockMenuController {
|
|
|
130
159
|
* closes and the blocks stay selected, as in Notion.
|
|
131
160
|
*/
|
|
132
161
|
paint(row: BlockMenuColor): void;
|
|
133
|
-
duplicate(block: Block): void;
|
|
134
162
|
/**
|
|
135
|
-
* Duplicate
|
|
136
|
-
* block inside another of them is copied with it; a vetoed one is
|
|
137
|
-
* `dispatcher.each`); the copies are selected
|
|
163
|
+
* Duplicate `blocks` as one undo step, each copy after its block (a
|
|
164
|
+
* block inside another of them is copied with it; a vetoed one is
|
|
165
|
+
* skipped, `dispatcher.each`); the copies are selected (`select`), else
|
|
166
|
+
* the first copy takes the caret (refused: its block keeps it).
|
|
138
167
|
*/
|
|
139
|
-
|
|
168
|
+
duplicate(blocks: Block[], select: boolean): void;
|
|
140
169
|
/**
|
|
141
170
|
* Delete the open blocks' `members` (a list with its items) as the
|
|
142
171
|
* keyboard's block delete does (`deleteSelectedBlocks`):
|
|
@@ -152,10 +181,12 @@ export declare class BlockMenuController {
|
|
|
152
181
|
*/
|
|
153
182
|
get linked(): Block | undefined;
|
|
154
183
|
copyLink(): Promise<void>;
|
|
155
|
-
/**
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
184
|
+
/**
|
|
185
|
+
* Run a row of the menu or of its open flyout (a click; Enter runs the
|
|
186
|
+
* keyboard's): paint a colour, convert to a kind, open an action's
|
|
187
|
+
* flyout or run it.
|
|
188
|
+
*/
|
|
189
|
+
run(row: BlockMenuAction | KindRow | BlockMenuColor | undefined): void;
|
|
159
190
|
/**
|
|
160
191
|
* Open a flyout on its first row (keyboard or mouse): the "Turn into"
|
|
161
192
|
* kinds (default) or the colours; that flyout already open stays as it
|