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
|
@@ -8,132 +8,48 @@
|
|
|
8
8
|
import { createHighlighter } from '@tanstack/highlight/core';
|
|
9
9
|
import { jsx } from '@tanstack/highlight/languages/jsx';
|
|
10
10
|
import { SvelteMap } from 'svelte/reactivity';
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
/** The grammars more than one language loads. */
|
|
12
|
+
const css = () => import('@tanstack/highlight/languages/css');
|
|
13
|
+
const ts = () => import('@tanstack/highlight/languages/ts');
|
|
14
|
+
const html = () => import('@tanstack/highlight/languages/html');
|
|
15
|
+
const scripts = () => Promise.all([css(), import('@tanstack/highlight/languages/js'), ts()]).then(([{ css }, { js }, { ts }]) => [css, js, ts]);
|
|
16
|
+
/**
|
|
17
|
+
* A listed language: its lines are tokenized with `grammar` (its id unless
|
|
18
|
+
* named), the definition the module `load` imports exports by that name; a
|
|
19
|
+
* markup grammar (`embeds`) also loads the style and script grammars it embeds.
|
|
20
|
+
*/
|
|
21
|
+
const language = (id, label, load, grammar = id, embeds = false) => ({
|
|
22
|
+
id,
|
|
23
|
+
label,
|
|
24
|
+
grammar,
|
|
25
|
+
load: () => Promise.all([load(), embeds ? scripts() : []]).then(([module, embedded]) => [
|
|
26
|
+
module[grammar],
|
|
27
|
+
...embedded
|
|
28
|
+
])
|
|
29
|
+
});
|
|
19
30
|
/** The default languages, after Notion's list, sorted by label (Plain text first). */
|
|
20
31
|
export const CODE_LANGUAGES = [
|
|
21
32
|
{ id: 'plaintext', label: 'Plain text' },
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
id: 'cpp',
|
|
30
|
-
label: 'C++',
|
|
31
|
-
grammar: 'cpp',
|
|
32
|
-
load: () => import('@tanstack/highlight/languages/cpp').then((m) => [m.cpp])
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
id: 'css',
|
|
36
|
-
label: 'CSS',
|
|
37
|
-
grammar: 'css',
|
|
38
|
-
load: () => import('@tanstack/highlight/languages/css').then((m) => [m.css])
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
id: 'diff',
|
|
42
|
-
label: 'Diff',
|
|
43
|
-
grammar: 'diff',
|
|
44
|
-
load: () => import('@tanstack/highlight/languages/diff').then((m) => [m.diff])
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
id: 'docker',
|
|
48
|
-
label: 'Docker',
|
|
49
|
-
grammar: 'dockerfile',
|
|
50
|
-
load: () => import('@tanstack/highlight/languages/dockerfile').then((m) => [m.dockerfile])
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
id: 'go',
|
|
54
|
-
label: 'Go',
|
|
55
|
-
grammar: 'go',
|
|
56
|
-
load: () => import('@tanstack/highlight/languages/go').then((m) => [m.go])
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
id: 'html',
|
|
60
|
-
label: 'HTML',
|
|
61
|
-
grammar: 'html',
|
|
62
|
-
load: markup(() => import('@tanstack/highlight/languages/html').then((m) => m.html))
|
|
63
|
-
},
|
|
33
|
+
language('bash', 'Bash', () => import('@tanstack/highlight/languages/shell'), 'shell'),
|
|
34
|
+
language('cpp', 'C++', () => import('@tanstack/highlight/languages/cpp')),
|
|
35
|
+
language('css', 'CSS', css),
|
|
36
|
+
language('diff', 'Diff', () => import('@tanstack/highlight/languages/diff')),
|
|
37
|
+
language('docker', 'Docker', () => import('@tanstack/highlight/languages/dockerfile'), 'dockerfile'),
|
|
38
|
+
language('go', 'Go', () => import('@tanstack/highlight/languages/go')),
|
|
39
|
+
language('html', 'HTML', html, 'html', true),
|
|
64
40
|
{ id: 'javascript', label: 'JavaScript', grammar: 'jsx', load: async () => [jsx] },
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
{
|
|
78
|
-
id: 'mermaid',
|
|
79
|
-
label: 'Mermaid',
|
|
80
|
-
grammar: 'mermaid',
|
|
81
|
-
load: () => import('@tanstack/highlight/languages/mermaid').then((m) => [m.mermaid])
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
id: 'php',
|
|
85
|
-
label: 'PHP',
|
|
86
|
-
grammar: 'php',
|
|
87
|
-
load: () => import('@tanstack/highlight/languages/php').then((m) => [m.php])
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
id: 'python',
|
|
91
|
-
label: 'Python',
|
|
92
|
-
grammar: 'python',
|
|
93
|
-
load: () => import('@tanstack/highlight/languages/python').then((m) => [m.python])
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
id: 'sql',
|
|
97
|
-
label: 'SQL',
|
|
98
|
-
grammar: 'sql',
|
|
99
|
-
load: () => import('@tanstack/highlight/languages/sql').then((m) => [m.sql])
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
id: 'svelte',
|
|
103
|
-
label: 'Svelte',
|
|
104
|
-
grammar: 'svelte',
|
|
105
|
-
load: markup(() => import('@tanstack/highlight/languages/svelte').then((m) => m.svelte))
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
id: 'toml',
|
|
109
|
-
label: 'TOML',
|
|
110
|
-
grammar: 'toml',
|
|
111
|
-
load: () => import('@tanstack/highlight/languages/toml').then((m) => [m.toml])
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
id: 'typescript',
|
|
115
|
-
label: 'TypeScript',
|
|
116
|
-
grammar: 'ts',
|
|
117
|
-
load: () => import('@tanstack/highlight/languages/ts').then((m) => [m.ts])
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
id: 'vue',
|
|
121
|
-
label: 'Vue',
|
|
122
|
-
grammar: 'vue',
|
|
123
|
-
load: markup(() => import('@tanstack/highlight/languages/vue').then((m) => m.vue))
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
id: 'xml',
|
|
127
|
-
label: 'XML',
|
|
128
|
-
grammar: 'html',
|
|
129
|
-
load: () => import('@tanstack/highlight/languages/html').then((m) => [m.html])
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
id: 'yaml',
|
|
133
|
-
label: 'YAML',
|
|
134
|
-
grammar: 'yaml',
|
|
135
|
-
load: () => import('@tanstack/highlight/languages/yaml').then((m) => [m.yaml])
|
|
136
|
-
}
|
|
41
|
+
language('json', 'JSON', () => import('@tanstack/highlight/languages/json')),
|
|
42
|
+
language('markdown', 'Markdown', () => import('@tanstack/highlight/languages/markdown')),
|
|
43
|
+
language('mermaid', 'Mermaid', () => import('@tanstack/highlight/languages/mermaid')),
|
|
44
|
+
language('php', 'PHP', () => import('@tanstack/highlight/languages/php')),
|
|
45
|
+
language('python', 'Python', () => import('@tanstack/highlight/languages/python')),
|
|
46
|
+
language('sql', 'SQL', () => import('@tanstack/highlight/languages/sql')),
|
|
47
|
+
language('svelte', 'Svelte', () => import('@tanstack/highlight/languages/svelte'), 'svelte', true),
|
|
48
|
+
language('toml', 'TOML', () => import('@tanstack/highlight/languages/toml')),
|
|
49
|
+
language('typescript', 'TypeScript', ts, 'ts'),
|
|
50
|
+
language('vue', 'Vue', () => import('@tanstack/highlight/languages/vue'), 'vue', true),
|
|
51
|
+
language('xml', 'XML', html, 'html'),
|
|
52
|
+
language('yaml', 'YAML', () => import('@tanstack/highlight/languages/yaml'))
|
|
137
53
|
];
|
|
138
54
|
/**
|
|
139
55
|
* The grammars loaded so far, by name, shared by every editor (a grammar is
|
|
@@ -181,12 +97,7 @@ export const tokenizeCode = (code, language) => {
|
|
|
181
97
|
};
|
|
182
98
|
export const DEFAULT_CODE_SETTINGS = {
|
|
183
99
|
languages: CODE_LANGUAGES,
|
|
184
|
-
defaultLanguage: 'javascript'
|
|
185
|
-
labels: englishLabels.code
|
|
100
|
+
defaultLanguage: 'javascript'
|
|
186
101
|
};
|
|
187
|
-
/** A language's label as shown: the labels' `languages` entry for its id, else its own. */
|
|
188
|
-
export const languageLabel = (language, { labels }) => labels.languages[language.id] ?? language.label;
|
|
189
|
-
/** Each view's code options, for its code blocks' header (which reads them through its view). */
|
|
190
|
-
export const codeSettings = new WeakMap();
|
|
191
102
|
/** A code block's language id: its `data.language`, else the default. */
|
|
192
103
|
export const languageOf = (data, { defaultLanguage }) => (typeof data?.language === 'string' && data.language ? data.language : defaultLanguage);
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import type { ColumnResize } from './resize.svelte.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* The resize bands of the hovered layout and the guide of a drag
|
|
6
|
-
* (`ColumnResize`), in the overlay: each band
|
|
7
|
-
* the block handles (their `+` and grip
|
|
6
|
+
* (`ColumnResize`), in the overlay: each band centered in its gap, above
|
|
7
|
+
* the block handles (their `+` and grip flush with the
|
|
8
|
+
* column, `gaps.ts`);
|
|
8
9
|
* hovered, it shows a gray guide in its middle: where the guide shows, a
|
|
9
10
|
* press resizes. A band is a focusable separator: its arrows resize
|
|
10
11
|
* (`resize.key`), focused it shows its guide in the resize color.
|
|
@@ -13,7 +14,7 @@
|
|
|
13
14
|
|
|
14
15
|
// The view turning readonly mid-drag drops the preview at once (round 4).
|
|
15
16
|
$effect(() => {
|
|
16
|
-
if (resize.readonly) resize.lock();
|
|
17
|
+
if (resize.readonly) resize.band.lock();
|
|
17
18
|
});
|
|
18
19
|
</script>
|
|
19
20
|
|
|
@@ -39,11 +40,9 @@
|
|
|
39
40
|
style:width="{strip.width}px"
|
|
40
41
|
style:height="{strip.height}px"
|
|
41
42
|
style:cursor="col-resize"
|
|
42
|
-
|
|
43
|
-
data-
|
|
44
|
-
|
|
45
|
-
onpointerdown={(event) => resize.start(event, strip)}
|
|
46
|
-
onmousedown={(event) => resize.mousedown(event, strip)}
|
|
43
|
+
data-dragging={resize.band.drag ? 'true' : undefined}
|
|
44
|
+
data-selecting={resize.band.selecting ? 'true' : undefined}
|
|
45
|
+
{@attach resize.band.press((event) => resize.start(event, strip))}
|
|
47
46
|
onkeydown={(event) => resize.key(event, strip)}
|
|
48
47
|
onfocus={() => resize.focus(strip, true)}
|
|
49
48
|
onblur={() => resize.focus(strip, false)}
|
|
@@ -72,38 +71,28 @@
|
|
|
72
71
|
pointer-events: none;
|
|
73
72
|
}
|
|
74
73
|
|
|
75
|
-
/*
|
|
74
|
+
/* The hover guide: a 2px rule in the band's middle, shown on hover (not while
|
|
75
|
+
* it drags) and on a keyboard focus. Painted by a theme (`edytor/themes/notion.css`). */
|
|
76
76
|
[data-edytor-column-resize]::after {
|
|
77
77
|
content: '';
|
|
78
78
|
position: absolute;
|
|
79
79
|
top: 0;
|
|
80
80
|
bottom: 0;
|
|
81
|
-
left: calc(50% -
|
|
82
|
-
width:
|
|
83
|
-
background: var(--edytor-columns-resize-color, rgba(55, 53, 47, 0.16));
|
|
84
|
-
opacity: 0;
|
|
81
|
+
left: calc(50% - 1px);
|
|
82
|
+
width: 2px;
|
|
85
83
|
pointer-events: none;
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
[data-edytor-column-resize]:hover:not([data-dragging='true'])::after {
|
|
90
|
-
opacity: 1;
|
|
84
|
+
visibility: hidden;
|
|
91
85
|
}
|
|
92
86
|
|
|
93
|
-
|
|
94
|
-
[data-edytor-column-resize]:focus-visible {
|
|
95
|
-
outline: none;
|
|
96
|
-
}
|
|
87
|
+
[data-edytor-column-resize]:hover:not([data-dragging='true'])::after,
|
|
97
88
|
[data-edytor-column-resize]:focus-visible::after {
|
|
98
|
-
|
|
99
|
-
background: var(--edytor-column-resize-color, rgba(35, 131, 226, 0.43));
|
|
89
|
+
visibility: visible;
|
|
100
90
|
}
|
|
101
91
|
|
|
102
|
-
/*
|
|
92
|
+
/* The resize line where the gap will be, while a band drags. */
|
|
103
93
|
[data-edytor-column-resize-guide] {
|
|
104
94
|
position: absolute;
|
|
105
95
|
width: 2px;
|
|
106
|
-
background: var(--edytor-column-resize-color, rgba(35, 131, 226, 0.43));
|
|
107
96
|
pointer-events: none;
|
|
108
97
|
}
|
|
109
98
|
</style>
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
} from '../../selection/replaceSelection.js';
|
|
12
12
|
import ColumnResizeStrips from './ColumnResize.svelte';
|
|
13
13
|
import { ColumnResize, weightOf } from './resize.svelte.js';
|
|
14
|
-
import {
|
|
14
|
+
import { hoverChrome } from '../bands.svelte.js';
|
|
15
|
+
import { all, listen } from '../../utils/listen.js';
|
|
16
|
+
import { columnsEnglish, keywordsOf, labelsOf } from '../../labels.js';
|
|
15
17
|
|
|
16
18
|
export type ColumnsPluginOptions = {
|
|
17
19
|
/**
|
|
@@ -19,20 +21,8 @@
|
|
|
19
21
|
* width (default `0.1`). View-only: the document stores weights.
|
|
20
22
|
*/
|
|
21
23
|
minWidth?: number;
|
|
22
|
-
/** The words the layout commands and the resize bands say, over the English ones. */
|
|
23
|
-
labels?: PartialLabels<'columns'>;
|
|
24
|
-
/**
|
|
25
|
-
* The slash menu's keywords of a layout command, by id (`columns.2` to
|
|
26
|
-
* `columns.5`), which replace its own.
|
|
27
|
-
*/
|
|
28
|
-
keywords?: Partial<Record<string, string[]>>;
|
|
29
24
|
};
|
|
30
25
|
|
|
31
|
-
const columnsPlugins = new WeakSet<Plugin>();
|
|
32
|
-
|
|
33
|
-
/** Recognize any columns plugin instance (the component's default yields to yours). */
|
|
34
|
-
export const isColumnsPlugin = (plugin: Plugin) => columnsPlugins.has(plugin);
|
|
35
|
-
|
|
36
26
|
/** A weight read back from HTML (`data-width`), when it is one. */
|
|
37
27
|
const parsedWidth = (element: HTMLElement): Record<string, number> => {
|
|
38
28
|
const width = Number(element.getAttribute('data-width'));
|
|
@@ -51,19 +41,22 @@
|
|
|
51
41
|
};
|
|
52
42
|
|
|
53
43
|
/** The kind row of a layout of `n` columns, each holding one empty block of the column's default kind. */
|
|
54
|
-
const layoutRow = (edytor: Edytor, n: number
|
|
44
|
+
const layoutRow = (edytor: Edytor, n: number): KindRow => {
|
|
55
45
|
const kid = edytor.document.defaultChild('column');
|
|
56
46
|
const id = `columns.${n}`;
|
|
57
47
|
return {
|
|
58
48
|
id,
|
|
59
|
-
label:
|
|
49
|
+
label: labelsOf(edytor, 'columns', columnsEnglish).columns(n),
|
|
60
50
|
group: 'Layout',
|
|
61
51
|
// Notion's `/col3`, `/columns3` and `/column 3` too (query words match in order).
|
|
62
|
-
keywords: keywordsOf(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
52
|
+
keywords: keywordsOf(edytor, id, [
|
|
53
|
+
'columns',
|
|
54
|
+
'layout',
|
|
55
|
+
'side by side',
|
|
56
|
+
`col${n}`,
|
|
57
|
+
`columns${n}`,
|
|
58
|
+
`column ${n}`
|
|
59
|
+
]),
|
|
67
60
|
value: {
|
|
68
61
|
type: 'columns',
|
|
69
62
|
data: {},
|
|
@@ -88,12 +81,8 @@
|
|
|
88
81
|
* block column 1 of `n`, each other column holding an empty paragraph
|
|
89
82
|
* (`wrapBlocks`, `layout.wrap`, Notion); the blocks stay selected.
|
|
90
83
|
*/
|
|
91
|
-
const layoutCommand = (
|
|
92
|
-
edytor
|
|
93
|
-
n: number,
|
|
94
|
-
options: ColumnsPluginOptions
|
|
95
|
-
): EditorCommand => {
|
|
96
|
-
const { id, label, group, keywords } = layoutRow(edytor, n, options);
|
|
84
|
+
const layoutCommand = (edytor: Edytor, n: number): EditorCommand => {
|
|
85
|
+
const { id, label, group, keywords } = layoutRow(edytor, n);
|
|
97
86
|
return {
|
|
98
87
|
id,
|
|
99
88
|
label,
|
|
@@ -101,7 +90,7 @@
|
|
|
101
90
|
keywords,
|
|
102
91
|
// Asked of the view given (a `+`'s menu asks it of the block it adds).
|
|
103
92
|
isEnabled: (view = edytor) => {
|
|
104
|
-
const block = view.selection.
|
|
93
|
+
const block = view.selection.textRange().startText?.parent;
|
|
105
94
|
return Boolean(block?.convertible) && !inColumn(block);
|
|
106
95
|
},
|
|
107
96
|
// Turn into: one block, or `n` sibling blocks, in `n` columns (`layout.wrap`, Notion).
|
|
@@ -114,12 +103,12 @@
|
|
|
114
103
|
(selected.length === 1 || selected.length === n)
|
|
115
104
|
)
|
|
116
105
|
return wrapBlocks(edytor, selected, 'columns', n);
|
|
117
|
-
const block = edytor.selection.
|
|
106
|
+
const block = edytor.selection.textRange().startText?.parent;
|
|
118
107
|
if (inColumn(block)) {
|
|
119
108
|
edytor.dispatcher.record({ operation: 'setBlock', status: 'refused' });
|
|
120
109
|
return false;
|
|
121
110
|
}
|
|
122
|
-
return convertToKind(edytor, block, layoutRow(edytor, n
|
|
111
|
+
return convertToKind(edytor, block, layoutRow(edytor, n));
|
|
123
112
|
}
|
|
124
113
|
};
|
|
125
114
|
};
|
|
@@ -148,57 +137,40 @@
|
|
|
148
137
|
*/
|
|
149
138
|
export const createColumnsPlugin = (options: ColumnsPluginOptions = {}): Plugin => {
|
|
150
139
|
const plugin: Plugin = (edytor) => {
|
|
151
|
-
const resize = new ColumnResize(
|
|
152
|
-
edytor,
|
|
153
|
-
options.minWidth ?? 0.1,
|
|
154
|
-
labelsWith('columns', options.labels)
|
|
155
|
-
);
|
|
140
|
+
const resize = new ColumnResize(edytor, options.minWidth ?? 0.1);
|
|
156
141
|
return {
|
|
157
|
-
commands: [2, 3, 4, 5].map((n) => layoutCommand(edytor, n
|
|
142
|
+
commands: [2, 3, 4, 5].map((n) => layoutCommand(edytor, n)),
|
|
158
143
|
// The layout holding the caret shows its bands (the keyboard's way to them).
|
|
159
144
|
onSelectionChange: () => edytor.overlay.invalidate(),
|
|
160
145
|
// The resize bands: in the overlay, for the layout under the pointer.
|
|
161
146
|
onEdytorAttached: ({ node }) => {
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
'edytor-column-resizers',
|
|
188
|
-
// Above the block handles (5): the band is the gap's left part at every height.
|
|
189
|
-
6,
|
|
190
|
-
resize.measure
|
|
147
|
+
const off = all(
|
|
148
|
+
// The overlay (a band, a handle in a gap) keeps the bands while the pointer is on
|
|
149
|
+
// it; a block drag owns the pointer: no strip takes it meanwhile.
|
|
150
|
+
hoverChrome(
|
|
151
|
+
edytor,
|
|
152
|
+
node,
|
|
153
|
+
resize.hover,
|
|
154
|
+
resize.leave,
|
|
155
|
+
(event) => (resize.dragging = event.type === 'dragstart')
|
|
156
|
+
),
|
|
157
|
+
// A column block's handle in a gap stands for its block (the bands show over its layout).
|
|
158
|
+
listen(edytor.overlay.layer, 'pointerover', (event) => {
|
|
159
|
+
const id = (event.target as Element | null)?.closest?.<HTMLElement>(
|
|
160
|
+
'[data-edytor-block-handle-host][data-block-id]'
|
|
161
|
+
)?.dataset.blockId;
|
|
162
|
+
if (id) resize.hover(edytor.idToBlock.get(id)?.node ?? null);
|
|
163
|
+
}),
|
|
164
|
+
edytor.overlay.mount(
|
|
165
|
+
ColumnResizeStrips,
|
|
166
|
+
{ resize },
|
|
167
|
+
'edytor-column-resizers',
|
|
168
|
+
// Above the block handles (5): the band centered in the gap at every height.
|
|
169
|
+
6,
|
|
170
|
+
resize.measure
|
|
171
|
+
)
|
|
191
172
|
);
|
|
192
|
-
return
|
|
193
|
-
node.removeEventListener('pointerover', over);
|
|
194
|
-
node.removeEventListener('pointerleave', leave);
|
|
195
|
-
layer?.removeEventListener('pointerleave', leave);
|
|
196
|
-
layer?.removeEventListener('pointerover', overHandle);
|
|
197
|
-
document.removeEventListener('dragstart', drag, true);
|
|
198
|
-
document.removeEventListener('dragend', drag, true);
|
|
199
|
-
document.removeEventListener('drop', drag, true);
|
|
200
|
-
unmount();
|
|
201
|
-
};
|
|
173
|
+
return off;
|
|
202
174
|
},
|
|
203
175
|
blocks: {
|
|
204
176
|
columns: {
|
|
@@ -229,12 +201,8 @@
|
|
|
229
201
|
}
|
|
230
202
|
};
|
|
231
203
|
};
|
|
232
|
-
columnsPlugins.add(plugin);
|
|
233
204
|
return plugin;
|
|
234
205
|
};
|
|
235
|
-
|
|
236
|
-
/** Columns with the default options. */
|
|
237
|
-
export const columnsPlugin = createColumnsPlugin();
|
|
238
206
|
</script>
|
|
239
207
|
|
|
240
208
|
<!--
|
|
@@ -1,22 +1,12 @@
|
|
|
1
1
|
import './columns.css';
|
|
2
2
|
import type { Plugin } from '../../plugins.js';
|
|
3
|
-
import { type PartialLabels } from '../../labels.js';
|
|
4
3
|
export type ColumnsPluginOptions = {
|
|
5
4
|
/**
|
|
6
5
|
* The narrowest a column may be resized to, as a fraction of its layout's
|
|
7
6
|
* width (default `0.1`). View-only: the document stores weights.
|
|
8
7
|
*/
|
|
9
8
|
minWidth?: number;
|
|
10
|
-
/** The words the layout commands and the resize bands say, over the English ones. */
|
|
11
|
-
labels?: PartialLabels<'columns'>;
|
|
12
|
-
/**
|
|
13
|
-
* The slash menu's keywords of a layout command, by id (`columns.2` to
|
|
14
|
-
* `columns.5`), which replace its own.
|
|
15
|
-
*/
|
|
16
|
-
keywords?: Partial<Record<string, string[]>>;
|
|
17
9
|
};
|
|
18
|
-
/** Recognize any columns plugin instance (the component's default yields to yours). */
|
|
19
|
-
export declare const isColumnsPlugin: (plugin: Plugin) => boolean;
|
|
20
10
|
/**
|
|
21
11
|
* Notion's columns (docs/columns-plan.md): a `columns` layout shows its
|
|
22
12
|
* `column`s side by side, each holding any blocks; a column grows by its
|
|
@@ -26,8 +16,6 @@ export declare const isColumnsPlugin: (plugin: Plugin) => boolean;
|
|
|
26
16
|
* out and stacks them below a 480px wide layout.
|
|
27
17
|
*/
|
|
28
18
|
export declare const createColumnsPlugin: (options?: ColumnsPluginOptions) => Plugin;
|
|
29
|
-
/** Columns with the default options. */
|
|
30
|
-
export declare const columnsPlugin: Plugin;
|
|
31
19
|
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
32
20
|
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
33
21
|
$$bindings?: Bindings;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Columns
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* their indent is zeroed. Below a
|
|
2
|
+
* Columns: a layout lays its columns out side by side in its one children
|
|
3
|
+
* container, each column growing by its weight (`flex: <width> 1 0`, set on
|
|
4
|
+
* the column by the kind's element), with `--edytor-columns-gap` between
|
|
5
|
+
* them (the gap the resize bands and the handles share, `gaps.ts`).
|
|
6
|
+
* Neither container is a nesting step: their indent is zeroed. Below a
|
|
7
|
+
* 480px wide layout the columns stack. The look (a selected layout's
|
|
8
|
+
* highlight, the columns' edges) is a theme's.
|
|
7
9
|
*/
|
|
8
10
|
[data-edytor-block][data-edytor-columns] {
|
|
9
11
|
container-type: inline-size;
|
|
@@ -19,13 +21,6 @@
|
|
|
19
21
|
[data-edytor-block][data-edytor-column] > [data-edytor-children] {
|
|
20
22
|
padding-inline-start: 0;
|
|
21
23
|
}
|
|
22
|
-
/* A column's first and last blocks sit flush with the layout's edges. */
|
|
23
|
-
[data-edytor-column] > [data-edytor-children] > [data-edytor-block]:first-child {
|
|
24
|
-
margin-top: 0;
|
|
25
|
-
}
|
|
26
|
-
[data-edytor-column] > [data-edytor-children] > [data-edytor-block]:last-child {
|
|
27
|
-
margin-bottom: 0;
|
|
28
|
-
}
|
|
29
24
|
@container (max-width: 480px) {
|
|
30
25
|
[data-edytor-block][data-edytor-columns] > [data-edytor-children] {
|
|
31
26
|
flex-direction: column;
|
|
@@ -36,17 +31,3 @@
|
|
|
36
31
|
flex: 0 0 auto !important;
|
|
37
32
|
}
|
|
38
33
|
}
|
|
39
|
-
|
|
40
|
-
/*
|
|
41
|
-
* A block selection standing for the whole layout: one highlight over
|
|
42
|
-
* the layout, none on its blocks.
|
|
43
|
-
*/
|
|
44
|
-
[data-edytor-block][data-edytor-columns] > [data-edytor-children][data-edytor-columns-selected] {
|
|
45
|
-
border-radius: 4px;
|
|
46
|
-
background: var(--edytor-block-selection, rgba(35, 131, 226, 0.14));
|
|
47
|
-
}
|
|
48
|
-
[data-edytor-block][data-edytor-columns]
|
|
49
|
-
> [data-edytor-children][data-edytor-columns-selected]
|
|
50
|
-
[data-edytor-block] {
|
|
51
|
-
background: transparent;
|
|
52
|
-
}
|
|
@@ -19,11 +19,13 @@ export type Gap = {
|
|
|
19
19
|
*/
|
|
20
20
|
export declare const gapBefore: (column: Block) => Gap | null;
|
|
21
21
|
/**
|
|
22
|
-
* The resize band of `gap`:
|
|
23
|
-
*
|
|
24
|
-
* a column's block takes the
|
|
25
|
-
*
|
|
26
|
-
* (
|
|
22
|
+
* The resize band of `gap`: `BAND` px (the gap's width when narrower)
|
|
23
|
+
* centered in it, its guide on the gap's middle line (Notion's). The handle
|
|
24
|
+
* of a column's block takes the gap's right part (`handleSpan`): its box
|
|
25
|
+
* from the band to the block, its `+` and grip flush with the block
|
|
26
|
+
* (Notion's "+ ⋮⋮", over the band where the gap is narrower than they are).
|
|
27
|
+
* At the default 46px gap (`--edytor-columns-gap`): the band 18–28, the
|
|
28
|
+
* handle's box 28–46.
|
|
27
29
|
*/
|
|
28
30
|
export declare const bandOf: ({ left, right }: Gap) => {
|
|
29
31
|
left: number;
|
|
@@ -27,13 +27,18 @@ export const gapBefore = (column) => {
|
|
|
27
27
|
return null;
|
|
28
28
|
};
|
|
29
29
|
/**
|
|
30
|
-
* The resize band of `gap`:
|
|
31
|
-
*
|
|
32
|
-
* a column's block takes the
|
|
33
|
-
*
|
|
34
|
-
* (
|
|
30
|
+
* The resize band of `gap`: `BAND` px (the gap's width when narrower)
|
|
31
|
+
* centered in it, its guide on the gap's middle line (Notion's). The handle
|
|
32
|
+
* of a column's block takes the gap's right part (`handleSpan`): its box
|
|
33
|
+
* from the band to the block, its `+` and grip flush with the block
|
|
34
|
+
* (Notion's "+ ⋮⋮", over the band where the gap is narrower than they are).
|
|
35
|
+
* At the default 46px gap (`--edytor-columns-gap`): the band 18–28, the
|
|
36
|
+
* handle's box 28–46.
|
|
35
37
|
*/
|
|
36
|
-
export const bandOf = ({ left, right }) =>
|
|
38
|
+
export const bandOf = ({ left, right }) => {
|
|
39
|
+
const width = Math.min(BAND, right - left);
|
|
40
|
+
return { left: left + (right - left - width) / 2, width };
|
|
41
|
+
};
|
|
37
42
|
/** The width a column block's handle spans in `gap`: from the band's right edge to the block at `blockLeft`. */
|
|
38
43
|
export const handleSpan = (gap, blockLeft) => {
|
|
39
44
|
const band = bandOf(gap);
|