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
package/dist/crdt/doc/steps.js
CHANGED
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { randOf } from '../rand.js';
|
|
9
9
|
import { TYPE } from '../schema.js';
|
|
10
|
-
import { promotedRank,
|
|
11
|
-
import {
|
|
10
|
+
import { blockNodeOf, positionInView, promotedRank, ranksAt, SOURCE_SIDE, sourceRank } from '../placement/model.js';
|
|
11
|
+
import { REFUSED, effectOf } from './plan.js';
|
|
12
12
|
/** The step writers of one facade. */
|
|
13
13
|
export const planSteps = (c) => {
|
|
14
|
-
const { doc,
|
|
14
|
+
const { doc, runsView, roles, rendersContentOf, view, blockTypeOf, childrenIds, positionOf, ancestorsOf, is, isIsland, itemKindOf, isLayout, displayLength, contentItems, live, isContainer, fitted, emptiable, rendersContent, defaultChild } = c;
|
|
15
15
|
// ── prepared ops ─────────────────────────────────────────────
|
|
16
16
|
// Every op is `prepare` (pure: `refused`, or a plan of named steps plus
|
|
17
17
|
// its effect summary, against the current version) then `apply(plan)`;
|
|
@@ -19,7 +19,6 @@ export const planSteps = (c) => {
|
|
|
19
19
|
// whole command before any write and a refusal refuses before one.
|
|
20
20
|
// Each prepare normalizes its inputs once, here at ingress: ids
|
|
21
21
|
// and strings as the wire would deliver them, payloads cloned.
|
|
22
|
-
const REFUSED = refused(null);
|
|
23
22
|
/** `exitRanks` parts, in their order at one block. */
|
|
24
23
|
const [HEAD, KEPT, WITH, SELF, AFTER] = [0, 1, 2, 3, 5];
|
|
25
24
|
const plan = (ids, writes) => ({
|
|
@@ -41,7 +40,7 @@ export const planSteps = (c) => {
|
|
|
41
40
|
const all = v.kids.get(parent) ?? [];
|
|
42
41
|
// The moving blocks' own slots left out: index → the list's index past them.
|
|
43
42
|
const gone = exclude
|
|
44
|
-
.map((id) =>
|
|
43
|
+
.map((id) => positionInView(v, id))
|
|
45
44
|
.filter((p) => p !== null && p.parent === parent)
|
|
46
45
|
.map((p) => p.index)
|
|
47
46
|
.sort((a, b) => a - b);
|
|
@@ -53,7 +52,7 @@ export const planSteps = (c) => {
|
|
|
53
52
|
};
|
|
54
53
|
const at = Math.max(0, Math.min(index, all.length - gone.length));
|
|
55
54
|
const pair = [at > 0 ? all[raw(at - 1)] : undefined, all[raw(at)]];
|
|
56
|
-
return
|
|
55
|
+
return ranksAt(pair, 1, count, doc.clientID, randOf(doc), run);
|
|
57
56
|
};
|
|
58
57
|
/**
|
|
59
58
|
* Move `ids` to `ranks` under `parent` (`index`: the slot hooks see).
|
|
@@ -146,7 +145,7 @@ export const planSteps = (c) => {
|
|
|
146
145
|
* an outdent settles back to a paragraph is written back.
|
|
147
146
|
*/
|
|
148
147
|
const attr = (id, key, value) => {
|
|
149
|
-
const same =
|
|
148
|
+
const same = blockNodeOf(doc, id).getAttr(key) === value;
|
|
150
149
|
if (same && (runsView.displayType(id) ?? value) === value)
|
|
151
150
|
return [];
|
|
152
151
|
return [{ op: 'setBlockType', id, type: value }];
|
|
@@ -334,6 +333,18 @@ export const planSteps = (c) => {
|
|
|
334
333
|
const atomOf = (id, atom) => live(id) ? spans(id).find(({ item }) => item.kind === 'inline' && item.id === atom) : undefined;
|
|
335
334
|
/** Text items overlapping `[at, end)` of `id` (inline atoms carry no marks). */
|
|
336
335
|
const textIn = (id, at, end) => spans(id).flatMap((s) => (s.item.kind === 'text' && s.at < end && s.end > at ? [s.item] : []));
|
|
336
|
+
/** Push the steps writing `items` into `id` from `at` (text runs and atoms in order); the end offset. */
|
|
337
|
+
const writeContent = (writes, id, at, items = []) => {
|
|
338
|
+
for (const item of items) {
|
|
339
|
+
if (item.kind === 'inline')
|
|
340
|
+
writes.push({ op: 'insertInline', id, offset: at++, atom: item });
|
|
341
|
+
else if (item.text !== '') {
|
|
342
|
+
writes.push({ op: 'insertText', id, offset: at, text: item.text, marks: item.marks });
|
|
343
|
+
at += item.text.length;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
return at;
|
|
347
|
+
};
|
|
337
348
|
/** `writes`, then every container the `leaving` blocks leave with no child removed. */
|
|
338
349
|
const emptied = (leaving, writes, kept) => emptyingAll(leaving.map((id) => positionOf(id).parent), leaving, writes, kept);
|
|
339
350
|
return {
|
|
@@ -363,8 +374,8 @@ export const planSteps = (c) => {
|
|
|
363
374
|
remove,
|
|
364
375
|
merge,
|
|
365
376
|
clamp,
|
|
366
|
-
spans,
|
|
367
377
|
atomOf,
|
|
368
|
-
textIn
|
|
378
|
+
textIn,
|
|
379
|
+
writeContent
|
|
369
380
|
};
|
|
370
381
|
};
|
package/dist/crdt/doc/types.d.ts
CHANGED
|
@@ -91,16 +91,6 @@ export type EdytorDocConfig = {
|
|
|
91
91
|
* stay byte-identical to the unattributed schema.
|
|
92
92
|
*/
|
|
93
93
|
actor?: () => AttributionActor | undefined;
|
|
94
|
-
/**
|
|
95
|
-
* Opt-in per-block lineage depth (`attribution.history`). `> 0` captures
|
|
96
|
-
* a subtree checkpoint just before a write displaces the block's current
|
|
97
|
-
* `lastChangedBy` owner — handoffs, deletes, and undo/redo touches —
|
|
98
|
-
* ring-trimmed to this many entries on the block's `b/<id>` record.
|
|
99
|
-
* `0`/absent disables the feature entirely: no captures, no list items,
|
|
100
|
-
* byte-identical writes. Requires `actor` — unattributed facades never
|
|
101
|
-
* capture.
|
|
102
|
-
*/
|
|
103
|
-
lineageDepth?: number;
|
|
104
94
|
/**
|
|
105
95
|
* The document's `writable` guard — called at the write funnel;
|
|
106
96
|
* throws while the document is read-only, so an edit is refused rather
|
package/dist/crdt/document.d.ts
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* owns: `destroy()` releases the document-created services but never
|
|
29
29
|
* `doc.destroy()`s the borrowed doc (borrowing grants no destruction
|
|
30
30
|
* authority). The same rule applies to an injected
|
|
31
|
-
* `awareness` (the `
|
|
31
|
+
* `awareness` (the `#ownsAwareness` convention already used by
|
|
32
32
|
* `IndexeddbPersistence`).
|
|
33
33
|
*
|
|
34
34
|
* ── Readiness ──────────────────────────────────────────────────────────
|
|
@@ -98,8 +98,8 @@
|
|
|
98
98
|
*
|
|
99
99
|
* ── History ────────────────────────────────────────────────────────────
|
|
100
100
|
*
|
|
101
|
-
* One registry-scoped
|
|
102
|
-
* supported seam). Capture is gated by TWO live checks, both consulted
|
|
101
|
+
* One registry-scoped undo manager per document (`doc/history.ts`, the
|
|
102
|
+
* facade's supported seam). Capture is gated by TWO live checks, both consulted
|
|
103
103
|
* on every committing transaction:
|
|
104
104
|
*
|
|
105
105
|
* - `trackedOrigins` — a LIVE per-document set checked by identity: the
|
|
@@ -136,15 +136,15 @@
|
|
|
136
136
|
* History is lazy: it attaches at `sync()`, or on first `history` access
|
|
137
137
|
* once the doc is initialized — it NEVER initializes content itself, so
|
|
138
138
|
* bootstrap/hydration writes all predate capture and are naturally
|
|
139
|
-
* excluded.
|
|
140
|
-
*
|
|
141
|
-
*
|
|
139
|
+
* excluded. The undo stack keeps `history.limit` steps; drop them all
|
|
140
|
+
* via {@link clearHistory} / `history.clear()`, and tune the merge window
|
|
141
|
+
* via `history.captureTimeout`.
|
|
142
142
|
*/
|
|
143
143
|
import type { MarkEdge } from './text/marks.js';
|
|
144
|
-
import type { EngineApi, YDoc, YUndoManager } from './engine-api.js';
|
|
144
|
+
import type { EngineApi, EngineDoc, YDoc, YUndoManager } from './engine-api.js';
|
|
145
145
|
import { type DocumentOperations } from './operations.js';
|
|
146
146
|
import { type AttributionBinding, type DocumentAttribution } from './attribution/index.js';
|
|
147
|
-
import { type BlockRole, type
|
|
147
|
+
import { type BlockRole, type DocFacade, type EdytorDocConfig } from './edytor-doc.js';
|
|
148
148
|
import { Awareness } from './protocols/awareness.js';
|
|
149
149
|
import type { EdytorSync, EdytorSyncCleanup } from './providers/index.js';
|
|
150
150
|
import { SyncRefusedError } from './providers/room.js';
|
|
@@ -220,19 +220,6 @@ export type DocumentOptions = {
|
|
|
220
220
|
captureTimeout?: number;
|
|
221
221
|
limit?: number;
|
|
222
222
|
};
|
|
223
|
-
/**
|
|
224
|
-
* Opt-in per-block lineage ring — `depth > 0` captures a subtree
|
|
225
|
-
* snapshot just before an edit displaces a block's current
|
|
226
|
-
* `lastChangedBy` owner (handoffs, deletes, undo/redo touches),
|
|
227
|
-
* ring-trimmed to this many entries per block. `0`/absent disables
|
|
228
|
-
* the feature: no captures, byte-identical writes. Read via
|
|
229
|
-
* {@link DocumentAttribution.history}. Must be a finite non-negative
|
|
230
|
-
* integer — `NaN`/`Infinity`/fractional/negative values raise
|
|
231
|
-
* `RangeError` at creation (an unbounded ring is worse than no ring).
|
|
232
|
-
*/
|
|
233
|
-
lineage?: {
|
|
234
|
-
depth?: number;
|
|
235
|
-
};
|
|
236
223
|
/**
|
|
237
224
|
* Decide an EMPTY document only from a provider that synced: the
|
|
238
225
|
* room answered, or a local store hydrated. A provider's bound or
|
|
@@ -285,7 +272,7 @@ export declare class DocumentDestroyedError extends Error {
|
|
|
285
272
|
*
|
|
286
273
|
* `sync()` is the only transition out of `pending`, and it is the
|
|
287
274
|
* document-side admission re-check: a doc that arrived in a problem
|
|
288
|
-
* state (unversioned/unsupported/foreign
|
|
275
|
+
* state (unversioned/unsupported/foreign — e.g. via raw
|
|
289
276
|
* `applyUpdate` bypass writes) refuses there with a typed error, stays
|
|
290
277
|
* `pending`, and preserves the state — never silently becoming `local`.
|
|
291
278
|
*/
|
|
@@ -304,8 +291,8 @@ export type EdytorDocumentInit = {
|
|
|
304
291
|
doc: YDoc;
|
|
305
292
|
/** Whether `destroy()` may `doc.destroy()` — true only for document-allocated docs. */
|
|
306
293
|
ownsDoc: boolean;
|
|
307
|
-
/** The
|
|
308
|
-
|
|
294
|
+
/** The facade factory this document composes (injected by `bindDocument`). */
|
|
295
|
+
facade: (doc: EngineDoc, config: EdytorDocConfig) => DocFacade;
|
|
309
296
|
/** The bound attribution service (injected by `bindDocument`). */
|
|
310
297
|
attribution: AttributionBinding;
|
|
311
298
|
/** The engine this document's doc belongs to (for `encode`). */
|
|
@@ -319,9 +306,6 @@ export type EdytorDocumentInit = {
|
|
|
319
306
|
captureTimeout?: number;
|
|
320
307
|
limit?: number;
|
|
321
308
|
};
|
|
322
|
-
lineage?: {
|
|
323
|
-
depth?: number;
|
|
324
|
-
};
|
|
325
309
|
requireHydration?: boolean;
|
|
326
310
|
};
|
|
327
311
|
/**
|
|
@@ -330,12 +314,13 @@ export type EdytorDocumentInit = {
|
|
|
330
314
|
*/
|
|
331
315
|
/**
|
|
332
316
|
* The document's operations and reads are its own members
|
|
333
|
-
* (`document.
|
|
317
|
+
* (`document.insertBlocks(…)`, `document.toJSON()`): see `DocumentOperations`.
|
|
334
318
|
* `transact` is the document's (its local origin by default).
|
|
335
319
|
*/
|
|
336
320
|
export interface EdytorDocument extends Omit<DocumentOperations, 'transact'> {
|
|
337
321
|
}
|
|
338
322
|
export declare class EdytorDocument {
|
|
323
|
+
#private;
|
|
339
324
|
/** The underlying engine doc — raw reads/providers borrow it; they never own it. */
|
|
340
325
|
readonly doc: YDoc;
|
|
341
326
|
/** One shared awareness instance for every view/provider of this document. */
|
|
@@ -343,10 +328,9 @@ export declare class EdytorDocument {
|
|
|
343
328
|
/** The local actor identity (anonymous opaque id when none was supplied). */
|
|
344
329
|
readonly actor: DocumentActor;
|
|
345
330
|
/**
|
|
346
|
-
* The attribution surface — compact per-block records
|
|
347
|
-
* replicated actor dictionary (`u/` profiles, `c/` replica bindings)
|
|
348
|
-
*
|
|
349
|
-
* written by earlier builds. Ordinary edits perform no attribution
|
|
331
|
+
* The attribution surface — compact per-block records and the
|
|
332
|
+
* replicated actor dictionary (`u/` profiles, `c/` replica bindings).
|
|
333
|
+
* Ordinary edits perform no attribution
|
|
350
334
|
* writes — authorship lands inside the owning op's transaction as the
|
|
351
335
|
* block-level `b/<id>` record/`l` stamp. See
|
|
352
336
|
* `src/lib/crdt/attribution/attribution.ts` for the full contract.
|
|
@@ -354,7 +338,7 @@ export declare class EdytorDocument {
|
|
|
354
338
|
* lifecycle contract as {@link history}.
|
|
355
339
|
*
|
|
356
340
|
* Reads are pull-model: record arrivals emit no attribution-specific
|
|
357
|
-
* change event — every fresh `block()`/`actors
|
|
341
|
+
* change event — every fresh `block()`/`actors` call reads
|
|
358
342
|
* current replicated state.
|
|
359
343
|
*/
|
|
360
344
|
get attribution(): DocumentAttribution;
|
|
@@ -366,69 +350,9 @@ export declare class EdytorDocument {
|
|
|
366
350
|
* distinction.)
|
|
367
351
|
*/
|
|
368
352
|
readonly transaction: TRANSACTION;
|
|
369
|
-
/**
|
|
370
|
-
* The live `trackedOrigins` set handed to the undo manager — checked
|
|
371
|
-
* live by the engine on every transaction, so origins may be added any
|
|
372
|
-
* time before/after history attaches. Contents:
|
|
373
|
-
* - `this.transaction` — the document's own headless local-edit origin;
|
|
374
|
-
* - `null` — untyped LOCAL transactions (direct `document.facade.<op>`
|
|
375
|
-
* calls outside `document.transact`, raw `doc.transact(fn)` writes).
|
|
376
|
-
* `null` can no longer admit remote state: `captureTransaction`
|
|
377
|
-
* rejects every non-local commit before origins are even consulted —
|
|
378
|
-
* keeping it preserves the documented headless-edit contract while
|
|
379
|
-
* remote exclusion is enforced by `transaction.local`, not by origin
|
|
380
|
-
* hygiene;
|
|
381
|
-
* - each attached view's `TRANSACTION` instance (via {@link trackOrigin}).
|
|
382
|
-
*
|
|
383
|
-
* Origins are tracked by IDENTITY, not class: a view's edits are only
|
|
384
|
-
* undoable through the document(s) it registered on — every view bound
|
|
385
|
-
* to ONE document shares its history. Views release their origin via
|
|
386
|
-
* {@link untrackOrigin} at teardown: already-captured stack items stay
|
|
387
|
-
* (their commits remain undoable), only FUTURE commits from the dead
|
|
388
|
-
* origin stop capturing.
|
|
389
|
-
*/
|
|
390
|
-
private readonly _trackedOrigins;
|
|
391
|
-
private readonly _engine;
|
|
392
|
-
private readonly _ownsDoc;
|
|
393
|
-
private readonly _ownsAwareness;
|
|
394
|
-
private _history;
|
|
395
|
-
private readonly _attributionCtl;
|
|
396
|
-
/**
|
|
397
|
-
* `true` when the attached manager was destroyed by something other
|
|
398
|
-
* than this document — its `destroy()` is a public engine surface, so
|
|
399
|
-
* an external caller can kill it while the document lives. The getter
|
|
400
|
-
* reattaches a fresh manager rather than handing back the corpse.
|
|
401
|
-
*/
|
|
402
|
-
private _readiness;
|
|
403
353
|
private _destroyed;
|
|
404
|
-
/**
|
|
405
|
-
* Attach references — every `createDocument`/`loadDocument`/
|
|
406
|
-
* `attachDocument` grants ONE; each {@link retain} grants one more.
|
|
407
|
-
* `destroy()` and a `retain()` release each consume exactly ONE
|
|
408
|
-
* reference; the document tears down only when the last release
|
|
409
|
-
* lands (deduplicated `attachDocument` shares this instance across
|
|
410
|
-
* callers/views).
|
|
411
|
-
*/
|
|
412
|
-
private _refs;
|
|
413
|
-
/** The adopted capability tables: per kind, the first declaration. */
|
|
414
|
-
private readonly _capability;
|
|
415
|
-
private _defaultType;
|
|
416
|
-
private readonly _historyOptions;
|
|
417
|
-
private readonly _lineageDepth;
|
|
418
354
|
/** {@link DocumentOptions.requireHydration}: an empty document waits for a provider's `synced`. */
|
|
419
355
|
readonly requireHydration: boolean;
|
|
420
|
-
/** Attached providers keyed by transport target: one per target. */
|
|
421
|
-
private _providers;
|
|
422
|
-
private _pendingSyncs;
|
|
423
|
-
private _healOff;
|
|
424
|
-
private _readyListeners;
|
|
425
|
-
/**
|
|
426
|
-
* DEV: publish the digest of this document's roles in its presence
|
|
427
|
-
* (`semantics`, {@link semanticsDigest}), so a room reading other roles
|
|
428
|
-
* logs the kinds they differ on (`semanticsMismatch`). Re-published at
|
|
429
|
-
* each adoption; a production build advertises nothing.
|
|
430
|
-
*/
|
|
431
|
-
private _advertise;
|
|
432
356
|
/** The replica id (`doc.clientID`) — identifies the replica, not the actor. */
|
|
433
357
|
get clientID(): number;
|
|
434
358
|
/**
|
|
@@ -496,20 +420,13 @@ export declare class EdytorDocument {
|
|
|
496
420
|
* - `rendersContent` and `defaultChild` entries follow the same rule;
|
|
497
421
|
* - `defaultType` must match the document's when supplied.
|
|
498
422
|
*
|
|
499
|
-
* Atomic: everything validates before anything is adopted
|
|
423
|
+
* Atomic: everything validates before anything is adopted (the merge is
|
|
424
|
+
* `mergeSemantics`'s).
|
|
500
425
|
*
|
|
501
426
|
* Contributions are document-lifetime: they survive the contributing
|
|
502
427
|
* view's teardown, so sibling views keep the same structural rules.
|
|
503
428
|
*/
|
|
504
429
|
adoptSemantics: (config: DocumentSemanticsConfig) => void;
|
|
505
|
-
/**
|
|
506
|
-
* DEV: `layout` needs a default child (its item kind); `lines` needs an
|
|
507
|
-
* island with a default child (its line kind), and
|
|
508
|
-
* the line kind belongs to it — outside such an island a block of that
|
|
509
|
-
* kind shows as its parent's default child, so a kind other blocks use
|
|
510
|
-
* (the default type, another kind's default child) would be recast.
|
|
511
|
-
*/
|
|
512
|
-
private _warnLines;
|
|
513
430
|
/**
|
|
514
431
|
* The readiness transition — decide the document's content state. This
|
|
515
432
|
* is the document-side admission re-check ({@link assertAdmission} —
|
|
@@ -521,7 +438,7 @@ export declare class EdytorDocument {
|
|
|
521
438
|
* - `'initialized'` verdict (provider-hydrated, or a loaded restore) →
|
|
522
439
|
* the schema was just asserted; content is left alone;
|
|
523
440
|
* - a doc in a problem state (unversioned/unsupported/foreign schema
|
|
524
|
-
* claim
|
|
441
|
+
* claim — possible via raw `applyUpdate` writes that
|
|
525
442
|
* bypass the transport gate) REFUSES readiness: the typed error
|
|
526
443
|
* propagates, the document stays `pending`, and the doc's state is
|
|
527
444
|
* preserved. Retrying after the state heals (e.g. a remote update
|
|
@@ -536,7 +453,7 @@ export declare class EdytorDocument {
|
|
|
536
453
|
*/
|
|
537
454
|
sync: (value?: JSONDoc) => void;
|
|
538
455
|
/**
|
|
539
|
-
* The default local history (registry-scoped
|
|
456
|
+
* The default local history (the registry-scoped undo manager —
|
|
540
457
|
* `undo`/`redo`/`stopCapturing`/stacks). Lazy: attaches at `sync()`,
|
|
541
458
|
* or on first access once the document is decided — it NEVER seeds
|
|
542
459
|
* content itself (accessing it on a pending doc throws
|
|
@@ -563,7 +480,6 @@ export declare class EdytorDocument {
|
|
|
563
480
|
* throw — a dead document has already dropped its manager anyway).
|
|
564
481
|
*/
|
|
565
482
|
untrackOrigin: (origin: unknown) => void;
|
|
566
|
-
private _attachHistory;
|
|
567
483
|
/**
|
|
568
484
|
* Drop the undo/redo stacks. The undo stack already keeps only its
|
|
569
485
|
* newest `history.limit` steps; call this where undo no longer makes
|
|
@@ -593,9 +509,6 @@ export declare class EdytorDocument {
|
|
|
593
509
|
* bound. An editable view decides a pending document only when none is.
|
|
594
510
|
*/
|
|
595
511
|
get syncPending(): boolean;
|
|
596
|
-
/** The standing refusal of each attached target that reported one, oldest first. */
|
|
597
|
-
private _refusals;
|
|
598
|
-
private _refusalListeners;
|
|
599
512
|
/**
|
|
600
513
|
* The server's refusal of a provider (a `1008`/`4xxx` close — see
|
|
601
514
|
* `SyncRefusedError`), the latest still standing: that provider
|
|
@@ -680,8 +593,6 @@ export declare class EdytorDocument {
|
|
|
680
593
|
* grants no destruction authority). Post-teardown calls are a no-op.
|
|
681
594
|
*/
|
|
682
595
|
destroy: () => void;
|
|
683
|
-
/** Shared reference release — `destroy()` and `retain()` closures land here. */
|
|
684
|
-
private _releaseReference;
|
|
685
596
|
}
|
|
686
597
|
export type DocumentBinding = ReturnType<typeof bindDocument>;
|
|
687
598
|
/**
|
|
@@ -706,9 +617,8 @@ export declare const bindDocument: (Y: EngineApi) => {
|
|
|
706
617
|
* state). Staged admission: the payload is
|
|
707
618
|
* decoded+integrated onto a SCRATCH doc and the document admission
|
|
708
619
|
* gate runs on the merged result — a corrupt payload
|
|
709
|
-
* ({@link UndecodableUpdateError}
|
|
710
|
-
* ({@link
|
|
711
|
-
* schema claim this build cannot own ({@link SchemaMismatchError})
|
|
620
|
+
* ({@link UndecodableUpdateError}, a v13 document's bytes among
|
|
621
|
+
* them), or a schema claim this build cannot own ({@link SchemaMismatchError})
|
|
712
622
|
* refuses BEFORE the facade/history/awareness ever compose, and
|
|
713
623
|
* the caller's bytes are never touched. Only then does `sync()`
|
|
714
624
|
* complete readiness (history attaches after the restored schema
|
|
@@ -724,8 +634,7 @@ export declare const bindDocument: (Y: EngineApi) => {
|
|
|
724
634
|
* provider path) drives `sync()`.
|
|
725
635
|
*
|
|
726
636
|
* Admission runs BEFORE any composition touches the doc: a
|
|
727
|
-
* foreign engine object
|
|
728
|
-
* refuses with {@link UnsupportedDocError}, an
|
|
637
|
+
* foreign engine object refuses with {@link UnsupportedDocError}, an
|
|
729
638
|
* unversioned/unsupported/foreign schema claim with
|
|
730
639
|
* {@link SchemaMismatchError} — the borrowed doc is left
|
|
731
640
|
* byte-identical (the gate reads are write-free) and can be
|