edytor 1.0.0-rc.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -25
- package/dist/block/block.svelte.d.ts +10 -85
- package/dist/block/block.svelte.js +47 -141
- package/dist/block/colors.d.ts +0 -9
- package/dist/block/colors.js +1 -18
- package/dist/block/contentRange.d.ts +5 -1
- package/dist/block/contentRange.js +15 -16
- package/dist/block/inlineBlock.svelte.d.ts +8 -10
- package/dist/block/inlineBlock.svelte.js +14 -22
- package/dist/clipboard/createClipboardFragment.js +22 -64
- package/dist/clipboard/fragmentData.js +17 -42
- package/dist/clipboard/htmlFlow.d.ts +6 -1
- package/dist/clipboard/htmlFlow.js +26 -13
- package/dist/clipboard/insertClipboardFragment.js +5 -4
- package/dist/clipboard/moveText.js +16 -8
- package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
- package/dist/clipboard/serializeClipboardFragment.js +32 -28
- package/dist/cloudflare/DocumentRoom.d.ts +22 -17
- package/dist/cloudflare/DocumentRoom.js +10 -5
- package/dist/cloudflare/index.d.ts +1 -1
- package/dist/cloudflare/index.js +1 -1
- package/dist/cloudflare/move.d.ts +1 -18
- package/dist/cloudflare/move.js +2 -48
- package/dist/cloudflare/room/admission.d.ts +1 -60
- package/dist/cloudflare/room/admission.js +25 -29
- package/dist/cloudflare/room/comments.d.ts +1 -3
- package/dist/cloudflare/room/comments.js +6 -6
- package/dist/cloudflare/room/context.d.ts +20 -82
- package/dist/cloudflare/room/context.js +8 -8
- package/dist/cloudflare/room/forged.d.ts +1 -1
- package/dist/cloudflare/room/forged.js +2 -12
- package/dist/cloudflare/room/frames.d.ts +1 -1
- package/dist/cloudflare/room/frames.js +1 -1
- package/dist/cloudflare/room/history.d.ts +1 -25
- package/dist/cloudflare/room/history.js +39 -54
- package/dist/cloudflare/room/moves.d.ts +1 -13
- package/dist/cloudflare/room/moves.js +33 -57
- package/dist/cloudflare/room/presence.d.ts +1 -11
- package/dist/cloudflare/room/presence.js +4 -4
- package/dist/cloudflare/room/purge.d.ts +1 -2
- package/dist/cloudflare/room/purge.js +2 -2
- package/dist/cloudflare/room/replicas.d.ts +1 -7
- package/dist/cloudflare/room/replicas.js +2 -2
- package/dist/cloudflare/room/storage.d.ts +9 -30
- package/dist/cloudflare/room/storage.js +52 -104
- package/dist/cloudflare/room/updates.d.ts +4 -4
- package/dist/cloudflare/room/updates.js +17 -24
- package/dist/cloudflare/room/validation.d.ts +1 -5
- package/dist/cloudflare/room/validation.js +16 -37
- package/dist/collaboration/RemoteSelections.svelte +13 -17
- package/dist/collaboration/comments/client.d.ts +2 -2
- package/dist/collaboration/comments/client.js +1 -1
- package/dist/collaboration/history/index.d.ts +5 -5
- package/dist/collaboration/history/index.js +5 -5
- package/dist/collaboration/history/panel.svelte.d.ts +91 -0
- package/dist/collaboration/history/panel.svelte.js +223 -0
- package/dist/collaboration/providers.d.ts +12 -3
- package/dist/collaboration/providers.js +5 -4
- package/dist/components/Block.svelte +160 -119
- package/dist/components/Block.svelte.d.ts +8 -3
- package/dist/components/Content.svelte +91 -44
- package/dist/components/CustomMark.svelte +46 -0
- package/dist/components/CustomMark.svelte.d.ts +11 -0
- package/dist/components/Edytor.svelte +80 -95
- package/dist/components/Edytor.svelte.d.ts +8 -12
- package/dist/components/InlineBlock.svelte +4 -9
- package/dist/components/Mark.svelte +46 -35
- package/dist/components/Mark.svelte.d.ts +7 -0
- package/dist/components/Ranges.svelte +96 -0
- package/dist/components/Ranges.svelte.d.ts +19 -0
- package/dist/components/Suggestion.svelte +3 -2
- package/dist/components/Text.svelte +48 -14
- package/dist/components/Text.svelte.d.ts +1 -1
- package/dist/crdt/admission.d.ts +2 -9
- package/dist/crdt/admission.js +3 -9
- package/dist/crdt/attribution/attribution.d.ts +11 -72
- package/dist/crdt/attribution/attribution.js +5 -52
- package/dist/crdt/attribution/block.d.ts +0 -78
- package/dist/crdt/attribution/block.js +1 -144
- package/dist/crdt/data.d.ts +8 -13
- package/dist/crdt/data.js +30 -70
- package/dist/crdt/doc/anchors.js +4 -4
- package/dist/crdt/doc/content.d.ts +5 -1
- package/dist/crdt/doc/content.js +3 -1
- package/dist/crdt/doc/delete.d.ts +1 -0
- package/dist/crdt/doc/funnel.d.ts +0 -23
- package/dist/crdt/doc/funnel.js +34 -85
- package/dist/crdt/doc/gate.d.ts +8 -9
- package/dist/crdt/doc/gate.js +7 -17
- package/dist/crdt/doc/history.d.ts +87 -14
- package/dist/crdt/doc/history.js +334 -149
- package/dist/crdt/doc/layout.d.ts +0 -1
- package/dist/crdt/doc/layout.js +2 -3
- package/dist/crdt/doc/meta.d.ts +4 -4
- package/dist/crdt/doc/meta.js +10 -21
- package/dist/crdt/doc/moves.d.ts +4 -4
- package/dist/crdt/doc/moves.js +5 -5
- package/dist/crdt/doc/plan.d.ts +2 -0
- package/dist/crdt/doc/plan.js +2 -0
- package/dist/crdt/doc/reads.d.ts +1 -5
- package/dist/crdt/doc/reads.js +38 -49
- package/dist/crdt/doc/seed.d.ts +15 -6
- package/dist/crdt/doc/seed.js +27 -26
- package/dist/crdt/doc/split-merge.d.ts +1 -3
- package/dist/crdt/doc/split-merge.js +4 -5
- package/dist/crdt/doc/steps.d.ts +3 -7
- package/dist/crdt/doc/steps.js +20 -9
- package/dist/crdt/doc/types.d.ts +0 -10
- package/dist/crdt/document.d.ts +24 -115
- package/dist/crdt/document.js +207 -305
- package/dist/crdt/edytor-doc.d.ts +671 -90
- package/dist/crdt/edytor-doc.js +73 -149
- package/dist/crdt/engine-api.d.ts +15 -47
- package/dist/crdt/engine.d.ts +7 -17
- package/dist/crdt/engine.js +9 -19
- package/dist/crdt/flow.d.ts +9 -37
- package/dist/crdt/flow.js +260 -238
- package/dist/crdt/index.d.ts +26 -85
- package/dist/crdt/index.js +21 -47
- package/dist/crdt/operations.d.ts +24 -33
- package/dist/crdt/operations.js +7 -17
- package/dist/crdt/placement/display.d.ts +0 -2
- package/dist/crdt/placement/display.js +0 -15
- package/dist/crdt/placement/model.d.ts +160 -12
- package/dist/crdt/placement/model.js +413 -414
- package/dist/crdt/placement/rank.d.ts +1 -5
- package/dist/crdt/placement/rank.js +28 -38
- package/dist/crdt/protocol.d.ts +4 -5
- package/dist/crdt/protocol.js +3 -4
- package/dist/crdt/protocols/awareness.d.ts +3 -7
- package/dist/crdt/protocols/awareness.js +17 -33
- package/dist/crdt/protocols/envelope.d.ts +9 -29
- package/dist/crdt/protocols/envelope.js +8 -25
- package/dist/crdt/protocols/sync.d.ts +15 -30
- package/dist/crdt/protocols/sync.js +27 -89
- package/dist/crdt/providers/bound.d.ts +3 -1
- package/dist/crdt/providers/bound.js +3 -1
- package/dist/crdt/providers/container.d.ts +11 -17
- package/dist/crdt/providers/container.js +39 -27
- package/dist/crdt/providers/index.d.ts +34 -6
- package/dist/crdt/providers/index.js +106 -111
- package/dist/crdt/providers/indexeddb.d.ts +2 -12
- package/dist/crdt/providers/indexeddb.js +29 -90
- package/dist/crdt/providers/room.d.ts +58 -2
- package/dist/crdt/providers/room.js +38 -21
- package/dist/crdt/providers/websocket.d.ts +1 -1
- package/dist/crdt/providers/websocket.js +3 -4
- package/dist/crdt/purge.d.ts +2 -2
- package/dist/crdt/purge.js +69 -6
- package/dist/crdt/rangeDelete.d.ts +4 -42
- package/dist/crdt/rangeDelete.js +7 -6
- package/dist/crdt/restore.d.ts +21 -1
- package/dist/crdt/restore.js +54 -59
- package/dist/crdt/schema.d.ts +2 -2
- package/dist/crdt/schema.js +4 -5
- package/dist/crdt/semantics.d.ts +10 -15
- package/dist/crdt/semantics.js +22 -21
- package/dist/crdt/storage.d.ts +7 -13
- package/dist/crdt/storage.js +10 -24
- package/dist/crdt/structs.d.ts +42 -47
- package/dist/crdt/structs.js +76 -67
- package/dist/crdt/tables.d.ts +9 -0
- package/dist/crdt/tables.js +20 -0
- package/dist/crdt/text/delete-index.d.ts +0 -13
- package/dist/crdt/text/delete-index.js +7 -14
- package/dist/crdt/text/deletes.d.ts +9 -22
- package/dist/crdt/text/deletes.js +11 -74
- package/dist/crdt/text/index/cache.js +3 -3
- package/dist/crdt/text/index/fold.d.ts +1 -2
- package/dist/crdt/text/index/fold.js +15 -10
- package/dist/crdt/text/index/layout.d.ts +0 -10
- package/dist/crdt/text/index/layout.js +6 -20
- package/dist/crdt/text/index/records.js +2 -1
- package/dist/crdt/text/index/report.js +5 -6
- package/dist/crdt/text/index/shared.d.ts +11 -4
- package/dist/crdt/text/index/shared.js +8 -7
- package/dist/crdt/text/index/state.d.ts +3 -33
- package/dist/crdt/text/index/state.js +2 -4
- package/dist/crdt/text/model.d.ts +82 -2
- package/dist/crdt/text/model.js +344 -354
- package/dist/crdt/text/rows.d.ts +0 -2
- package/dist/crdt/text/rows.js +0 -11
- package/dist/crdt/text/runs.d.ts +6 -3
- package/dist/crdt/text/runs.js +132 -137
- package/dist/crdt/text/streams.d.ts +1 -1
- package/dist/crdt/text/streams.js +1 -1
- package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
- package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
- package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
- package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
- package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
- package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
- package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
- package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
- package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
- package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
- package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
- package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
- package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
- package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
- package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
- package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
- package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
- package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
- package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
- package/dist/crdt/vendor/yjs/global.d.ts +5 -26
- package/dist/crdt/vendor/yjs/src/index.js +11 -25
- package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
- package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
- package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
- package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
- package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
- package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
- package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
- package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
- package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
- package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
- package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
- package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
- package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
- package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
- package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
- package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
- package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
- package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
- package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
- package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
- package/dist/{plugins/blockHandles → dnd}/autoScroll.d.ts +2 -1
- package/dist/{plugins/blockHandles → dnd}/autoScroll.js +3 -3
- package/dist/dnd/pragmatic.d.ts +4 -22
- package/dist/dnd/pragmatic.js +7 -26
- package/dist/dnd/track.d.ts +14 -0
- package/dist/dnd/track.js +55 -0
- package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +36 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
- package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
- package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
- package/dist/edytor.svelte.d.ts +34 -64
- package/dist/edytor.svelte.js +118 -180
- package/dist/events/beforeInputCommands.d.ts +6 -11
- package/dist/events/beforeInputCommands.js +189 -184
- package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
- package/dist/events/beforeInputDeleteCommands.js +153 -204
- package/dist/events/domTextOffset.d.ts +9 -9
- package/dist/events/domTextOffset.js +20 -48
- package/dist/events/events.utils.d.ts +0 -2
- package/dist/events/events.utils.js +0 -4
- package/dist/events/nativeInteractiveControl.d.ts +13 -13
- package/dist/events/nativeInteractiveControl.js +28 -56
- package/dist/events/onBeforeInput.d.ts +6 -1
- package/dist/events/onBeforeInput.js +207 -331
- package/dist/events/onCopy.js +1 -5
- package/dist/events/onDrop.d.ts +7 -1
- package/dist/events/onDrop.js +33 -72
- package/dist/events/onFocus.d.ts +9 -4
- package/dist/events/onFocus.js +92 -72
- package/dist/events/onInput.d.ts +8 -4
- package/dist/events/onInput.js +34 -147
- package/dist/events/onKeyDown.js +55 -122
- package/dist/events/onPaste.d.ts +13 -1
- package/dist/events/onPaste.js +46 -76
- package/dist/index.d.ts +10 -13
- package/dist/index.js +3 -3
- package/dist/kinds.d.ts +4 -6
- package/dist/kinds.js +28 -27
- package/dist/labels.d.ts +91 -314
- package/dist/labels.js +180 -396
- package/dist/plugins/Chrome.svelte +29 -0
- package/dist/plugins/Chrome.svelte.d.ts +32 -0
- package/dist/plugins/Control.svelte +23 -0
- package/dist/plugins/Control.svelte.d.ts +30 -0
- package/dist/plugins/anchored.svelte.d.ts +47 -0
- package/dist/plugins/anchored.svelte.js +73 -0
- package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
- package/dist/plugins/arrowMove/arrowMove.js +9 -5
- package/dist/plugins/bands.svelte.d.ts +57 -0
- package/dist/plugins/bands.svelte.js +95 -0
- package/dist/plugins/blockHandles/BlockHandle.svelte +14 -151
- package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +63 -97
- package/dist/plugins/blockHandles/BlockHandleController.svelte.js +247 -268
- package/dist/plugins/blockHandles/BlockHandles.svelte +46 -29
- package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +29 -23
- package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -162
- package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
- package/dist/plugins/blockHandles/dragPreview.js +20 -17
- package/dist/plugins/blockHandles/dropIndicator.js +52 -60
- package/dist/plugins/blockHandles/geometry.d.ts +46 -1
- package/dist/plugins/blockHandles/geometry.js +51 -4
- package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +59 -28
- package/dist/plugins/blockMenu/BlockMenuController.svelte.js +180 -105
- package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
- package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
- package/dist/plugins/brand.d.ts +8 -0
- package/dist/plugins/brand.js +8 -0
- package/dist/plugins/chrome.d.ts +79 -0
- package/dist/plugins/chrome.js +87 -0
- package/dist/plugins/code/CodeHeader.svelte +12 -58
- package/dist/plugins/code/CodeHeader.svelte.d.ts +1 -0
- package/dist/plugins/code/CodePlugin.svelte +75 -56
- package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
- package/dist/plugins/code/LanguageMenu.svelte +25 -0
- package/dist/plugins/code/LanguageMenu.svelte.d.ts +9 -0
- package/dist/plugins/code/code.css +5 -100
- package/dist/plugins/code/header.svelte.d.ts +47 -0
- package/dist/plugins/code/header.svelte.js +141 -0
- package/dist/plugins/code/languageMenu.svelte.d.ts +84 -0
- package/dist/plugins/code/languageMenu.svelte.js +199 -0
- package/dist/plugins/code/languages.d.ts +21 -10
- package/dist/plugins/code/languages.js +39 -126
- package/dist/plugins/columns/ColumnResize.svelte +13 -25
- package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
- package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
- package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
- package/dist/plugins/columns/columns.css +7 -26
- package/dist/plugins/columns/resize.svelte.d.ts +14 -51
- package/dist/plugins/columns/resize.svelte.js +70 -164
- package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
- package/dist/plugins/comments/CommentsController.svelte.js +14 -25
- package/dist/plugins/comments/CommentsSidebar.svelte +82 -430
- package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +6 -7
- package/dist/plugins/comments/commentsPlugin.d.ts +31 -10
- package/dist/plugins/comments/commentsPlugin.js +12 -10
- package/dist/plugins/equation/EquationEditor.svelte +18 -129
- package/dist/plugins/equation/EquationEditor.svelte.d.ts +2 -1
- package/dist/plugins/equation/EquationPlugin.svelte +123 -168
- package/dist/plugins/equation/EquationPlugin.svelte.d.ts +5 -3
- package/dist/plugins/equation/EquationView.svelte +20 -11
- package/dist/plugins/equation/equation.svelte.d.ts +74 -36
- package/dist/plugins/equation/equation.svelte.js +74 -66
- package/dist/plugins/equation/importUrl.d.ts +6 -0
- package/dist/plugins/equation/importUrl.js +6 -0
- package/dist/plugins/equation/katex.d.ts +8 -0
- package/dist/plugins/equation/katex.js +77 -0
- package/dist/plugins/find/FindController.svelte.d.ts +8 -13
- package/dist/plugins/find/FindController.svelte.js +34 -55
- package/dist/plugins/find/findPlugin.d.ts +4 -8
- package/dist/plugins/find/findPlugin.js +29 -9
- package/dist/plugins/image/ImageChrome.svelte +5 -151
- package/dist/plugins/image/ImagePlugin.svelte +49 -117
- package/dist/plugins/image/ImagePlugin.svelte.d.ts +1 -24
- package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
- package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
- package/dist/plugins/image/controls.svelte.d.ts +6 -57
- package/dist/plugins/image/controls.svelte.js +51 -174
- package/dist/plugins/image/image.d.ts +0 -5
- package/dist/plugins/image/image.js +0 -3
- package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
- package/dist/plugins/image/toolbar.svelte.js +145 -0
- package/dist/plugins/index.d.ts +39 -24
- package/dist/plugins/index.js +30 -22
- package/dist/plugins/list.svelte.d.ts +128 -0
- package/dist/plugins/list.svelte.js +217 -0
- package/dist/plugins/markdownShortcuts.d.ts +1 -1
- package/dist/plugins/markdownShortcuts.js +6 -5
- package/dist/plugins/marquee/MarqueeBox.svelte +15 -0
- package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +9 -0
- package/dist/plugins/marquee/MarqueeController.svelte.d.ts +46 -0
- package/dist/plugins/marquee/MarqueeController.svelte.js +243 -0
- package/dist/plugins/marquee/marquee.d.ts +33 -0
- package/dist/plugins/marquee/marquee.js +89 -0
- package/dist/plugins/marquee/marqueePlugin.d.ts +32 -0
- package/dist/plugins/marquee/marqueePlugin.js +68 -0
- package/dist/plugins/media/AudioPlugin.svelte +3 -88
- package/dist/plugins/media/AudioPlugin.svelte.d.ts +1 -4
- package/dist/plugins/media/BookmarkPlugin.svelte +124 -112
- package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +20 -7
- package/dist/plugins/media/EmbedPlugin.svelte +93 -77
- package/dist/plugins/media/EmbedPlugin.svelte.d.ts +21 -9
- package/dist/plugins/media/EmptySlot.svelte +44 -0
- package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
- package/dist/plugins/media/FilePlugin.svelte +35 -111
- package/dist/plugins/media/FilePlugin.svelte.d.ts +12 -4
- package/dist/plugins/media/MediaEmpty.svelte +55 -112
- package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
- package/dist/plugins/media/SourceBlock.svelte +164 -0
- package/dist/plugins/media/SourceBlock.svelte.d.ts +33 -0
- package/dist/plugins/media/VideoPlugin.svelte +4 -97
- package/dist/plugins/media/VideoPlugin.svelte.d.ts +2 -5
- package/dist/plugins/media/empty.svelte.d.ts +69 -0
- package/dist/plugins/media/empty.svelte.js +111 -0
- package/dist/plugins/media/media.d.ts +93 -30
- package/dist/plugins/media/media.js +79 -86
- package/dist/plugins/media/urlPaste.svelte.d.ts +9 -32
- package/dist/plugins/media/urlPaste.svelte.js +46 -75
- package/dist/plugins/mention/MentionPlugin.svelte +47 -124
- package/dist/plugins/mention/MentionPlugin.svelte.d.ts +11 -23
- package/dist/plugins/page/PageLink.svelte +54 -38
- package/dist/plugins/page/PagePlugin.svelte +20 -18
- package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
- package/dist/plugins/page/page.d.ts +35 -9
- package/dist/plugins/page/page.js +3 -4
- package/dist/plugins/pageLink/PageLinkPlugin.svelte +52 -108
- package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +11 -23
- package/dist/plugins/planned.d.ts +10 -0
- package/dist/plugins/planned.js +12 -0
- package/dist/plugins/richtext/CalloutIcon.svelte +25 -0
- package/dist/plugins/richtext/CalloutIcon.svelte.d.ts +9 -0
- package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
- package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
- package/dist/plugins/richtext/EmptyBody.svelte +25 -0
- package/dist/plugins/richtext/EmptyBody.svelte.d.ts +8 -0
- package/dist/plugins/richtext/RichTextControl.svelte +39 -0
- package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
- package/dist/plugins/richtext/RichTextPlugin.svelte +272 -148
- package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +37 -18
- package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
- package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
- package/dist/plugins/richtext/body.d.ts +9 -0
- package/dist/plugins/richtext/body.js +16 -0
- package/dist/plugins/richtext/calloutIcons.svelte.d.ts +97 -0
- package/dist/plugins/richtext/calloutIcons.svelte.js +214 -0
- package/dist/plugins/richtext/callouts.d.ts +15 -0
- package/dist/plugins/richtext/callouts.js +23 -0
- package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
- package/dist/plugins/richtext/controls.svelte.js +126 -0
- package/dist/plugins/richtext/richTextOperations.js +37 -28
- package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +18 -11
- package/dist/plugins/slashMenu/SlashMenuController.svelte.js +93 -35
- package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +11 -24
- package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
- package/dist/plugins/suggestions/SuggestionBars.svelte +32 -84
- package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
- package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -16
- package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
- package/dist/plugins/table/TableChrome.svelte +96 -127
- package/dist/plugins/table/TableChrome.svelte.d.ts +5 -1
- package/dist/plugins/table/TablePlugin.svelte +116 -171
- package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
- package/dist/plugins/table/chrome.svelte.d.ts +110 -117
- package/dist/plugins/table/chrome.svelte.js +643 -289
- package/dist/plugins/table/ops.d.ts +47 -0
- package/dist/plugins/table/ops.js +233 -0
- package/dist/plugins/table/table.css +55 -134
- package/dist/plugins/table/table.d.ts +26 -7
- package/dist/plugins/table/table.js +23 -49
- package/dist/plugins/toc/TableOfContents.svelte +32 -38
- package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
- package/dist/plugins/toc/TocPlugin.svelte +22 -22
- package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
- package/dist/plugins/toc/toc.d.ts +41 -10
- package/dist/plugins/toc/toc.js +2 -3
- package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +29 -66
- package/dist/plugins/toolbar/ToolbarController.svelte.js +151 -76
- package/dist/plugins/toolbar/toolbarPlugin.d.ts +14 -13
- package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
- package/dist/plugins/triggers/TriggerController.svelte.d.ts +6 -45
- package/dist/plugins/triggers/TriggerController.svelte.js +51 -96
- package/dist/plugins/triggers/place.d.ts +0 -9
- package/dist/plugins/triggers/place.js +1 -17
- package/dist/plugins/triggers/triggers.d.ts +31 -9
- package/dist/plugins/triggers/triggers.js +82 -62
- package/dist/plugins/uploads.svelte.d.ts +38 -20
- package/dist/plugins/uploads.svelte.js +39 -32
- package/dist/plugins.d.ts +167 -60
- package/dist/selection/domSelection.d.ts +13 -4
- package/dist/selection/domSelection.js +110 -183
- package/dist/selection/pointer.svelte.d.ts +12 -10
- package/dist/selection/pointer.svelte.js +154 -71
- package/dist/selection/replaceSelection.d.ts +21 -22
- package/dist/selection/replaceSelection.js +60 -69
- package/dist/selection/selection.svelte.d.ts +5 -73
- package/dist/selection/selection.svelte.js +263 -542
- package/dist/selection/selection.utils.d.ts +34 -11
- package/dist/selection/selection.utils.js +128 -247
- package/dist/selection/visibility.d.ts +11 -8
- package/dist/selection/visibility.js +23 -8
- package/dist/session/announcer.svelte.d.ts +2 -1
- package/dist/session/announcer.svelte.js +7 -3
- package/dist/session/attempt.d.ts +33 -39
- package/dist/session/attempt.js +61 -53
- package/dist/session/bindings.js +108 -139
- package/dist/session/commands.d.ts +47 -22
- package/dist/session/commands.js +206 -208
- package/dist/session/composition.svelte.d.ts +2 -4
- package/dist/session/composition.svelte.js +55 -65
- package/dist/session/editing/text.d.ts +6 -0
- package/dist/session/editing/text.js +17 -3
- package/dist/session/handles.d.ts +10 -1
- package/dist/session/handles.js +28 -0
- package/dist/session/history.d.ts +0 -4
- package/dist/session/history.js +15 -21
- package/dist/session/inputRules.js +75 -84
- package/dist/session/keymap.d.ts +1 -6
- package/dist/session/keymap.js +17 -20
- package/dist/session/moves.d.ts +10 -10
- package/dist/session/moves.js +31 -59
- package/dist/session/navigation.d.ts +18 -3
- package/dist/session/navigation.js +194 -153
- package/dist/session/ports.d.ts +7 -0
- package/dist/session/selection.d.ts +4 -3
- package/dist/session/selection.js +8 -0
- package/dist/session/suggestions.svelte.d.ts +1 -1
- package/dist/session/suggestions.svelte.js +64 -47
- package/dist/session/virtual.d.ts +3 -3
- package/dist/session/virtual.js +18 -40
- package/dist/surface/attributes.d.ts +1 -0
- package/dist/surface/attributes.js +3 -26
- package/dist/surface/cells.d.ts +5 -0
- package/dist/surface/cells.js +5 -0
- package/dist/surface/lines.d.ts +32 -0
- package/dist/surface/lines.js +43 -0
- package/dist/surface/observer.svelte.d.ts +3 -20
- package/dist/surface/observer.svelte.js +73 -77
- package/dist/surface/overlay.d.ts +48 -6
- package/dist/surface/overlay.js +133 -23
- package/dist/surface/pin.svelte.d.ts +5 -0
- package/dist/surface/pin.svelte.js +5 -0
- package/dist/surface/projector.svelte.d.ts +4 -6
- package/dist/surface/projector.svelte.js +42 -69
- package/dist/text/text.svelte.d.ts +14 -40
- package/dist/text/text.svelte.js +35 -51
- package/dist/text/wordBoundary.d.ts +19 -0
- package/dist/text/wordBoundary.js +29 -44
- package/dist/themes/notion.css +315 -126
- package/dist/utils/json.d.ts +3 -1
- package/dist/utils/json.js +52 -51
- package/dist/utils/listen.d.ts +8 -0
- package/dist/utils/listen.js +19 -0
- package/package.json +4 -5
- package/dist/block/block.utils.d.ts +0 -340
- package/dist/block/block.utils.js +0 -356
- package/dist/collaboration/history/HistoryPanel.svelte +0 -525
- package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
- package/dist/collaboration/history/panel.d.ts +0 -43
- package/dist/collaboration/history/panel.js +0 -3
- package/dist/components/SuggestionRanges.svelte +0 -58
- package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
- package/dist/crdt/doc/table.d.ts +0 -21
- package/dist/crdt/doc/table.js +0 -288
- package/dist/crdt/migration/generation.d.ts +0 -58
- package/dist/crdt/migration/generation.js +0 -70
- package/dist/crdt/migration/legacy-schema.d.ts +0 -61
- package/dist/crdt/migration/legacy-schema.js +0 -151
- package/dist/crdt/migration/migrate.d.ts +0 -56
- package/dist/crdt/migration/migrate.js +0 -227
- package/dist/crdt/nodes.d.ts +0 -121
- package/dist/crdt/nodes.js +0 -56
- package/dist/crdt/text/index/checks.d.ts +0 -15
- package/dist/crdt/text/index/checks.js +0 -156
- package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
- package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
- package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
- package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
- package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
- package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
- package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
- package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
- package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
- package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
- package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
- package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
- package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
- package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
- package/dist/edytor.utils.d.ts +0 -50
- package/dist/edytor.utils.js +0 -67
- package/dist/plugins/blockMenu/BlockMenu.svelte +0 -447
- package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
- package/dist/plugins/find/FindBar.svelte +0 -170
- package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
- package/dist/plugins/find/FindHighlights.svelte +0 -75
- package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
- package/dist/plugins/icons.d.ts +0 -2
- package/dist/plugins/icons.js +0 -63
- package/dist/plugins/image/ImageEmpty.svelte +0 -116
- package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -12
- package/dist/plugins/keepInView.d.ts +0 -4
- package/dist/plugins/keepInView.js +0 -6
- package/dist/plugins/media/UrlPasteMenu.svelte +0 -83
- package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -7
- package/dist/plugins/richtext/labels.d.ts +0 -5
- package/dist/plugins/richtext/labels.js +0 -3
- package/dist/plugins/slashMenu/SlashMenu.svelte +0 -360
- package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
- package/dist/plugins/toolbar/LinkCard.svelte +0 -118
- package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -7
- package/dist/plugins/toolbar/Toolbar.svelte +0 -400
- package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
- package/dist/plugins/triggers/TriggerMenu.svelte +0 -144
- package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
- package/dist/session/props.d.ts +0 -28
- package/dist/session/props.js +0 -162
- package/dist/text/deltas.d.ts +0 -22
- package/dist/text/deltas.js +0 -46
- package/dist/text/text.utils.d.ts +0 -45
- package/dist/text/text.utils.js +0 -199
|
@@ -1,105 +1,12 @@
|
|
|
1
1
|
<script module lang="ts">
|
|
2
|
-
import type { Plugin
|
|
3
|
-
import
|
|
4
|
-
import type { Edytor } from '../../edytor.svelte.js';
|
|
5
|
-
import MediaEmpty from './MediaEmpty.svelte';
|
|
6
|
-
import { mediaKinds } from '../../crdt/semantics.js';
|
|
7
|
-
import { keywordsOf, labelsWith } from '../../labels.js';
|
|
8
|
-
import {
|
|
9
|
-
claimed,
|
|
10
|
-
escapeHtml,
|
|
11
|
-
mediaLabels,
|
|
12
|
-
mediaSourceOf,
|
|
13
|
-
safeMediaSrc,
|
|
14
|
-
mediaUploads,
|
|
15
|
-
type MediaPluginOptions
|
|
16
|
-
} from './media.js';
|
|
17
|
-
|
|
18
|
-
const uploadOf = new WeakMap<Edytor, MediaPluginOptions['upload']>();
|
|
19
|
-
|
|
20
|
-
const videoLink = (block: Block | undefined, value: string) => {
|
|
21
|
-
const src = safeMediaSrc(value);
|
|
22
|
-
if (!block || !src) return false;
|
|
23
|
-
block.data.src = src;
|
|
24
|
-
return true;
|
|
25
|
-
};
|
|
2
|
+
import type { Plugin } from '../../plugins.js';
|
|
3
|
+
import { sourcePlugin } from './SourceBlock.svelte';
|
|
26
4
|
|
|
27
5
|
/**
|
|
28
6
|
* Notion's video block: a video file (an `http(s)` link, or an upload
|
|
29
7
|
* through `upload`) in the browser's player, with an editable caption.
|
|
30
|
-
* A YouTube or Vimeo link is an embed (`
|
|
8
|
+
* A YouTube or Vimeo link is an embed (`createEmbedPlugin()`). Void: its only
|
|
31
9
|
* text is the caption.
|
|
32
10
|
*/
|
|
33
|
-
export const createVideoPlugin =
|
|
34
|
-
(options: MediaPluginOptions = {}): Plugin =>
|
|
35
|
-
(edytor) => {
|
|
36
|
-
// First wins, as for the kind: a second listing never replaces it.
|
|
37
|
-
const first = !!edytor && !uploadOf.has(edytor);
|
|
38
|
-
if (first) uploadOf.set(edytor, options.upload);
|
|
39
|
-
const onPaste = first ? mediaUploads(edytor, 'video', options.upload) : undefined;
|
|
40
|
-
const labels = labelsWith('media', options.labels);
|
|
41
|
-
mediaLabels.video.claim(edytor, labels);
|
|
42
|
-
return {
|
|
43
|
-
...(onPaste ? { onPaste } : {}),
|
|
44
|
-
blocks: {
|
|
45
|
-
video: {
|
|
46
|
-
...mediaKinds.video,
|
|
47
|
-
snippet: video,
|
|
48
|
-
element: 'figure',
|
|
49
|
-
presets: [
|
|
50
|
-
{
|
|
51
|
-
label: labels.video.label,
|
|
52
|
-
icon: '🎬',
|
|
53
|
-
keywords: keywordsOf('block.video', ['movie', 'mp4', 'clip'], options.keywords),
|
|
54
|
-
group: 'Media'
|
|
55
|
-
}
|
|
56
|
-
],
|
|
57
|
-
html: (block, caption) => {
|
|
58
|
-
const src = safeMediaSrc(block.data?.src);
|
|
59
|
-
const media = src ? `<video src="${escapeHtml(src)}" controls></video>` : '';
|
|
60
|
-
return `<figure>${media}<figcaption>${caption}</figcaption></figure>`;
|
|
61
|
-
},
|
|
62
|
-
// A `video` (bare, or in a `figure`) with a safe `src` or `source`.
|
|
63
|
-
parse: (el) => {
|
|
64
|
-
const src = mediaSourceOf(claimed(el, 'video'));
|
|
65
|
-
return src ? { src } : undefined;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
/** The video block, links only. */
|
|
73
|
-
export const videoPlugin = createVideoPlugin();
|
|
11
|
+
export const createVideoPlugin = (): Plugin => sourcePlugin('video', ['movie', 'mp4', 'clip']);
|
|
74
12
|
</script>
|
|
75
|
-
|
|
76
|
-
{#snippet video({ block, content }: BlockSnippetPayload<{ src?: string }>)}
|
|
77
|
-
{@const src = safeMediaSrc(block.data.src)}
|
|
78
|
-
{#if src}
|
|
79
|
-
<div use:block.void data-edytor-video>
|
|
80
|
-
<!-- svelte-ignore a11y_media_has_caption -->
|
|
81
|
-
<video
|
|
82
|
-
{src}
|
|
83
|
-
controls
|
|
84
|
-
preload="metadata"
|
|
85
|
-
playsinline
|
|
86
|
-
draggable="false"
|
|
87
|
-
style="display: block; width: 100%"
|
|
88
|
-
></video>
|
|
89
|
-
</div>
|
|
90
|
-
{:else}
|
|
91
|
-
<div use:block.void data-edytor-media-empty>
|
|
92
|
-
<MediaEmpty
|
|
93
|
-
block={block.handle}
|
|
94
|
-
kind="video"
|
|
95
|
-
icon="🎬"
|
|
96
|
-
accept="video/*"
|
|
97
|
-
upload={block.handle && uploadOf.get(block.handle.edytor)}
|
|
98
|
-
link={(value) => videoLink(block.handle, value)}
|
|
99
|
-
/>
|
|
100
|
-
</div>
|
|
101
|
-
{/if}
|
|
102
|
-
<!-- The core renders the kind's <figure> around this markup. -->
|
|
103
|
-
<!-- svelte-ignore a11y_figcaption_parent -->
|
|
104
|
-
<figcaption>{@render content()}</figcaption>
|
|
105
|
-
{/snippet}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import type { Plugin } from '../../plugins.js';
|
|
2
|
-
import { type MediaPluginOptions } from './media.js';
|
|
3
2
|
/**
|
|
4
3
|
* Notion's video block: a video file (an `http(s)` link, or an upload
|
|
5
4
|
* through `upload`) in the browser's player, with an editable caption.
|
|
6
|
-
* A YouTube or Vimeo link is an embed (`
|
|
5
|
+
* A YouTube or Vimeo link is an embed (`createEmbedPlugin()`). Void: its only
|
|
7
6
|
* text is the caption.
|
|
8
7
|
*/
|
|
9
|
-
export declare const createVideoPlugin: (
|
|
10
|
-
/** The video block, links only. */
|
|
11
|
-
export declare const videoPlugin: Plugin;
|
|
8
|
+
export declare const createVideoPlugin: () => Plugin;
|
|
12
9
|
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> {
|
|
13
10
|
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
14
11
|
$$bindings?: Bindings;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { Attachment } from 'svelte/attachments';
|
|
2
|
+
import type { Block } from '../../block/block.svelte.js';
|
|
3
|
+
import type { MediaKind } from './media.js';
|
|
4
|
+
import { type FileUpload } from '../uploads.svelte.js';
|
|
5
|
+
/** Each media kind's icon (the image's too): its menu row, its empty block, its paste offer. */
|
|
6
|
+
export declare const MEDIA_ICONS: Record<MediaKind | 'image', string>;
|
|
7
|
+
/**
|
|
8
|
+
* Why the last link or upload was not embedded: no source the kind takes
|
|
9
|
+
* (`invalid`), an inline image over the cap (`inline`), a failed upload.
|
|
10
|
+
*/
|
|
11
|
+
export type MediaEmptyFailure = 'invalid' | 'inline' | 'upload';
|
|
12
|
+
/** What an empty block reads of its kind in a view: how it stores a source. */
|
|
13
|
+
export type EmptyView = {
|
|
14
|
+
/** Store a link (or the URL an upload of `file` answered) on `block`: why it did not, or `null`. */
|
|
15
|
+
store: (block: Block, value: string, file?: File) => MediaEmptyFailure | null;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* An empty image or media block's state (an image, an embed, a bookmark, a
|
|
19
|
+
* file, a video, an audio track: Notion's "Add …"): the panel's `open`
|
|
20
|
+
* state, the link field's `draft`, why the last link or upload was not
|
|
21
|
+
* embedded (`failed`), and the upload of a pasted or dropped file
|
|
22
|
+
* (`pending`); `embed` and `upload` set the source. What an image or media
|
|
23
|
+
* plugin's `empty` snippet receives (one per empty block shown).
|
|
24
|
+
*/
|
|
25
|
+
export declare class MediaEmptyController {
|
|
26
|
+
#private;
|
|
27
|
+
/** The empty block; none in a suggestion's preview. */
|
|
28
|
+
readonly block: Block | undefined;
|
|
29
|
+
/** Which kind it is (your words for it: its button, placeholder, errors). */
|
|
30
|
+
readonly kind: MediaKind | 'image';
|
|
31
|
+
/** The kind in the block's view. */
|
|
32
|
+
private view;
|
|
33
|
+
/** The link panel is open. */
|
|
34
|
+
open: boolean;
|
|
35
|
+
/** The link field's text. */
|
|
36
|
+
draft: string;
|
|
37
|
+
/** Why the last link or upload was not embedded (`null`: it was, or none was tried). */
|
|
38
|
+
failed: MediaEmptyFailure | null;
|
|
39
|
+
constructor(
|
|
40
|
+
/** The empty block; none in a suggestion's preview. */
|
|
41
|
+
block: Block | undefined,
|
|
42
|
+
/** Which kind it is (your words for it: its button, placeholder, errors). */
|
|
43
|
+
kind: MediaKind | 'image',
|
|
44
|
+
/** The kind in the block's view. */
|
|
45
|
+
view: EmptyView | undefined);
|
|
46
|
+
/** The kind's icon (an emoji). */
|
|
47
|
+
get icon(): string;
|
|
48
|
+
/** The file picker's `accept`: `image/*`, `video/*`, `audio/*`, else any file. */
|
|
49
|
+
get accept(): string | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* No control may write: a readonly view, or a suggestion's preview (no
|
|
52
|
+
* block). Show a passive placeholder then.
|
|
53
|
+
*/
|
|
54
|
+
get readonly(): boolean;
|
|
55
|
+
/** The view lists the uploads plugin and the kind takes files: offer Upload. */
|
|
56
|
+
get canUpload(): boolean;
|
|
57
|
+
/** The upload of a pasted or dropped file into this block, if any (its `status`, `progress`, `preview`). */
|
|
58
|
+
get pending(): FileUpload | undefined;
|
|
59
|
+
/** Embed `value` (default the `draft`): the block takes the link, or `failed` says why not. */
|
|
60
|
+
embed: (value?: string) => void;
|
|
61
|
+
/**
|
|
62
|
+
* Upload `file` with the view's uploader (`createUploadsPlugin`) and store the URL it answers,
|
|
63
|
+
* only on the block as it was picked from: still in the tree, of its kind
|
|
64
|
+
* and empty (a peer may have set a source, or deleted it, meanwhile).
|
|
65
|
+
*/
|
|
66
|
+
upload: (picked: File) => Promise<void>;
|
|
67
|
+
/** The link field (`{@attach empty.field}`): Enter embeds its `draft`. */
|
|
68
|
+
field: Attachment<HTMLInputElement>;
|
|
69
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { fileUploads } from '../uploads.svelte.js';
|
|
2
|
+
import { listen } from '../../utils/listen.js';
|
|
3
|
+
/** Each media kind's icon (the image's too): its menu row, its empty block, its paste offer. */
|
|
4
|
+
export const MEDIA_ICONS = {
|
|
5
|
+
image: '🖼',
|
|
6
|
+
embed: '⧉',
|
|
7
|
+
bookmark: '🔖',
|
|
8
|
+
file: '📎',
|
|
9
|
+
video: '🎬',
|
|
10
|
+
audio: '🎵'
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* An empty image or media block's state (an image, an embed, a bookmark, a
|
|
14
|
+
* file, a video, an audio track: Notion's "Add …"): the panel's `open`
|
|
15
|
+
* state, the link field's `draft`, why the last link or upload was not
|
|
16
|
+
* embedded (`failed`), and the upload of a pasted or dropped file
|
|
17
|
+
* (`pending`); `embed` and `upload` set the source. What an image or media
|
|
18
|
+
* plugin's `empty` snippet receives (one per empty block shown).
|
|
19
|
+
*/
|
|
20
|
+
export class MediaEmptyController {
|
|
21
|
+
block;
|
|
22
|
+
kind;
|
|
23
|
+
view;
|
|
24
|
+
/** The link panel is open. */
|
|
25
|
+
open = $state(false);
|
|
26
|
+
/** The link field's text. */
|
|
27
|
+
draft = $state('');
|
|
28
|
+
/** Why the last link or upload was not embedded (`null`: it was, or none was tried). */
|
|
29
|
+
failed = $state(null);
|
|
30
|
+
constructor(
|
|
31
|
+
/** The empty block; none in a suggestion's preview. */
|
|
32
|
+
block,
|
|
33
|
+
/** Which kind it is (your words for it: its button, placeholder, errors). */
|
|
34
|
+
kind,
|
|
35
|
+
/** The kind in the block's view. */
|
|
36
|
+
view) {
|
|
37
|
+
this.block = block;
|
|
38
|
+
this.kind = kind;
|
|
39
|
+
this.view = view;
|
|
40
|
+
}
|
|
41
|
+
/** The kind's icon (an emoji). */
|
|
42
|
+
get icon() {
|
|
43
|
+
return MEDIA_ICONS[this.kind];
|
|
44
|
+
}
|
|
45
|
+
/** The file picker's `accept`: `image/*`, `video/*`, `audio/*`, else any file. */
|
|
46
|
+
get accept() {
|
|
47
|
+
const { kind } = this;
|
|
48
|
+
return kind === 'image' || kind === 'video' || kind === 'audio' ? `${kind}/*` : undefined;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* No control may write: a readonly view, or a suggestion's preview (no
|
|
52
|
+
* block). Show a passive placeholder then.
|
|
53
|
+
*/
|
|
54
|
+
get readonly() {
|
|
55
|
+
return !this.block || this.block.edytor.readonly;
|
|
56
|
+
}
|
|
57
|
+
/** The view lists the uploads plugin and the kind takes files: offer Upload. */
|
|
58
|
+
get canUpload() {
|
|
59
|
+
const { block } = this;
|
|
60
|
+
return Boolean(block && fileUploads(block.edytor) && block.definition.upload);
|
|
61
|
+
}
|
|
62
|
+
/** The upload of a pasted or dropped file into this block, if any (its `status`, `progress`, `preview`). */
|
|
63
|
+
get pending() {
|
|
64
|
+
const { block } = this;
|
|
65
|
+
return block ? fileUploads(block.edytor)?.of(block.id) : undefined;
|
|
66
|
+
}
|
|
67
|
+
/** Store `value` on the block: why it did not take it, or `null`. */
|
|
68
|
+
#store = (value, file) => this.block && this.view ? this.view.store(this.block, value, file) : 'invalid';
|
|
69
|
+
/** Embed `value` (default the `draft`): the block takes the link, or `failed` says why not. */
|
|
70
|
+
embed = (value = this.draft) => {
|
|
71
|
+
this.failed = this.#store(value);
|
|
72
|
+
if (!this.failed && this.block)
|
|
73
|
+
fileUploads(this.block.edytor)?.clear(this.block.id);
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Upload `file` with the view's uploader (`createUploadsPlugin`) and store the URL it answers,
|
|
77
|
+
* only on the block as it was picked from: still in the tree, of its kind
|
|
78
|
+
* and empty (a peer may have set a source, or deleted it, meanwhile).
|
|
79
|
+
*/
|
|
80
|
+
upload = async (picked) => {
|
|
81
|
+
const { block } = this;
|
|
82
|
+
const upload = this.canUpload && fileUploads(block?.edytor)?.upload;
|
|
83
|
+
if (!upload || !block || block.edytor.readonly)
|
|
84
|
+
return;
|
|
85
|
+
const { edytor, id, type } = block;
|
|
86
|
+
let src;
|
|
87
|
+
try {
|
|
88
|
+
src = await upload(picked, { progress: () => { } });
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
this.failed = 'upload';
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const live = edytor.idToBlock.get(id);
|
|
95
|
+
if (!live?.isInTree || live.type !== type || edytor.readonly)
|
|
96
|
+
return;
|
|
97
|
+
if (edytor.facade.blockDataOf(id)?.src !== undefined)
|
|
98
|
+
return;
|
|
99
|
+
this.failed = this.#store(src, picked);
|
|
100
|
+
};
|
|
101
|
+
/** The link field (`{@attach empty.field}`): Enter embeds its `draft`. */
|
|
102
|
+
field = (node) => {
|
|
103
|
+
const keydown = (event) => {
|
|
104
|
+
if (event.key !== 'Enter' || event.isComposing)
|
|
105
|
+
return;
|
|
106
|
+
event.preventDefault();
|
|
107
|
+
this.embed();
|
|
108
|
+
};
|
|
109
|
+
return listen(node, 'keydown', keydown);
|
|
110
|
+
};
|
|
111
|
+
}
|
|
@@ -1,14 +1,99 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
1
2
|
import type { Edytor } from '../../edytor.svelte.js';
|
|
2
|
-
import type {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
3
|
+
import type { Block } from '../../block/block.svelte.js';
|
|
4
|
+
import type { Attachment } from 'svelte/attachments';
|
|
5
|
+
import type { BlockDefinition, Plugin, PluginDefinitions, PluginOperations } from '../../plugins.js';
|
|
6
|
+
import { escapeHtml } from '../../clipboard/serializeClipboardFragment.js';
|
|
7
|
+
import { MEDIA_ICONS, type EmptyView } from './empty.svelte.js';
|
|
8
|
+
/** The media kinds. */
|
|
6
9
|
export type MediaKind = 'embed' | 'bookmark' | 'file' | 'video' | 'audio';
|
|
10
|
+
export { MEDIA_ICONS };
|
|
7
11
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
12
|
+
* A media kind in a view: the first plugin of the kind listed in it claims
|
|
13
|
+
* it, as its kind record (first wins): how a block of it stores a source,
|
|
14
|
+
* the embed's allowlist, and the app's markup for the kind's own control
|
|
15
|
+
* (the bookmark's `card`, the file's `row`, the embed's `fallback`).
|
|
10
16
|
*/
|
|
11
|
-
export
|
|
17
|
+
export type MediaView = EmptyView & {
|
|
18
|
+
providers?: readonly EmbedProvider[];
|
|
19
|
+
card?: Snippet<[BookmarkCardPayload]>;
|
|
20
|
+
row?: Snippet<[FileRowPayload]>;
|
|
21
|
+
fallback?: Snippet<[EmbedFallbackPayload]>;
|
|
22
|
+
};
|
|
23
|
+
/** What a bookmark's `card` snippet receives: the page it links to, as `unfurl` described it. */
|
|
24
|
+
export type BookmarkCardPayload = {
|
|
25
|
+
/** The bookmark; `undefined` in a suggestion's preview. */
|
|
26
|
+
block: Block | undefined;
|
|
27
|
+
/** The page's URL (`http(s)`). */
|
|
28
|
+
url: string;
|
|
29
|
+
/** Its title, description, cover image and icon, when `unfurl` answered them. */
|
|
30
|
+
title: string | undefined;
|
|
31
|
+
description: string | undefined;
|
|
32
|
+
image: string | undefined;
|
|
33
|
+
icon: string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* The card's link (`<a href={card.url} {@attach card.link}>`): a new tab
|
|
36
|
+
* without the opener, never dragged out of the editor.
|
|
37
|
+
*/
|
|
38
|
+
link: Attachment<HTMLElement>;
|
|
39
|
+
};
|
|
40
|
+
/** What a file block's `row` snippet receives: the file it links to. */
|
|
41
|
+
export type FileRowPayload = {
|
|
42
|
+
/** The file block; `undefined` in a suggestion's preview. */
|
|
43
|
+
block: Block | undefined;
|
|
44
|
+
/** The file's URL. */
|
|
45
|
+
src: string;
|
|
46
|
+
/** Its name: the uploaded file's, else its URL's last segment. */
|
|
47
|
+
name: string;
|
|
48
|
+
/** Its size in bytes, when it was uploaded. */
|
|
49
|
+
size: number | undefined;
|
|
50
|
+
/** That size in the view's words (`media.fileSize`), `''` without one. */
|
|
51
|
+
sizeLabel: string;
|
|
52
|
+
/**
|
|
53
|
+
* The row's link (`<a href={row.src} {@attach row.link}>`): it downloads
|
|
54
|
+
* the file under its name, in a new tab without the opener, never dragged
|
|
55
|
+
* out of the editor.
|
|
56
|
+
*/
|
|
57
|
+
link: Attachment<HTMLElement>;
|
|
58
|
+
};
|
|
59
|
+
/** What an embed's `fallback` snippet receives: a link no allowed provider plays. */
|
|
60
|
+
export type EmbedFallbackPayload = {
|
|
61
|
+
/** The embed; `undefined` in a suggestion's preview. */
|
|
62
|
+
block: Block | undefined;
|
|
63
|
+
/** The link (`http(s)`), shown as a link, never in a frame. */
|
|
64
|
+
url: string;
|
|
65
|
+
/** Its link (`<a href={fallback.url} {@attach fallback.link}>`): a new tab without the opener. */
|
|
66
|
+
link: Attachment<HTMLElement>;
|
|
67
|
+
};
|
|
68
|
+
/** A media block's link opens a new tab without the opener (and tells the target nothing). */
|
|
69
|
+
export declare const LINK_REL = "noopener noreferrer nofollow";
|
|
70
|
+
/**
|
|
71
|
+
* A media block's link's attachment: a new tab without the opener
|
|
72
|
+
* (`target`, `rel`), and `own` (`draggable="false"`: no drag of its own; a
|
|
73
|
+
* file's `download` name). The default markup writes the same, so a server
|
|
74
|
+
* render's link is safe too; its `href` is the markup's.
|
|
75
|
+
*/
|
|
76
|
+
export declare const mediaLink: (own?: {
|
|
77
|
+
draggable?: "false";
|
|
78
|
+
download?: string;
|
|
79
|
+
}) => Attachment<HTMLElement>;
|
|
80
|
+
/** The app's markup for a media kind's own control in `view`, if any. */
|
|
81
|
+
export declare const mediaControl: <K extends "card" | "row" | "fallback">(kind: MediaKind, control: K) => (view: Edytor | undefined) => MediaView[K] | undefined;
|
|
82
|
+
/** The view's media kind, when a plugin of it is listed there. */
|
|
83
|
+
export declare const mediaView: (edytor: Edytor | undefined, kind: MediaKind) => MediaView | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* A media kind's plugin (Notion's): a void `figure` with an editable
|
|
86
|
+
* caption, its preset (its icon, `keywords`, its name in the view's
|
|
87
|
+
* `media` labels), and its view
|
|
88
|
+
* (`MediaView`), which the first plugin of the kind listed claims. `own`
|
|
89
|
+
* answers the kind's own parts: how it stores a source, its hooks and its
|
|
90
|
+
* record (its snippet, its export and import); `claims` says whether this
|
|
91
|
+
* plugin claimed the kind in `edytor`.
|
|
92
|
+
*/
|
|
93
|
+
export declare const mediaPlugin: (kind: MediaKind, keywords: string[], own: (edytor: Edytor, claims: boolean) => Pick<MediaView, "store" | "providers" | "card" | "row" | "fallback"> & {
|
|
94
|
+
hooks?: PluginOperations & PluginDefinitions;
|
|
95
|
+
record: Partial<BlockDefinition>;
|
|
96
|
+
}) => Plugin;
|
|
12
97
|
/**
|
|
13
98
|
* A web page's URL a media block may store or render: the link sanitizer's
|
|
14
99
|
* reading of it (`sanitizeLinkHref`: ASCII control characters and spaces stripped,
|
|
@@ -23,20 +108,6 @@ export declare const safeWebUrl: (value: unknown) => string | null;
|
|
|
23
108
|
* an inline file would be stored in the document and sent in every update.
|
|
24
109
|
*/
|
|
25
110
|
export declare const safeMediaSrc: (value: unknown) => string | null;
|
|
26
|
-
/** The file, video and audio plugins' options. */
|
|
27
|
-
export type MediaPluginOptions = {
|
|
28
|
-
/**
|
|
29
|
-
* Upload a file and answer its URL: the empty block's Upload button, and
|
|
30
|
-
* the pasted and dropped files the kind takes (`media.files`), each shown
|
|
31
|
-
* uploading with the progress it reports. Without it only links are
|
|
32
|
-
* embedded.
|
|
33
|
-
*/
|
|
34
|
-
upload?: Uploader;
|
|
35
|
-
/** The words the block shows (its empty panel, its menu row), over the English ones. */
|
|
36
|
-
labels?: PartialLabels<'media'>;
|
|
37
|
-
/** The slash menu's keywords of its command (`block.<kind>`), which replace its own. */
|
|
38
|
-
keywords?: Partial<Record<string, string[]>>;
|
|
39
|
-
};
|
|
40
111
|
/** One allowlisted embed provider: which links it plays, and its player. */
|
|
41
112
|
export type EmbedProvider = {
|
|
42
113
|
/** The provider's name: the frame's `title`. */
|
|
@@ -86,12 +157,4 @@ export declare const fileNameOf: (src: string) => string;
|
|
|
86
157
|
export declare const claimed: (element: HTMLElement, tag: string) => HTMLElement | undefined;
|
|
87
158
|
/** An imported `video`'s or `audio`'s source: its `src`, else its first `source`'s. */
|
|
88
159
|
export declare const mediaSourceOf: (element: HTMLElement | undefined) => string | null;
|
|
89
|
-
|
|
90
|
-
export declare const escapeHtml: (value: string) => string;
|
|
91
|
-
/**
|
|
92
|
-
* Register `type`'s uploads on the view's (`media.files`): with an
|
|
93
|
-
* `upload`, the files it takes (the file kind: any no other kind takes)
|
|
94
|
-
* become its blocks. Answers the paste hook to list, or `undefined`
|
|
95
|
-
* without an `upload` or a view.
|
|
96
|
-
*/
|
|
97
|
-
export declare const mediaUploads: (edytor: Edytor | undefined, type: "video" | "audio" | "file", upload: Uploader | undefined) => PluginOperations["onPaste"];
|
|
160
|
+
export { escapeHtml };
|