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
|
@@ -1,75 +1,76 @@
|
|
|
1
1
|
import type { Attachment } from 'svelte/attachments';
|
|
2
2
|
import type { Block } from '../../block/block.svelte.js';
|
|
3
|
-
import type { MediaKindLabels, MediaLabels } from '../../labels.js';
|
|
4
3
|
import type { MediaKind } from './media.js';
|
|
5
|
-
import { type FileUpload
|
|
6
|
-
/**
|
|
7
|
-
export
|
|
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>;
|
|
8
7
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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).
|
|
15
24
|
*/
|
|
16
25
|
export declare class MediaEmptyController {
|
|
26
|
+
#private;
|
|
17
27
|
/** The empty block; none in a suggestion's preview. */
|
|
18
28
|
readonly block: Block | undefined;
|
|
19
|
-
/** Which
|
|
20
|
-
readonly kind: MediaKind;
|
|
21
|
-
/** The kind's
|
|
22
|
-
|
|
23
|
-
private words;
|
|
24
|
-
private options;
|
|
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;
|
|
25
33
|
/** The link panel is open. */
|
|
26
34
|
open: boolean;
|
|
27
35
|
/** The link field's text. */
|
|
28
36
|
draft: string;
|
|
29
|
-
/** Why the last link or upload was not embedded (`
|
|
30
|
-
failed:
|
|
37
|
+
/** Why the last link or upload was not embedded (`null`: it was, or none was tried). */
|
|
38
|
+
failed: MediaEmptyFailure | null;
|
|
31
39
|
constructor(
|
|
32
40
|
/** The empty block; none in a suggestion's preview. */
|
|
33
41
|
block: Block | undefined,
|
|
34
|
-
/** Which
|
|
35
|
-
kind: MediaKind,
|
|
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);
|
|
36
46
|
/** The kind's icon (an emoji). */
|
|
37
|
-
icon
|
|
38
|
-
|
|
39
|
-
accept?: string;
|
|
40
|
-
upload?: Uploader;
|
|
41
|
-
/** Store a link; answers whether the block took it. */
|
|
42
|
-
link: (value: string) => boolean;
|
|
43
|
-
/** Store an uploaded file's URL; answers whether the block took it. */
|
|
44
|
-
file?: (file: File, src: string) => boolean;
|
|
45
|
-
});
|
|
46
|
-
/** The words of the view rendering it (a suggestion's preview included). */
|
|
47
|
-
get labels(): MediaLabels;
|
|
48
|
-
/** The kind's own words (its button, placeholder, submit and invalid link text). */
|
|
49
|
-
get kindLabels(): MediaKindLabels & {
|
|
50
|
-
addOrUpload?: string;
|
|
51
|
-
};
|
|
52
|
-
/** The button and placeholder text ("Embed a link"; the file's names its upload). */
|
|
53
|
-
get label(): string;
|
|
54
|
-
/** The file picker's `accept`. */
|
|
47
|
+
get icon(): string;
|
|
48
|
+
/** The file picker's `accept`: `image/*`, `video/*`, `audio/*`, else any file. */
|
|
55
49
|
get accept(): string | undefined;
|
|
56
50
|
/**
|
|
57
51
|
* No control may write: a readonly view, or a suggestion's preview (no
|
|
58
52
|
* block). Show a passive placeholder then.
|
|
59
53
|
*/
|
|
60
54
|
get readonly(): boolean;
|
|
61
|
-
/** The plugin
|
|
55
|
+
/** The kind's plugin was given an `upload`: offer Upload. */
|
|
62
56
|
get canUpload(): boolean;
|
|
63
|
-
/** The upload of a pasted or dropped file into this block, if any (its `status`, `progress`). */
|
|
57
|
+
/** The upload of a pasted or dropped file into this block, if any (its `status`, `progress`, `preview`). */
|
|
64
58
|
get pending(): FileUpload | undefined;
|
|
65
|
-
/**
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
/**
|
|
60
|
+
* The file uploading into this block, shown at once: its object URL
|
|
61
|
+
* (this view's only, never stored; revoked once the upload ends), else `null`.
|
|
62
|
+
*/
|
|
63
|
+
get preview(): string | null;
|
|
64
|
+
/** The share of the upload sent, `0` to `1`; `null` before a report, or with no upload. */
|
|
65
|
+
get progress(): number | null;
|
|
66
|
+
/** Embed `value` (default the `draft`): the block takes the link, or `failed` says why not. */
|
|
68
67
|
embed: (value?: string) => void;
|
|
69
68
|
/**
|
|
70
|
-
* Upload `file` with
|
|
71
|
-
*
|
|
72
|
-
*
|
|
69
|
+
* Upload `file` with its kind's uploader (its plugin's `upload`), the
|
|
70
|
+
* block showing it meanwhile (`pending`, `preview`, `progress`), and
|
|
71
|
+
* store the URL it answers, only on the block as it was picked from:
|
|
72
|
+
* still in the tree, of its kind and empty (a peer may have set a
|
|
73
|
+
* source, or deleted it, meanwhile).
|
|
73
74
|
*/
|
|
74
75
|
upload: (picked: File) => Promise<void>;
|
|
75
76
|
/** The link field (`{@attach empty.field}`): Enter embeds its `draft`. */
|
|
@@ -1,53 +1,51 @@
|
|
|
1
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
|
+
};
|
|
2
12
|
/**
|
|
3
|
-
* An empty media block's state (an
|
|
4
|
-
* audio track:
|
|
5
|
-
* the link field's `draft`, why the last link or upload was not
|
|
6
|
-
* (`failed`), and the upload of a pasted or dropped file
|
|
7
|
-
* `embed` and `upload` set the source. What
|
|
8
|
-
* snippet receives (one per empty block shown).
|
|
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).
|
|
9
19
|
*/
|
|
10
20
|
export class MediaEmptyController {
|
|
11
21
|
block;
|
|
12
22
|
kind;
|
|
13
|
-
|
|
14
|
-
words;
|
|
15
|
-
options;
|
|
23
|
+
view;
|
|
16
24
|
/** The link panel is open. */
|
|
17
25
|
open = $state(false);
|
|
18
26
|
/** The link field's text. */
|
|
19
27
|
draft = $state('');
|
|
20
|
-
/** Why the last link or upload was not embedded (`
|
|
21
|
-
failed = $state(
|
|
28
|
+
/** Why the last link or upload was not embedded (`null`: it was, or none was tried). */
|
|
29
|
+
failed = $state(null);
|
|
22
30
|
constructor(
|
|
23
31
|
/** The empty block; none in a suggestion's preview. */
|
|
24
32
|
block,
|
|
25
|
-
/** Which
|
|
33
|
+
/** Which kind it is (your words for it: its button, placeholder, errors). */
|
|
26
34
|
kind,
|
|
27
|
-
/** The kind's
|
|
28
|
-
|
|
35
|
+
/** The kind in the block's view. */
|
|
36
|
+
view) {
|
|
29
37
|
this.block = block;
|
|
30
38
|
this.kind = kind;
|
|
31
|
-
this.
|
|
32
|
-
this.words = words;
|
|
33
|
-
this.options = options;
|
|
34
|
-
}
|
|
35
|
-
/** The words of the view rendering it (a suggestion's preview included). */
|
|
36
|
-
get labels() {
|
|
37
|
-
return this.words();
|
|
39
|
+
this.view = view;
|
|
38
40
|
}
|
|
39
|
-
/** The kind's
|
|
40
|
-
get
|
|
41
|
-
return
|
|
42
|
-
}
|
|
43
|
-
/** The button and placeholder text ("Embed a link"; the file's names its upload). */
|
|
44
|
-
get label() {
|
|
45
|
-
const words = this.kindLabels;
|
|
46
|
-
return this.options.upload && words.addOrUpload ? words.addOrUpload : words.add;
|
|
41
|
+
/** The kind's icon (an emoji). */
|
|
42
|
+
get icon() {
|
|
43
|
+
return MEDIA_ICONS[this.kind];
|
|
47
44
|
}
|
|
48
|
-
/** The file picker's `accept
|
|
45
|
+
/** The file picker's `accept`: `image/*`, `video/*`, `audio/*`, else any file. */
|
|
49
46
|
get accept() {
|
|
50
|
-
|
|
47
|
+
const { kind } = this;
|
|
48
|
+
return kind === 'image' || kind === 'video' || kind === 'audio' ? `${kind}/*` : undefined;
|
|
51
49
|
}
|
|
52
50
|
/**
|
|
53
51
|
* No control may write: a readonly view, or a suggestion's preview (no
|
|
@@ -56,50 +54,60 @@ export class MediaEmptyController {
|
|
|
56
54
|
get readonly() {
|
|
57
55
|
return !this.block || this.block.edytor.readonly;
|
|
58
56
|
}
|
|
59
|
-
/** The plugin
|
|
57
|
+
/** The kind's plugin was given an `upload`: offer Upload. */
|
|
60
58
|
get canUpload() {
|
|
61
|
-
|
|
59
|
+
const { block } = this;
|
|
60
|
+
return Boolean(block && fileUploads(block.edytor) && block.definition.upload);
|
|
62
61
|
}
|
|
63
|
-
/** The upload of a pasted or dropped file into this block, if any (its `status`, `progress`). */
|
|
62
|
+
/** The upload of a pasted or dropped file into this block, if any (its `status`, `progress`, `preview`). */
|
|
64
63
|
get pending() {
|
|
65
64
|
const { block } = this;
|
|
66
65
|
return block ? fileUploads(block.edytor)?.of(block.id) : undefined;
|
|
67
66
|
}
|
|
68
|
-
/**
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
/**
|
|
68
|
+
* The file uploading into this block, shown at once: its object URL
|
|
69
|
+
* (this view's only, never stored; revoked once the upload ends), else `null`.
|
|
70
|
+
*/
|
|
71
|
+
get preview() {
|
|
72
|
+
const { pending } = this;
|
|
73
|
+
return pending?.status === 'uploading' ? pending.preview : null;
|
|
74
|
+
}
|
|
75
|
+
/** The share of the upload sent, `0` to `1`; `null` before a report, or with no upload. */
|
|
76
|
+
get progress() {
|
|
77
|
+
const { pending } = this;
|
|
78
|
+
return pending?.status === 'uploading' ? pending.progress : null;
|
|
79
|
+
}
|
|
80
|
+
/** Store `value` on the block: why it did not take it, or `null`. */
|
|
81
|
+
#store = (value, file) => this.block && this.view ? this.view.store(this.block, value, file) : 'invalid';
|
|
82
|
+
/** Embed `value` (default the `draft`): the block takes the link, or `failed` says why not. */
|
|
73
83
|
embed = (value = this.draft) => {
|
|
74
|
-
this.failed = this
|
|
84
|
+
this.failed = this.#store(value);
|
|
75
85
|
if (!this.failed && this.block)
|
|
76
86
|
fileUploads(this.block.edytor)?.clear(this.block.id);
|
|
77
87
|
};
|
|
78
88
|
/**
|
|
79
|
-
* Upload `file` with
|
|
80
|
-
*
|
|
81
|
-
*
|
|
89
|
+
* Upload `file` with its kind's uploader (its plugin's `upload`), the
|
|
90
|
+
* block showing it meanwhile (`pending`, `preview`, `progress`), and
|
|
91
|
+
* store the URL it answers, only on the block as it was picked from:
|
|
92
|
+
* still in the tree, of its kind and empty (a peer may have set a
|
|
93
|
+
* source, or deleted it, meanwhile).
|
|
82
94
|
*/
|
|
83
95
|
upload = async (picked) => {
|
|
84
96
|
const { block } = this;
|
|
85
|
-
const
|
|
86
|
-
if (!
|
|
97
|
+
const uploads = this.canUpload && fileUploads(block?.edytor);
|
|
98
|
+
if (!uploads || !block || block.edytor.readonly)
|
|
87
99
|
return;
|
|
88
100
|
const { edytor, id, type } = block;
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
101
|
+
const stored = await uploads.pick(id, picked, (src) => {
|
|
102
|
+
const live = edytor.idToBlock.get(id);
|
|
103
|
+
if (!live?.isInTree || live.type !== type || edytor.readonly)
|
|
104
|
+
return;
|
|
105
|
+
if (edytor.facade.blockDataOf(id)?.src !== undefined)
|
|
106
|
+
return;
|
|
107
|
+
this.failed = this.#store(src, picked);
|
|
108
|
+
});
|
|
109
|
+
if (!stored)
|
|
94
110
|
this.failed = 'upload';
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
const live = edytor.idToBlock.get(id);
|
|
98
|
-
if (!live?.isInTree || live.type !== type || edytor.readonly)
|
|
99
|
-
return;
|
|
100
|
-
if (edytor.facade.blockDataOf(id)?.src !== undefined)
|
|
101
|
-
return;
|
|
102
|
-
this.failed = (file ? file(picked, src) : link(src)) ? false : 'invalid';
|
|
103
111
|
};
|
|
104
112
|
/** The link field (`{@attach empty.field}`): Enter embeds its `draft`. */
|
|
105
113
|
field = (node) => {
|
|
@@ -109,7 +117,6 @@ export class MediaEmptyController {
|
|
|
109
117
|
event.preventDefault();
|
|
110
118
|
this.embed();
|
|
111
119
|
};
|
|
112
|
-
node
|
|
113
|
-
return () => node.removeEventListener('keydown', keydown);
|
|
120
|
+
return listen(node, 'keydown', keydown);
|
|
114
121
|
};
|
|
115
122
|
}
|
|
@@ -1,24 +1,106 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
2
|
import type { Edytor } from '../../edytor.svelte.js';
|
|
3
|
-
import type {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
|
|
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. */
|
|
8
9
|
export type MediaKind = 'embed' | 'bookmark' | 'file' | 'video' | 'audio';
|
|
10
|
+
export { MEDIA_ICONS };
|
|
9
11
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
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`).
|
|
12
16
|
*/
|
|
13
|
-
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 file is uploading (then `src` is its object URL, this view's only,
|
|
54
|
+
* never stored): the row shows it at once, with `progress`.
|
|
55
|
+
*/
|
|
56
|
+
uploading: boolean;
|
|
57
|
+
/** The share sent while it uploads, `0` to `1`; `null` before a report or once stored. */
|
|
58
|
+
progress: number | null;
|
|
59
|
+
/**
|
|
60
|
+
* The row's link (`<a href={row.src} {@attach row.link}>`): it downloads
|
|
61
|
+
* the file under its name, in a new tab without the opener, never dragged
|
|
62
|
+
* out of the editor.
|
|
63
|
+
*/
|
|
64
|
+
link: Attachment<HTMLElement>;
|
|
65
|
+
};
|
|
66
|
+
/** What an embed's `fallback` snippet receives: a link no allowed provider plays. */
|
|
67
|
+
export type EmbedFallbackPayload = {
|
|
68
|
+
/** The embed; `undefined` in a suggestion's preview. */
|
|
69
|
+
block: Block | undefined;
|
|
70
|
+
/** The link (`http(s)`), shown as a link, never in a frame. */
|
|
71
|
+
url: string;
|
|
72
|
+
/** Its link (`<a href={fallback.url} {@attach fallback.link}>`): a new tab without the opener. */
|
|
73
|
+
link: Attachment<HTMLElement>;
|
|
74
|
+
};
|
|
75
|
+
/** A media block's link opens a new tab without the opener (and tells the target nothing). */
|
|
76
|
+
export declare const LINK_REL = "noopener noreferrer nofollow";
|
|
14
77
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
78
|
+
* A media block's link's attachment: a new tab without the opener
|
|
79
|
+
* (`target`, `rel`), and `own` (`draggable="false"`: no drag of its own; a
|
|
80
|
+
* file's `download` name). The default markup writes the same, so a server
|
|
81
|
+
* render's link is safe too; its `href` is the markup's.
|
|
17
82
|
*/
|
|
18
|
-
export declare const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
83
|
+
export declare const mediaLink: (own?: {
|
|
84
|
+
draggable?: "false";
|
|
85
|
+
download?: string;
|
|
86
|
+
}) => Attachment<HTMLElement>;
|
|
87
|
+
/** The app's markup for a media kind's own control in `view`, if any. */
|
|
88
|
+
export declare const mediaControl: <K extends "card" | "row" | "fallback">(kind: MediaKind, control: K) => (view: Edytor | undefined) => MediaView[K] | undefined;
|
|
89
|
+
/** The view's media kind, when a plugin of it is listed there. */
|
|
90
|
+
export declare const mediaView: (edytor: Edytor | undefined, kind: MediaKind) => MediaView | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* A media kind's plugin (Notion's): a void `figure` with an editable
|
|
93
|
+
* caption, its preset (its icon, `keywords`, its name in the view's
|
|
94
|
+
* `media` labels), and its view
|
|
95
|
+
* (`MediaView`), which the first plugin of the kind listed claims. `own`
|
|
96
|
+
* answers the kind's own parts: how it stores a source, its hooks and its
|
|
97
|
+
* record (its snippet, its export and import); `claims` says whether this
|
|
98
|
+
* plugin claimed the kind in `edytor`.
|
|
99
|
+
*/
|
|
100
|
+
export declare const mediaPlugin: (kind: MediaKind, keywords: string[], own: (edytor: Edytor, claims: boolean) => Pick<MediaView, "store" | "providers" | "card" | "row" | "fallback"> & {
|
|
101
|
+
hooks?: PluginOperations & PluginDefinitions;
|
|
102
|
+
record: Partial<BlockDefinition>;
|
|
103
|
+
}) => Plugin;
|
|
22
104
|
/**
|
|
23
105
|
* A web page's URL a media block may store or render: the link sanitizer's
|
|
24
106
|
* reading of it (`sanitizeLinkHref`: ASCII control characters and spaces stripped,
|
|
@@ -33,27 +115,6 @@ export declare const safeWebUrl: (value: unknown) => string | null;
|
|
|
33
115
|
* an inline file would be stored in the document and sent in every update.
|
|
34
116
|
*/
|
|
35
117
|
export declare const safeMediaSrc: (value: unknown) => string | null;
|
|
36
|
-
/** The file, video and audio plugins' options. */
|
|
37
|
-
export type MediaPluginOptions = {
|
|
38
|
-
/**
|
|
39
|
-
* Upload a file and answer its URL: the empty block's Upload button, and
|
|
40
|
-
* the pasted and dropped files the kind takes (`media.files`), each shown
|
|
41
|
-
* uploading with the progress it reports. Without it only links are
|
|
42
|
-
* embedded.
|
|
43
|
-
*/
|
|
44
|
-
upload?: Uploader;
|
|
45
|
-
/** The words the block shows (its empty panel, its menu row), over the English ones. */
|
|
46
|
-
labels?: PartialLabels<'media'>;
|
|
47
|
-
/** The slash menu's keywords of its command (`block.<kind>`), which replace its own. */
|
|
48
|
-
keywords?: Partial<Record<string, string[]>>;
|
|
49
|
-
/**
|
|
50
|
-
* Replace an empty block's markup (its "Add …" button and link panel, its
|
|
51
|
-
* upload's progress, or a readonly view's placeholder): it receives the
|
|
52
|
-
* block's `MediaEmptyController` (`open`, `draft`, `failed`, `pending`,
|
|
53
|
-
* `embed`, `upload`, `readonly`).
|
|
54
|
-
*/
|
|
55
|
-
empty?: Snippet<[MediaEmptyController]>;
|
|
56
|
-
};
|
|
57
118
|
/** One allowlisted embed provider: which links it plays, and its player. */
|
|
58
119
|
export type EmbedProvider = {
|
|
59
120
|
/** The provider's name: the frame's `title`. */
|
|
@@ -103,12 +164,4 @@ export declare const fileNameOf: (src: string) => string;
|
|
|
103
164
|
export declare const claimed: (element: HTMLElement, tag: string) => HTMLElement | undefined;
|
|
104
165
|
/** An imported `video`'s or `audio`'s source: its `src`, else its first `source`'s. */
|
|
105
166
|
export declare const mediaSourceOf: (element: HTMLElement | undefined) => string | null;
|
|
106
|
-
|
|
107
|
-
export declare const escapeHtml: (value: string) => string;
|
|
108
|
-
/**
|
|
109
|
-
* Register `type`'s uploads on the view's (`media.files`): with an
|
|
110
|
-
* `upload`, the files it takes (the file kind: any no other kind takes)
|
|
111
|
-
* become its blocks. Answers the paste hook to list, or `undefined`
|
|
112
|
-
* without an `upload` or a view.
|
|
113
|
-
*/
|
|
114
|
-
export declare const mediaUploads: (edytor: Edytor | undefined, type: "video" | "audio" | "file", upload: Uploader | undefined) => PluginOperations["onPaste"];
|
|
167
|
+
export { escapeHtml };
|