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/dnd/autoScroll.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { autoScroll, autoScrollWindow } from './pragmatic.js';
|
|
2
2
|
/**
|
|
3
3
|
* Auto-scroll for one drag (a block's, a table row's or column's; Atlassian's
|
|
4
4
|
* auto-scroll package): the window
|
|
@@ -12,7 +12,6 @@ export const autoScrollFor = (root, ours) => {
|
|
|
12
12
|
// so it is created only where that exists.
|
|
13
13
|
if (typeof root.ownerDocument.elementsFromPoint !== 'function')
|
|
14
14
|
return () => { };
|
|
15
|
-
const { autoScroll, autoScrollWindow } = autoScrollApi();
|
|
16
15
|
const canScroll = ({ source }) => ours(source.data);
|
|
17
16
|
const releases = [autoScrollWindow({ canScroll })];
|
|
18
17
|
const { body, documentElement, defaultView } = root.ownerDocument;
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* future parent's own row. Both live in the overlay layer, measured each
|
|
6
6
|
* frame. The controller decides the placement; this draws it.
|
|
7
7
|
*/
|
|
8
|
-
import type { Block } from '
|
|
9
|
-
import type { Edytor } from '
|
|
8
|
+
import type { Block } from '../block/block.svelte.js';
|
|
9
|
+
import type { Edytor } from '../edytor.svelte.js';
|
|
10
10
|
import { type DropPlacement } from './geometry.js';
|
|
11
11
|
/** What the indicator reads of the controller: the dragged blocks and the beside resolution. */
|
|
12
12
|
type IndicatorContext = {
|
|
@@ -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 = () => {
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* placement's shape, a block's own row, its first text line and one
|
|
5
5
|
* nesting step.
|
|
6
6
|
*/
|
|
7
|
-
import type { Block } from '
|
|
8
|
-
import type { BlockMovePosition } from '
|
|
7
|
+
import type { Block } from '../block/block.svelte.js';
|
|
8
|
+
import type { BlockMovePosition } from '../session/moves.js';
|
|
9
9
|
export type DropPlacement = {
|
|
10
10
|
target: Block;
|
|
11
11
|
node: HTMLElement;
|
|
@@ -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. */
|
|
@@ -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
|
/**
|
|
@@ -42,8 +43,7 @@ export const nestIndent = (node) => {
|
|
|
42
43
|
* there goes inside the block.
|
|
43
44
|
*/
|
|
44
45
|
export const overEmptyBody = (node, y) => {
|
|
45
|
-
const
|
|
46
|
-
const rect = hint?.getBoundingClientRect();
|
|
46
|
+
const rect = own(node, '[data-edytor-empty-body]')?.getBoundingClientRect();
|
|
47
47
|
return !!rect && rect.height > 0 && y >= rect.top && y <= rect.bottom;
|
|
48
48
|
};
|
|
49
49
|
/**
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a drop lands in a view (Notion's rules): the one resolution a block
|
|
3
|
+
* handle's drag and a file dragged from outside both read, and the drop
|
|
4
|
+
* indicator draws (`dropIndicator.ts`). A drag is what it carries
|
|
5
|
+
* (`Drag`: the blocks it moves, none for files) and the placements the
|
|
6
|
+
* document takes for it (`fits`); the rows are the view's drop targets
|
|
7
|
+
* (`targetOf`). The block handles wire it to the drag library; a file drag
|
|
8
|
+
* reads it from the host's own `dragover` (the media plugins' `plugins/fileDrop.ts`).
|
|
9
|
+
*/
|
|
10
|
+
import type { Block } from '../block/block.svelte.js';
|
|
11
|
+
import type { Edytor } from '../edytor.svelte.js';
|
|
12
|
+
import type { DropIndicator } from './dropIndicator.js';
|
|
13
|
+
import { type DropPlacement } from './geometry.js';
|
|
14
|
+
export type Input = {
|
|
15
|
+
clientX: number;
|
|
16
|
+
clientY: number;
|
|
17
|
+
};
|
|
18
|
+
/** What a drag carries: the blocks it moves (none for files), and whether a placement takes it. */
|
|
19
|
+
export type Drag = {
|
|
20
|
+
group: readonly Block[];
|
|
21
|
+
fits: (placement: DropPlacement) => boolean;
|
|
22
|
+
};
|
|
23
|
+
/** How far beside a target's box it stays the drop target (`getIsSticky`), across and along. */
|
|
24
|
+
export declare const SLOP_X = 20;
|
|
25
|
+
export declare const SLOP_Y = 24;
|
|
26
|
+
/**
|
|
27
|
+
* A block a drop may land at (a drop target): a movable block, not a
|
|
28
|
+
* table's row (its row menus move it) nor a cell.
|
|
29
|
+
*/
|
|
30
|
+
export declare const isDropTarget: (edytor: Edytor, block: Block) => boolean;
|
|
31
|
+
type ResolverContext = {
|
|
32
|
+
/** The drop target block of a block element, if it is one. */
|
|
33
|
+
targetOf: (node: HTMLElement) => Block | undefined;
|
|
34
|
+
/** The drag's handle (its width is the handle column's), if any. */
|
|
35
|
+
handle: () => HTMLElement | null;
|
|
36
|
+
/** The indicator showing the drag's placement (a margin's reorder holds while it shows). */
|
|
37
|
+
indicator: DropIndicator;
|
|
38
|
+
};
|
|
39
|
+
export declare class DropResolver {
|
|
40
|
+
private readonly edytor;
|
|
41
|
+
private readonly ctx;
|
|
42
|
+
constructor(edytor: Edytor, ctx: ResolverContext);
|
|
43
|
+
targetOf: (node: HTMLElement) => Block | undefined;
|
|
44
|
+
isTarget: (node: HTMLElement) => boolean;
|
|
45
|
+
/**
|
|
46
|
+
* The placement over `row` at the pointer: a beside band of the row first
|
|
47
|
+
* (`beside`; `false` when the document refuses it: nothing shows), else
|
|
48
|
+
* the row's halves, the top one first when `before` (the pointer's half,
|
|
49
|
+
* or the one a sticky target holds).
|
|
50
|
+
*/
|
|
51
|
+
at(drag: Drag, row: Block, input: Input, before: boolean): DropPlacement | null | false;
|
|
52
|
+
/**
|
|
53
|
+
* The drop target under the pointer for a drag the host's own events see
|
|
54
|
+
* (a file's): the innermost target element at the point, `null` outside
|
|
55
|
+
* the blocks and in the handle column (the margins answer there,
|
|
56
|
+
* `margin`).
|
|
57
|
+
*/
|
|
58
|
+
hitAt(input: Input): HTMLElement | null;
|
|
59
|
+
/** The placement over the row of drop target `node` at the pointer (`rowAt`, its own row's half: `at`). */
|
|
60
|
+
over(drag: Drag, node: HTMLElement, input: Input): DropPlacement | null | false;
|
|
61
|
+
/**
|
|
62
|
+
* The editor's content column (`start`…`end`, the root's content box:
|
|
63
|
+
* where its blocks' boxes start and end), the width of the handle column
|
|
64
|
+
* left of it (the drag's handle, measured: `+`, grip and the gap to the
|
|
65
|
+
* block) and how far the drag reaches past them (`dropReach`, the
|
|
66
|
+
* `--edytor-drop-reach` the root inherits).
|
|
67
|
+
*/
|
|
68
|
+
gutter(root: HTMLElement): {
|
|
69
|
+
start: number;
|
|
70
|
+
end: number;
|
|
71
|
+
handles: number;
|
|
72
|
+
reach: number;
|
|
73
|
+
};
|
|
74
|
+
/** Whether `x` is in the handle column left of the editor's blocks (`gutter`): the page target's. */
|
|
75
|
+
inHandleColumn(x: number): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* A placement in the editor's margins at the pointer (`dnd.reach`), within
|
|
78
|
+
* the editor's height, for the row the content's near edge shows at the
|
|
79
|
+
* pointer's height (`rowAt`: a nested block's own row; over a layout, the
|
|
80
|
+
* row of its first column on the left, of its last on the right, never
|
|
81
|
+
* another), by the zone the pointer is in (`marginAt`):
|
|
82
|
+
* - the handle column left of the blocks (`gutter`): that row's reorder
|
|
83
|
+
* (`reorder`): a drag straight down the handles reorders, row after
|
|
84
|
+
* row, gaps included (never a beside band);
|
|
85
|
+
* - the first `BESIDE_MARGIN` px past it on the left, and past the
|
|
86
|
+
* content's right edge: the beside band of that side (`beside`, as if
|
|
87
|
+
* the pointer were at that edge) when the document has a layout kind
|
|
88
|
+
* and the row offers one (a refused band shows nothing);
|
|
89
|
+
* - elsewhere within the reach (and there without a band): the reorder,
|
|
90
|
+
* on the left the handle column's, on the right the one the row's
|
|
91
|
+
* right edge offers (its halves as just inside the content, so nothing
|
|
92
|
+
* jumps as the pointer leaves it).
|
|
93
|
+
* `undefined` past the reach, above or below the editor, and inside the
|
|
94
|
+
* content (the blocks' own targets answer there).
|
|
95
|
+
*/
|
|
96
|
+
margin(drag: Drag, { clientX: x, clientY: y }: Input): DropPlacement | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* The halves of `row` (`zones`) at the pointer, the one it is in first:
|
|
99
|
+
* the top half of `rect` (its own row by default) before, the bottom one
|
|
100
|
+
* after; with `plain`, only before or after a block — never inside one.
|
|
101
|
+
*/
|
|
102
|
+
halves(drag: Drag, row: Block, input: Input, rect: DOMRect, plain?: boolean): DropPlacement[][];
|
|
103
|
+
/**
|
|
104
|
+
* The first placement of `halves` the document takes (a refused one gives
|
|
105
|
+
* way to the next, then to the other half's), `blocked` when the first
|
|
106
|
+
* half took none; `null` when none fits.
|
|
107
|
+
*/
|
|
108
|
+
pick(drag: Drag, halves: DropPlacement[][]): DropPlacement | null;
|
|
109
|
+
/**
|
|
110
|
+
* The handle column's reorder over `row` at the pointer: its plain halves
|
|
111
|
+
* (`halves`, the pointer's x picking the level); `null` when neither half
|
|
112
|
+
* fits. Over an item of a container the dragged blocks do not fit in (a
|
|
113
|
+
* paragraph over a list's item: the document refuses every placement at
|
|
114
|
+
* the item's level), the container is the row: its whole box, the upper
|
|
115
|
+
* half before it, the lower half after it (round 4), so a drag down the
|
|
116
|
+
* handles meets the list as one row it can pass.
|
|
117
|
+
*/
|
|
118
|
+
reorder(drag: Drag, row: Block, input: Input): DropPlacement | null;
|
|
119
|
+
/**
|
|
120
|
+
* The block whose row the pointer is on over `node`: the last shown drop
|
|
121
|
+
* target in it whose row starts at or above the pointer (beside a nested
|
|
122
|
+
* block, over its ancestors' indent, the pointer is on that block's
|
|
123
|
+
* row), else `target`, over its own row (`emptied`). A layout's columns
|
|
124
|
+
* sit side by side: only the one under the pointer is measured (between
|
|
125
|
+
* two of them, the layout is the row: its gap).
|
|
126
|
+
*/
|
|
127
|
+
rowAt(drag: Drag, target: Block, node: HTMLElement, { clientX, clientY }: Input): Block;
|
|
128
|
+
/** Whether the document has a layout kind: only then are there beside placements. */
|
|
129
|
+
get layouts(): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* The block a beside placement over `block` stands beside: the document's
|
|
132
|
+
* own resolution (`facade.besideAt`, `placeBeside`'s): a list item's list,
|
|
133
|
+
* a code line's code block, a toggle's child itself, an item itself.
|
|
134
|
+
*/
|
|
135
|
+
besideOf(block: Block): Block;
|
|
136
|
+
/** The item (and its layout) a beside placement at `outer` (`besideOf`) adds a column beside. */
|
|
137
|
+
layoutOf(outer: Block): {
|
|
138
|
+
item: Block;
|
|
139
|
+
layout: Block | null;
|
|
140
|
+
} | null;
|
|
141
|
+
/**
|
|
142
|
+
* Whether `x` is over a column other than one holding `block`: a sticky
|
|
143
|
+
* target never holds the pointer across a column boundary.
|
|
144
|
+
*/
|
|
145
|
+
overOtherColumn(block: Block, x: number): boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Notion's beside bands over `row` (`docs/columns-plan.md`, "View layer"), only while the
|
|
148
|
+
* pointer is within its own row's height, the document has a layout kind
|
|
149
|
+
* and the layout the drop makes or grows does not stack (`stacks`):
|
|
150
|
+
* - right: the row's last 15% (at least 32px), and the slop past it;
|
|
151
|
+
* - left: the slop left of the row (its sticky margin, left of its text
|
|
152
|
+
* column), only for a row whose parent is the root or a column (a
|
|
153
|
+
* list's item: its list's) — a nested row keeps the pointer's x for its
|
|
154
|
+
* levels (`zones`) — and only
|
|
155
|
+
* inside the editor (a column's gap): left of the editor's blocks is the
|
|
156
|
+
* handle column, which reorders (`margin`);
|
|
157
|
+
* - over a layout's gap (the row is the layout): right of the column
|
|
158
|
+
* before it, a new column between.
|
|
159
|
+
* `undefined` outside the bands (the hitbox's halves stand), else the
|
|
160
|
+
* placement, or `null` when the document refuses it: a refused band shows
|
|
161
|
+
* nothing.
|
|
162
|
+
*/
|
|
163
|
+
beside(drag: Drag, row: Block, { clientX: x, clientY: y }: Input, band?: 'left' | 'right'): DropPlacement | null | undefined;
|
|
164
|
+
/** Where the editor's blocks start (`gutter`), or `fallback` without a host. */
|
|
165
|
+
inside(fallback: number): number;
|
|
166
|
+
/** The children a block shows: none for a closed toggle's, or a container's items. */
|
|
167
|
+
shown(block: Block): Block[];
|
|
168
|
+
/**
|
|
169
|
+
* Over a dragged block, the parent it leaves when that parent shows no
|
|
170
|
+
* other child: the gap under the parent's own row, which reparents as
|
|
171
|
+
* the parent's lower half does (`zones`). Else `row`.
|
|
172
|
+
*/
|
|
173
|
+
emptied(drag: Drag, row: Block): Block;
|
|
174
|
+
/**
|
|
175
|
+
* The placements over `row`, each half's in preference order (a refused
|
|
176
|
+
* one gives way to the next, then to the other half's):
|
|
177
|
+
* - the top half: before it;
|
|
178
|
+
* - the bottom half of a block whose children show (not a closed toggle):
|
|
179
|
+
* its first child's slot. Pragmatic drag and drop's tree rule: an
|
|
180
|
+
* expanded item offers no "after" on its own row;
|
|
181
|
+
* - else, after it at the level whose text column is nearest the pointer:
|
|
182
|
+
* the last block of a nested group reparents to any ancestor it ends,
|
|
183
|
+
* down to the root. Past one nesting step right of its text start,
|
|
184
|
+
* inside it (its last child) first. A block every shown child of which
|
|
185
|
+
* is dragged is not expanded: its levels, never inside it when the drag
|
|
186
|
+
* moves only its children (they would stay where they are).
|
|
187
|
+
* None over a dragged block's own row or its subtree: released there, the
|
|
188
|
+
* drag changes nothing (its levels would outdent it) — unless it empties
|
|
189
|
+
* its parent's shown children (`emptied`): that parent's row. Over the
|
|
190
|
+
* hint of the row's empty body (`body.hint`: an open toggle's, a
|
|
191
|
+
* callout's), inside it first, either half.
|
|
192
|
+
*/
|
|
193
|
+
zones(drag: Drag, row: Block, { clientX, clientY }: Input): {
|
|
194
|
+
before: DropPlacement[];
|
|
195
|
+
after: DropPlacement[];
|
|
196
|
+
};
|
|
197
|
+
/** The dragged block that is `row` or holds it: its row offers nothing (it moves with the drag). */
|
|
198
|
+
carrier(drag: Drag, row: Block): Block | undefined;
|
|
199
|
+
}
|
|
200
|
+
export {};
|