edytor 1.0.0-rc.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -39
- package/dist/block/block.svelte.d.ts +11 -84
- package/dist/block/block.svelte.js +30 -134
- package/dist/block/colors.d.ts +0 -9
- package/dist/block/colors.js +1 -18
- package/dist/block/contentRange.d.ts +5 -1
- package/dist/block/contentRange.js +15 -16
- package/dist/block/inlineBlock.svelte.d.ts +11 -9
- package/dist/block/inlineBlock.svelte.js +18 -21
- package/dist/clipboard/createClipboardFragment.js +22 -64
- package/dist/clipboard/fragmentData.js +17 -42
- package/dist/clipboard/htmlFlow.js +7 -7
- package/dist/clipboard/insertClipboardFragment.js +5 -4
- package/dist/clipboard/moveText.js +16 -8
- package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
- package/dist/clipboard/serializeClipboardFragment.js +32 -28
- package/dist/cloudflare/DocumentRoom.d.ts +4 -17
- package/dist/cloudflare/DocumentRoom.js +3 -5
- package/dist/cloudflare/move.d.ts +1 -18
- package/dist/cloudflare/move.js +2 -48
- package/dist/cloudflare/room/admission.d.ts +1 -60
- package/dist/cloudflare/room/admission.js +25 -29
- package/dist/cloudflare/room/comments.d.ts +1 -3
- package/dist/cloudflare/room/comments.js +6 -6
- package/dist/cloudflare/room/context.d.ts +25 -82
- package/dist/cloudflare/room/context.js +8 -8
- package/dist/cloudflare/room/forged.d.ts +1 -1
- package/dist/cloudflare/room/forged.js +2 -12
- package/dist/cloudflare/room/frames.d.ts +1 -1
- package/dist/cloudflare/room/frames.js +1 -1
- package/dist/cloudflare/room/history.d.ts +1 -25
- package/dist/cloudflare/room/history.js +39 -54
- package/dist/cloudflare/room/moves.d.ts +1 -13
- package/dist/cloudflare/room/moves.js +33 -57
- package/dist/cloudflare/room/presence.d.ts +1 -11
- package/dist/cloudflare/room/presence.js +4 -4
- package/dist/cloudflare/room/purge.d.ts +1 -2
- package/dist/cloudflare/room/purge.js +2 -2
- package/dist/cloudflare/room/replicas.d.ts +1 -7
- package/dist/cloudflare/room/replicas.js +2 -2
- package/dist/cloudflare/room/storage.d.ts +3 -32
- package/dist/cloudflare/room/storage.js +33 -108
- package/dist/cloudflare/room/updates.d.ts +4 -4
- package/dist/cloudflare/room/updates.js +17 -24
- package/dist/cloudflare/room/validation.d.ts +1 -5
- package/dist/cloudflare/room/validation.js +16 -37
- package/dist/collaboration/RemoteSelections.svelte +13 -17
- package/dist/collaboration/awarenessSelection.d.ts +22 -1
- package/dist/collaboration/awarenessSelection.js +42 -0
- package/dist/collaboration/comments/client.d.ts +2 -2
- package/dist/collaboration/comments/client.js +1 -1
- package/dist/collaboration/history/index.d.ts +5 -5
- package/dist/collaboration/history/index.js +5 -5
- package/dist/collaboration/history/panel.svelte.d.ts +91 -0
- package/dist/collaboration/history/panel.svelte.js +223 -0
- package/dist/collaboration/providers.d.ts +12 -3
- package/dist/collaboration/providers.js +5 -4
- package/dist/components/Block.svelte +42 -56
- package/dist/components/Block.svelte.d.ts +7 -5
- package/dist/components/Content.svelte +1 -5
- package/dist/components/Edytor.svelte +82 -99
- package/dist/components/Edytor.svelte.d.ts +16 -13
- package/dist/components/InlineBlock.svelte +1 -1
- package/dist/components/Ranges.svelte +96 -0
- package/dist/components/Ranges.svelte.d.ts +19 -0
- package/dist/components/Suggestion.svelte +3 -2
- package/dist/components/Text.svelte +2 -5
- package/dist/components/Text.svelte.d.ts +1 -1
- package/dist/crdt/admission.d.ts +2 -9
- package/dist/crdt/admission.js +3 -9
- package/dist/crdt/attribution/attribution.d.ts +11 -72
- package/dist/crdt/attribution/attribution.js +5 -52
- package/dist/crdt/attribution/block.d.ts +0 -78
- package/dist/crdt/attribution/block.js +1 -144
- package/dist/crdt/data.d.ts +18 -13
- package/dist/crdt/data.js +49 -71
- package/dist/crdt/doc/anchors.js +4 -4
- package/dist/crdt/doc/content.d.ts +5 -1
- package/dist/crdt/doc/content.js +3 -1
- package/dist/crdt/doc/delete.d.ts +1 -0
- package/dist/crdt/doc/funnel.d.ts +0 -23
- package/dist/crdt/doc/funnel.js +34 -85
- package/dist/crdt/doc/gate.d.ts +8 -9
- package/dist/crdt/doc/gate.js +7 -17
- package/dist/crdt/doc/history.d.ts +87 -14
- package/dist/crdt/doc/history.js +334 -149
- package/dist/crdt/doc/layout.d.ts +0 -1
- package/dist/crdt/doc/layout.js +2 -3
- package/dist/crdt/doc/meta.d.ts +4 -4
- package/dist/crdt/doc/meta.js +10 -21
- package/dist/crdt/doc/moves.d.ts +4 -4
- package/dist/crdt/doc/moves.js +5 -5
- package/dist/crdt/doc/plan.d.ts +2 -0
- package/dist/crdt/doc/plan.js +2 -0
- package/dist/crdt/doc/reads.d.ts +8 -5
- package/dist/crdt/doc/reads.js +49 -50
- package/dist/crdt/doc/seed.d.ts +15 -6
- package/dist/crdt/doc/seed.js +27 -26
- package/dist/crdt/doc/split-merge.d.ts +1 -3
- package/dist/crdt/doc/split-merge.js +4 -5
- package/dist/crdt/doc/steps.d.ts +3 -7
- package/dist/crdt/doc/steps.js +20 -9
- package/dist/crdt/doc/types.d.ts +0 -10
- package/dist/crdt/document.d.ts +32 -115
- package/dist/crdt/document.js +216 -302
- package/dist/crdt/edytor-doc.d.ts +689 -90
- package/dist/crdt/edytor-doc.js +74 -149
- package/dist/crdt/engine-api.d.ts +15 -47
- package/dist/crdt/engine.d.ts +7 -17
- package/dist/crdt/engine.js +9 -19
- package/dist/crdt/flow.d.ts +9 -37
- package/dist/crdt/flow.js +260 -238
- package/dist/crdt/index.d.ts +32 -85
- package/dist/crdt/index.js +21 -47
- package/dist/crdt/operations.d.ts +24 -33
- package/dist/crdt/operations.js +8 -17
- package/dist/crdt/placement/display.d.ts +0 -2
- package/dist/crdt/placement/display.js +0 -15
- package/dist/crdt/placement/model.d.ts +160 -12
- package/dist/crdt/placement/model.js +413 -414
- package/dist/crdt/placement/rank.d.ts +1 -5
- package/dist/crdt/placement/rank.js +28 -38
- package/dist/crdt/props.d.ts +32 -0
- package/dist/crdt/props.js +172 -0
- package/dist/crdt/protocol.d.ts +4 -5
- package/dist/crdt/protocol.js +3 -4
- package/dist/crdt/protocols/awareness.d.ts +3 -7
- package/dist/crdt/protocols/awareness.js +17 -33
- package/dist/crdt/protocols/envelope.d.ts +9 -29
- package/dist/crdt/protocols/envelope.js +8 -25
- package/dist/crdt/protocols/sync.d.ts +15 -30
- package/dist/crdt/protocols/sync.js +27 -89
- package/dist/crdt/providers/bound.d.ts +3 -1
- package/dist/crdt/providers/bound.js +3 -1
- package/dist/crdt/providers/container.d.ts +11 -17
- package/dist/crdt/providers/container.js +39 -27
- package/dist/crdt/providers/index.d.ts +34 -6
- package/dist/crdt/providers/index.js +106 -111
- package/dist/crdt/providers/indexeddb.d.ts +2 -12
- package/dist/crdt/providers/indexeddb.js +29 -90
- package/dist/crdt/providers/room.d.ts +58 -2
- package/dist/crdt/providers/room.js +38 -21
- package/dist/crdt/providers/websocket.d.ts +1 -1
- package/dist/crdt/providers/websocket.js +3 -4
- package/dist/crdt/purge.d.ts +2 -2
- package/dist/crdt/purge.js +69 -6
- package/dist/crdt/rangeDelete.d.ts +4 -42
- package/dist/crdt/rangeDelete.js +7 -6
- package/dist/crdt/restore.d.ts +21 -1
- package/dist/crdt/restore.js +54 -59
- package/dist/crdt/schema.d.ts +2 -2
- package/dist/crdt/schema.js +4 -5
- package/dist/crdt/semantics.d.ts +10 -15
- package/dist/crdt/semantics.js +22 -21
- package/dist/crdt/storage.d.ts +7 -13
- package/dist/crdt/storage.js +10 -24
- package/dist/crdt/structs.d.ts +42 -47
- package/dist/crdt/structs.js +76 -67
- package/dist/crdt/tables.d.ts +9 -0
- package/dist/crdt/tables.js +20 -0
- package/dist/crdt/text/delete-index.d.ts +0 -13
- package/dist/crdt/text/delete-index.js +7 -14
- package/dist/crdt/text/deletes.d.ts +9 -22
- package/dist/crdt/text/deletes.js +11 -74
- package/dist/crdt/text/index/cache.js +3 -3
- package/dist/crdt/text/index/fold.d.ts +1 -2
- package/dist/crdt/text/index/fold.js +15 -10
- package/dist/crdt/text/index/layout.d.ts +0 -10
- package/dist/crdt/text/index/layout.js +6 -20
- package/dist/crdt/text/index/records.js +2 -1
- package/dist/crdt/text/index/report.js +5 -6
- package/dist/crdt/text/index/shared.d.ts +11 -4
- package/dist/crdt/text/index/shared.js +8 -7
- package/dist/crdt/text/index/state.d.ts +3 -33
- package/dist/crdt/text/index/state.js +2 -4
- package/dist/crdt/text/model.d.ts +82 -2
- package/dist/crdt/text/model.js +344 -354
- package/dist/crdt/text/rows.d.ts +0 -2
- package/dist/crdt/text/rows.js +0 -11
- package/dist/crdt/text/runs.d.ts +6 -3
- package/dist/crdt/text/runs.js +132 -137
- package/dist/crdt/text/streams.d.ts +1 -1
- package/dist/crdt/text/streams.js +1 -1
- package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
- package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
- package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
- package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
- package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
- package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
- package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
- package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
- package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
- package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
- package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
- package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
- package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
- package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
- package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
- package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
- package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
- package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
- package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
- package/dist/crdt/vendor/yjs/global.d.ts +5 -26
- package/dist/crdt/vendor/yjs/src/index.js +11 -25
- package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
- package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
- package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
- package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
- package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
- package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
- package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
- package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
- package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
- package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
- package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
- package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
- package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
- package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
- package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
- package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
- package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
- package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
- package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
- package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
- package/dist/dnd/autoScroll.js +1 -2
- package/dist/{plugins/blockHandles → dnd}/dropIndicator.d.ts +2 -2
- package/dist/{plugins/blockHandles → dnd}/dropIndicator.js +52 -60
- package/dist/{plugins/blockHandles → dnd}/geometry.d.ts +4 -3
- package/dist/{plugins/blockHandles → dnd}/geometry.js +6 -6
- package/dist/dnd/placement.d.ts +200 -0
- package/dist/dnd/placement.js +426 -0
- package/dist/dnd/pragmatic.d.ts +4 -22
- package/dist/dnd/pragmatic.js +7 -26
- package/dist/dnd/track.d.ts +14 -0
- package/dist/dnd/track.js +55 -0
- package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +36 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
- package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
- package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
- package/dist/edytor.svelte.d.ts +46 -63
- package/dist/edytor.svelte.js +126 -181
- package/dist/events/beforeInputCommands.d.ts +6 -11
- package/dist/events/beforeInputCommands.js +189 -181
- package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
- package/dist/events/beforeInputDeleteCommands.js +153 -204
- package/dist/events/domTextOffset.d.ts +9 -9
- package/dist/events/domTextOffset.js +20 -48
- package/dist/events/events.utils.d.ts +0 -2
- package/dist/events/events.utils.js +0 -4
- package/dist/events/nativeInteractiveControl.d.ts +13 -13
- package/dist/events/nativeInteractiveControl.js +28 -56
- package/dist/events/onBeforeInput.d.ts +6 -1
- package/dist/events/onBeforeInput.js +207 -331
- package/dist/events/onCopy.js +1 -5
- package/dist/events/onDrop.d.ts +7 -1
- package/dist/events/onDrop.js +64 -78
- package/dist/events/onFocus.d.ts +9 -4
- package/dist/events/onFocus.js +45 -67
- package/dist/events/onInput.d.ts +8 -4
- package/dist/events/onInput.js +34 -147
- package/dist/events/onKeyDown.js +55 -122
- package/dist/events/onPaste.d.ts +14 -1
- package/dist/events/onPaste.js +51 -76
- package/dist/index.d.ts +11 -15
- package/dist/index.js +3 -3
- package/dist/kinds.d.ts +4 -6
- package/dist/kinds.js +28 -27
- package/dist/labels.d.ts +83 -320
- package/dist/labels.js +181 -408
- package/dist/plugins/Chrome.svelte +29 -0
- package/dist/plugins/Chrome.svelte.d.ts +32 -0
- package/dist/plugins/Control.svelte +23 -0
- package/dist/plugins/Control.svelte.d.ts +30 -0
- package/dist/plugins/anchored.svelte.d.ts +47 -0
- package/dist/plugins/anchored.svelte.js +73 -0
- package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
- package/dist/plugins/arrowMove/arrowMove.js +9 -5
- package/dist/plugins/bands.svelte.d.ts +57 -0
- package/dist/plugins/bands.svelte.js +95 -0
- package/dist/plugins/blockHandles/BlockHandle.svelte +14 -154
- package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +21 -196
- package/dist/plugins/blockHandles/BlockHandleController.svelte.js +158 -573
- package/dist/plugins/blockHandles/BlockHandles.svelte +15 -23
- package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +25 -39
- package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -185
- package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
- package/dist/plugins/blockHandles/dragPreview.js +18 -16
- package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +28 -38
- package/dist/plugins/blockMenu/BlockMenuController.svelte.js +116 -183
- package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
- package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
- package/dist/plugins/brand.d.ts +8 -0
- package/dist/plugins/brand.js +8 -0
- package/dist/plugins/chrome.d.ts +45 -38
- package/dist/plugins/chrome.js +59 -36
- package/dist/plugins/code/CodeHeader.svelte +8 -38
- package/dist/plugins/code/CodePlugin.svelte +53 -56
- package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
- package/dist/plugins/code/LanguageMenu.svelte +16 -125
- package/dist/plugins/code/LanguageMenu.svelte.d.ts +2 -1
- package/dist/plugins/code/code.css +5 -117
- package/dist/plugins/code/header.svelte.d.ts +2 -11
- package/dist/plugins/code/header.svelte.js +11 -38
- package/dist/plugins/code/languageMenu.svelte.d.ts +12 -32
- package/dist/plugins/code/languageMenu.svelte.js +30 -160
- package/dist/plugins/code/languages.d.ts +9 -22
- package/dist/plugins/code/languages.js +39 -128
- package/dist/plugins/columns/ColumnResize.svelte +16 -27
- package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
- package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
- package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
- package/dist/plugins/columns/columns.css +7 -26
- package/dist/plugins/columns/gaps.d.ts +7 -5
- package/dist/plugins/columns/gaps.js +11 -6
- package/dist/plugins/columns/resize.svelte.d.ts +17 -54
- package/dist/plugins/columns/resize.svelte.js +80 -173
- package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
- package/dist/plugins/comments/CommentsController.svelte.js +14 -25
- package/dist/plugins/comments/CommentsSidebar.svelte +82 -431
- package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +4 -2
- package/dist/plugins/comments/commentsPlugin.d.ts +25 -9
- package/dist/plugins/comments/commentsPlugin.js +12 -10
- package/dist/plugins/equation/EquationEditor.svelte +16 -130
- package/dist/plugins/equation/EquationEditor.svelte.d.ts +1 -2
- package/dist/plugins/equation/EquationPlugin.svelte +109 -172
- package/dist/plugins/equation/EquationPlugin.svelte.d.ts +3 -2
- package/dist/plugins/equation/EquationView.svelte +20 -11
- package/dist/plugins/equation/equation.css +7 -0
- package/dist/plugins/equation/equation.svelte.d.ts +37 -24
- package/dist/plugins/equation/equation.svelte.js +20 -94
- package/dist/plugins/equation/katex.js +6 -9
- package/dist/plugins/fileDrop.d.ts +28 -0
- package/dist/plugins/fileDrop.js +116 -0
- package/dist/plugins/find/FindController.svelte.d.ts +8 -13
- package/dist/plugins/find/FindController.svelte.js +34 -55
- package/dist/plugins/find/findPlugin.d.ts +4 -8
- package/dist/plugins/find/findPlugin.js +29 -9
- package/dist/plugins/image/ImageChrome.svelte +6 -167
- package/dist/plugins/image/ImageChrome.svelte.d.ts +0 -2
- package/dist/plugins/image/ImagePlugin.svelte +71 -151
- package/dist/plugins/image/ImagePlugin.svelte.d.ts +12 -41
- package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
- package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
- package/dist/plugins/image/controls.svelte.d.ts +6 -36
- package/dist/plugins/image/controls.svelte.js +43 -212
- package/dist/plugins/image/image.css +17 -0
- package/dist/plugins/image/image.d.ts +0 -5
- package/dist/plugins/image/image.js +0 -3
- package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
- package/dist/plugins/image/toolbar.svelte.js +145 -0
- package/dist/plugins/index.d.ts +30 -26
- package/dist/plugins/index.js +28 -22
- package/dist/plugins/list.svelte.d.ts +128 -0
- package/dist/plugins/list.svelte.js +217 -0
- package/dist/plugins/markdownShortcuts.d.ts +1 -1
- package/dist/plugins/markdownShortcuts.js +10 -9
- package/dist/plugins/marquee/MarqueeBox.svelte +3 -20
- package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +1 -1
- package/dist/plugins/marquee/MarqueeController.svelte.d.ts +0 -2
- package/dist/plugins/marquee/MarqueeController.svelte.js +20 -23
- package/dist/plugins/marquee/marquee.js +4 -21
- package/dist/plugins/marquee/marqueePlugin.d.ts +4 -3
- package/dist/plugins/marquee/marqueePlugin.js +16 -15
- package/dist/plugins/media/AudioPlugin.svelte +13 -88
- package/dist/plugins/media/AudioPlugin.svelte.d.ts +11 -4
- package/dist/plugins/media/BookmarkPlugin.svelte +113 -120
- package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +10 -15
- package/dist/plugins/media/EmbedPlugin.svelte +82 -86
- package/dist/plugins/media/EmbedPlugin.svelte.d.ts +11 -17
- package/dist/plugins/media/EmptySlot.svelte +44 -0
- package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
- package/dist/plugins/media/FilePlugin.svelte +45 -113
- package/dist/plugins/media/FilePlugin.svelte.d.ts +21 -4
- package/dist/plugins/media/MediaEmpty.svelte +51 -90
- package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
- package/dist/plugins/media/SourceBlock.svelte +200 -0
- package/dist/plugins/media/SourceBlock.svelte.d.ts +34 -0
- package/dist/plugins/media/UploadPreview.svelte +32 -0
- package/dist/plugins/media/UploadPreview.svelte.d.ts +11 -0
- package/dist/plugins/media/VideoPlugin.svelte +14 -97
- package/dist/plugins/media/VideoPlugin.svelte.d.ts +12 -5
- package/dist/plugins/media/empty.svelte.d.ts +47 -46
- package/dist/plugins/media/empty.svelte.js +67 -60
- package/dist/plugins/media/media.d.ts +97 -44
- package/dist/plugins/media/media.js +77 -99
- package/dist/plugins/media/upload.css +23 -0
- package/dist/plugins/media/urlPaste.svelte.d.ts +6 -37
- package/dist/plugins/media/urlPaste.svelte.js +32 -102
- package/dist/plugins/mention/MentionPlugin.svelte +84 -126
- package/dist/plugins/mention/MentionPlugin.svelte.d.ts +17 -27
- package/dist/plugins/mention/mention.css +6 -0
- package/dist/plugins/page/PageLink.svelte +54 -38
- package/dist/plugins/page/PagePlugin.svelte +20 -18
- package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
- package/dist/plugins/page/page.d.ts +35 -9
- package/dist/plugins/page/page.js +3 -4
- package/dist/plugins/pageLink/PageLinkPlugin.svelte +154 -109
- package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +19 -26
- package/dist/plugins/pageLink/pageLink.css +6 -0
- package/dist/plugins/planned.d.ts +10 -0
- package/dist/plugins/planned.js +12 -0
- package/dist/plugins/richtext/CalloutIcon.svelte +13 -26
- package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
- package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
- package/dist/plugins/richtext/EmptyBody.svelte +13 -20
- package/dist/plugins/richtext/RichTextControl.svelte +39 -0
- package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
- package/dist/plugins/richtext/RichTextPlugin.svelte +174 -183
- package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +34 -34
- package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
- package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
- package/dist/plugins/richtext/body.js +2 -2
- package/dist/plugins/richtext/calloutIcons.svelte.d.ts +50 -55
- package/dist/plugins/richtext/calloutIcons.svelte.js +86 -174
- package/dist/plugins/richtext/callouts.d.ts +15 -0
- package/dist/plugins/richtext/callouts.js +23 -0
- package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
- package/dist/plugins/richtext/controls.svelte.js +126 -0
- package/dist/plugins/richtext/richTextOperations.js +37 -28
- package/dist/plugins/richtext/richtext.css +6 -0
- package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +2 -14
- package/dist/plugins/slashMenu/SlashMenuController.svelte.js +34 -71
- package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +9 -26
- package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
- package/dist/plugins/suggestions/SuggestionBars.svelte +27 -84
- package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
- package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -18
- package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
- package/dist/plugins/table/TableChrome.svelte +40 -124
- package/dist/plugins/table/TablePlugin.svelte +106 -168
- package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
- package/dist/plugins/table/chrome.svelte.d.ts +38 -141
- package/dist/plugins/table/chrome.svelte.js +340 -589
- package/dist/plugins/table/ops.d.ts +47 -0
- package/dist/plugins/table/ops.js +233 -0
- package/dist/plugins/table/table.css +16 -152
- package/dist/plugins/table/table.d.ts +15 -14
- package/dist/plugins/table/table.js +22 -16
- package/dist/plugins/toc/TableOfContents.svelte +32 -38
- package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
- package/dist/plugins/toc/TocPlugin.svelte +22 -22
- package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
- package/dist/plugins/toc/toc.d.ts +41 -10
- package/dist/plugins/toc/toc.js +2 -3
- package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +4 -68
- package/dist/plugins/toolbar/ToolbarController.svelte.js +63 -89
- package/dist/plugins/toolbar/toolbarPlugin.d.ts +8 -18
- package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
- package/dist/plugins/triggers/TriggerController.svelte.d.ts +4 -68
- package/dist/plugins/triggers/TriggerController.svelte.js +48 -129
- package/dist/plugins/triggers/place.d.ts +0 -9
- package/dist/plugins/triggers/place.js +1 -17
- package/dist/plugins/triggers/triggers.d.ts +31 -9
- package/dist/plugins/triggers/triggers.js +82 -62
- package/dist/plugins/uploads.svelte.d.ts +55 -24
- package/dist/plugins/uploads.svelte.js +123 -50
- package/dist/plugins.d.ts +187 -66
- package/dist/selection/domSelection.d.ts +13 -4
- package/dist/selection/domSelection.js +110 -183
- package/dist/selection/pointer.svelte.d.ts +8 -10
- package/dist/selection/pointer.svelte.js +32 -73
- package/dist/selection/replaceSelection.d.ts +21 -22
- package/dist/selection/replaceSelection.js +60 -69
- package/dist/selection/selection.svelte.d.ts +5 -73
- package/dist/selection/selection.svelte.js +224 -542
- package/dist/selection/selection.utils.d.ts +34 -11
- package/dist/selection/selection.utils.js +128 -247
- package/dist/selection/visibility.d.ts +3 -8
- package/dist/selection/visibility.js +7 -5
- package/dist/session/announcer.svelte.d.ts +2 -1
- package/dist/session/announcer.svelte.js +7 -3
- package/dist/session/attempt.d.ts +43 -39
- package/dist/session/attempt.js +62 -55
- package/dist/session/bindings.js +117 -145
- package/dist/session/commands.d.ts +47 -22
- package/dist/session/commands.js +208 -208
- package/dist/session/composition.svelte.d.ts +2 -4
- package/dist/session/composition.svelte.js +55 -65
- package/dist/session/editing/text.d.ts +6 -0
- package/dist/session/editing/text.js +17 -3
- package/dist/session/handles.d.ts +10 -1
- package/dist/session/handles.js +28 -0
- package/dist/session/history.d.ts +0 -4
- package/dist/session/history.js +16 -21
- package/dist/session/inputRules.d.ts +6 -3
- package/dist/session/inputRules.js +78 -83
- package/dist/session/keymap.d.ts +1 -6
- package/dist/session/keymap.js +17 -20
- package/dist/session/moves.d.ts +43 -10
- package/dist/session/moves.js +101 -59
- package/dist/session/navigation.d.ts +10 -2
- package/dist/session/navigation.js +140 -172
- package/dist/session/ports.d.ts +2 -7
- package/dist/session/props.d.ts +25 -25
- package/dist/session/props.js +62 -159
- package/dist/session/selection.d.ts +4 -3
- package/dist/session/selection.js +5 -0
- package/dist/session/suggestions.svelte.d.ts +1 -1
- package/dist/session/suggestions.svelte.js +42 -47
- package/dist/session/uploads.d.ts +29 -0
- package/dist/session/uploads.js +10 -0
- package/dist/session/virtual.d.ts +3 -3
- package/dist/session/virtual.js +18 -40
- package/dist/surface/attributes.d.ts +1 -0
- package/dist/surface/attributes.js +3 -26
- package/dist/surface/cells.d.ts +5 -0
- package/dist/surface/cells.js +5 -0
- package/dist/surface/lines.d.ts +2 -2
- package/dist/surface/lines.js +1 -1
- package/dist/surface/observer.svelte.d.ts +3 -20
- package/dist/surface/observer.svelte.js +52 -72
- package/dist/surface/overlay.d.ts +41 -3
- package/dist/surface/overlay.js +92 -37
- package/dist/surface/pin.svelte.d.ts +5 -0
- package/dist/surface/pin.svelte.js +5 -0
- package/dist/surface/projector.svelte.d.ts +4 -6
- package/dist/surface/projector.svelte.js +42 -69
- package/dist/text/text.svelte.d.ts +14 -40
- package/dist/text/text.svelte.js +35 -51
- package/dist/text/wordBoundary.d.ts +19 -0
- package/dist/text/wordBoundary.js +29 -44
- package/dist/themes/notion.css +272 -106
- package/dist/utils/json.d.ts +3 -1
- package/dist/utils/json.js +52 -51
- package/dist/utils/listen.d.ts +8 -0
- package/dist/utils/listen.js +19 -0
- package/package.json +4 -5
- package/dist/block/block.utils.d.ts +0 -340
- package/dist/block/block.utils.js +0 -356
- package/dist/collaboration/history/HistoryPanel.svelte +0 -554
- package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
- package/dist/collaboration/history/panel.d.ts +0 -61
- package/dist/collaboration/history/panel.js +0 -3
- package/dist/components/SuggestionRanges.svelte +0 -58
- package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
- package/dist/crdt/doc/table.d.ts +0 -21
- package/dist/crdt/doc/table.js +0 -288
- package/dist/crdt/migration/generation.d.ts +0 -58
- package/dist/crdt/migration/generation.js +0 -70
- package/dist/crdt/migration/legacy-schema.d.ts +0 -61
- package/dist/crdt/migration/legacy-schema.js +0 -151
- package/dist/crdt/migration/migrate.d.ts +0 -56
- package/dist/crdt/migration/migrate.js +0 -227
- package/dist/crdt/nodes.d.ts +0 -121
- package/dist/crdt/nodes.js +0 -56
- package/dist/crdt/text/index/checks.d.ts +0 -15
- package/dist/crdt/text/index/checks.js +0 -156
- package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
- package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
- package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
- package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
- package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
- package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
- package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
- package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
- package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
- package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
- package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
- package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
- package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
- package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
- package/dist/edytor.utils.d.ts +0 -50
- package/dist/edytor.utils.js +0 -67
- package/dist/plugins/blockMenu/BlockMenu.svelte +0 -335
- package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
- package/dist/plugins/find/FindBar.svelte +0 -170
- package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
- package/dist/plugins/find/FindHighlights.svelte +0 -75
- package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
- package/dist/plugins/icons.d.ts +0 -2
- package/dist/plugins/icons.js +0 -63
- package/dist/plugins/image/ImageEmpty.svelte +0 -93
- package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -15
- package/dist/plugins/image/empty.svelte.d.ts +0 -56
- package/dist/plugins/image/empty.svelte.js +0 -83
- package/dist/plugins/keepInView.d.ts +0 -4
- package/dist/plugins/keepInView.js +0 -6
- package/dist/plugins/media/UrlPasteMenu.svelte +0 -92
- package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -9
- package/dist/plugins/richtext/CalloutIconMenu.svelte +0 -98
- package/dist/plugins/richtext/CalloutIconMenu.svelte.d.ts +0 -9
- package/dist/plugins/richtext/labels.d.ts +0 -9
- package/dist/plugins/richtext/labels.js +0 -7
- package/dist/plugins/slashMenu/SlashMenu.svelte +0 -276
- package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
- package/dist/plugins/table/dragPreview.d.ts +0 -29
- package/dist/plugins/table/dragPreview.js +0 -103
- package/dist/plugins/toolbar/LinkCard.svelte +0 -122
- package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -9
- package/dist/plugins/toolbar/Toolbar.svelte +0 -349
- package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
- package/dist/plugins/triggers/TriggerMenu.svelte +0 -135
- package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
- package/dist/text/deltas.d.ts +0 -22
- package/dist/text/deltas.js +0 -46
- package/dist/text/text.utils.d.ts +0 -45
- package/dist/text/text.utils.js +0 -199
- /package/dist/{plugins/columns → dnd}/stacking.d.ts +0 -0
- /package/dist/{plugins/columns → dnd}/stacking.js +0 -0
package/dist/themes/notion.css
CHANGED
|
@@ -275,8 +275,6 @@
|
|
|
275
275
|
height: 24px;
|
|
276
276
|
border-radius: 6px;
|
|
277
277
|
background: currentColor;
|
|
278
|
-
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.5 8.8h7a.5.5 0 0 1 .4.8l-3.5 4.7a.5.5 0 0 1-.8 0L8.1 9.6a.5.5 0 0 1 .4-.8z'/%3E%3C/svg%3E")
|
|
279
|
-
center / 24px no-repeat;
|
|
280
278
|
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8.5 8.8h7a.5.5 0 0 1 .4.8l-3.5 4.7a.5.5 0 0 1-.8 0L8.1 9.6a.5.5 0 0 1 .4-.8z'/%3E%3C/svg%3E")
|
|
281
279
|
center / 24px no-repeat;
|
|
282
280
|
transform: rotate(-90deg);
|
|
@@ -342,9 +340,16 @@
|
|
|
342
340
|
.edytor-notion [data-edytor-callout-title] {
|
|
343
341
|
font-weight: 600;
|
|
344
342
|
}
|
|
345
|
-
/* The icon button
|
|
343
|
+
/* The icon button reads as the icon, with a soft hover, as Notion's. */
|
|
346
344
|
.edytor-notion button[data-edytor-callout-icon] {
|
|
345
|
+
padding: 0;
|
|
346
|
+
border: 0;
|
|
347
347
|
border-radius: 4px;
|
|
348
|
+
background: transparent;
|
|
349
|
+
color: inherit;
|
|
350
|
+
font: inherit;
|
|
351
|
+
font-size: 18px;
|
|
352
|
+
cursor: pointer;
|
|
348
353
|
transition: background-color 120ms ease-in;
|
|
349
354
|
}
|
|
350
355
|
.edytor-notion button[data-edytor-callout-icon]:hover,
|
|
@@ -377,6 +382,7 @@
|
|
|
377
382
|
padding: 3px 2px;
|
|
378
383
|
color: var(--notion-text-secondary);
|
|
379
384
|
font-weight: 400;
|
|
385
|
+
cursor: pointer;
|
|
380
386
|
}
|
|
381
387
|
.edytor-notion [data-edytor-empty-body]:hover {
|
|
382
388
|
border-radius: 4px;
|
|
@@ -412,62 +418,6 @@
|
|
|
412
418
|
flex-direction: column;
|
|
413
419
|
gap: 8px;
|
|
414
420
|
}
|
|
415
|
-
.edytor-notion [data-edytor-image-add],
|
|
416
|
-
.edytor-notion [data-edytor-image-placeholder] {
|
|
417
|
-
display: flex;
|
|
418
|
-
align-items: center;
|
|
419
|
-
gap: 10px;
|
|
420
|
-
width: 100%;
|
|
421
|
-
padding: 12px 36px 12px 12px;
|
|
422
|
-
border-radius: 6px;
|
|
423
|
-
background: rgba(33, 27, 23, 0.04);
|
|
424
|
-
color: var(--notion-text-secondary);
|
|
425
|
-
font: inherit;
|
|
426
|
-
font-size: 14px;
|
|
427
|
-
text-align: left;
|
|
428
|
-
cursor: pointer;
|
|
429
|
-
transition: background-color 80ms ease;
|
|
430
|
-
}
|
|
431
|
-
.edytor-notion [data-edytor-image-placeholder] {
|
|
432
|
-
cursor: default;
|
|
433
|
-
}
|
|
434
|
-
.edytor-notion [data-edytor-image-add]:hover {
|
|
435
|
-
background: rgba(33, 27, 23, 0.07);
|
|
436
|
-
}
|
|
437
|
-
.edytor-notion [data-edytor-image-form] {
|
|
438
|
-
display: flex;
|
|
439
|
-
flex-wrap: wrap;
|
|
440
|
-
align-items: center;
|
|
441
|
-
gap: 8px;
|
|
442
|
-
}
|
|
443
|
-
.edytor-notion [data-edytor-image-form] input:not([type='file']) {
|
|
444
|
-
flex: 1;
|
|
445
|
-
min-width: 200px;
|
|
446
|
-
height: 32px;
|
|
447
|
-
padding: 0 10px;
|
|
448
|
-
border-radius: 6px;
|
|
449
|
-
background: rgba(242, 241, 238, 0.6);
|
|
450
|
-
box-shadow: inset 0 0 0 1px rgba(15, 15, 15, 0.1);
|
|
451
|
-
font: inherit;
|
|
452
|
-
font-size: 14px;
|
|
453
|
-
outline: 0;
|
|
454
|
-
}
|
|
455
|
-
.edytor-notion [data-edytor-image-form] button,
|
|
456
|
-
.edytor-notion [data-edytor-image-upload] {
|
|
457
|
-
height: 32px;
|
|
458
|
-
padding: 0 12px;
|
|
459
|
-
border-radius: 6px;
|
|
460
|
-
background: var(--notion-blue);
|
|
461
|
-
color: #fff;
|
|
462
|
-
font-size: 14px;
|
|
463
|
-
font-weight: 500;
|
|
464
|
-
line-height: 32px;
|
|
465
|
-
cursor: pointer;
|
|
466
|
-
}
|
|
467
|
-
.edytor-notion [data-edytor-image-form] small {
|
|
468
|
-
flex-basis: 100%;
|
|
469
|
-
color: #cf5148;
|
|
470
|
-
}
|
|
471
421
|
.edytor-notion [data-edytor-type='image'] figcaption {
|
|
472
422
|
padding: 6px 2px 2px;
|
|
473
423
|
color: var(--notion-text-secondary);
|
|
@@ -498,8 +448,6 @@
|
|
|
498
448
|
flex-direction: column;
|
|
499
449
|
gap: 8px;
|
|
500
450
|
}
|
|
501
|
-
.edytor-notion [data-edytor-media-add],
|
|
502
|
-
.edytor-notion [data-edytor-media-placeholder],
|
|
503
451
|
.edytor-notion [data-edytor-embed-unsupported] a,
|
|
504
452
|
.edytor-notion [data-edytor-file] a {
|
|
505
453
|
display: flex;
|
|
@@ -525,48 +473,10 @@
|
|
|
525
473
|
color: var(--notion-text-secondary);
|
|
526
474
|
font-size: 12px;
|
|
527
475
|
}
|
|
528
|
-
.edytor-notion [data-edytor-media-placeholder] {
|
|
529
|
-
cursor: default;
|
|
530
|
-
}
|
|
531
|
-
.edytor-notion [data-edytor-media-add]:hover,
|
|
532
476
|
.edytor-notion [data-edytor-embed-unsupported] a:hover,
|
|
533
477
|
.edytor-notion [data-edytor-file] a:hover {
|
|
534
478
|
background: rgba(33, 27, 23, 0.07);
|
|
535
479
|
}
|
|
536
|
-
.edytor-notion [data-edytor-media-form] {
|
|
537
|
-
display: flex;
|
|
538
|
-
flex-wrap: wrap;
|
|
539
|
-
align-items: center;
|
|
540
|
-
gap: 8px;
|
|
541
|
-
}
|
|
542
|
-
.edytor-notion [data-edytor-media-form] input:not([type='file']) {
|
|
543
|
-
flex: 1;
|
|
544
|
-
min-width: 200px;
|
|
545
|
-
height: 32px;
|
|
546
|
-
padding: 0 10px;
|
|
547
|
-
border-radius: 6px;
|
|
548
|
-
background: rgba(242, 241, 238, 0.6);
|
|
549
|
-
box-shadow: inset 0 0 0 1px rgba(15, 15, 15, 0.1);
|
|
550
|
-
font: inherit;
|
|
551
|
-
font-size: 14px;
|
|
552
|
-
outline: 0;
|
|
553
|
-
}
|
|
554
|
-
.edytor-notion [data-edytor-media-form] button,
|
|
555
|
-
.edytor-notion [data-edytor-media-upload] {
|
|
556
|
-
height: 32px;
|
|
557
|
-
padding: 0 12px;
|
|
558
|
-
border-radius: 6px;
|
|
559
|
-
background: var(--notion-blue);
|
|
560
|
-
color: #fff;
|
|
561
|
-
font-size: 14px;
|
|
562
|
-
font-weight: 500;
|
|
563
|
-
line-height: 32px;
|
|
564
|
-
cursor: pointer;
|
|
565
|
-
}
|
|
566
|
-
.edytor-notion [data-edytor-media-form] small {
|
|
567
|
-
flex-basis: 100%;
|
|
568
|
-
color: #cf5148;
|
|
569
|
-
}
|
|
570
480
|
.edytor-notion [data-edytor-bookmark] a {
|
|
571
481
|
display: flex;
|
|
572
482
|
overflow: hidden;
|
|
@@ -641,17 +551,140 @@
|
|
|
641
551
|
}
|
|
642
552
|
|
|
643
553
|
/* ── Code ───────────────────────────────────────────────────────────── */
|
|
554
|
+
/* A warm gray panel with room at its top for the app's header (the
|
|
555
|
+
language's button, Copy), placed over it; `--edytor-code-background`
|
|
556
|
+
and `--edytor-code-color` set the panel and its text. */
|
|
644
557
|
.edytor-notion [data-edytor-type='code'] {
|
|
558
|
+
position: relative;
|
|
645
559
|
margin: 4px 0;
|
|
646
560
|
padding: 34px 16px 32px 32px;
|
|
647
561
|
border-radius: 10px;
|
|
648
|
-
background: var(--notion-code-panel);
|
|
562
|
+
background: var(--edytor-code-background, var(--notion-code-panel));
|
|
563
|
+
color: var(--edytor-code-color, var(--notion-text));
|
|
564
|
+
}
|
|
565
|
+
.edytor-notion [data-edytor-code-header] {
|
|
566
|
+
position: absolute;
|
|
567
|
+
top: 6px;
|
|
568
|
+
left: 10px;
|
|
569
|
+
right: 8px;
|
|
570
|
+
display: flex;
|
|
571
|
+
align-items: center;
|
|
572
|
+
justify-content: space-between;
|
|
649
573
|
}
|
|
650
574
|
.edytor-notion [data-edytor-type='codeLine'] {
|
|
651
575
|
margin: 0;
|
|
652
576
|
padding: 0;
|
|
653
577
|
border-radius: 0;
|
|
654
578
|
}
|
|
579
|
+
.edytor-notion pre.th-code {
|
|
580
|
+
margin: 0;
|
|
581
|
+
color: inherit;
|
|
582
|
+
font-family: var(--notion-mono);
|
|
583
|
+
font-size: 85%;
|
|
584
|
+
line-height: 1.5;
|
|
585
|
+
text-align: left;
|
|
586
|
+
hyphens: none;
|
|
587
|
+
}
|
|
588
|
+
[data-edytor]:is(.edytor-notion, .edytor-notion *) pre.th-code code {
|
|
589
|
+
padding: 0;
|
|
590
|
+
background: none;
|
|
591
|
+
color: inherit;
|
|
592
|
+
font: inherit;
|
|
593
|
+
}
|
|
594
|
+
/* Notion's light syntax theme: Prism's palette, each colour darkened to a
|
|
595
|
+
4.5:1 contrast on the panel (WCAG AA), over TanStack Highlight's classes. */
|
|
596
|
+
.edytor-notion :is(.th-comment, .th-meta) {
|
|
597
|
+
color: #63717f;
|
|
598
|
+
}
|
|
599
|
+
.edytor-notion :is(.th-keyword, .th-link) {
|
|
600
|
+
color: #0077aa;
|
|
601
|
+
}
|
|
602
|
+
.edytor-notion :is(.th-string, .th-attr, .th-selector, .th-inserted) {
|
|
603
|
+
color: #527a00;
|
|
604
|
+
}
|
|
605
|
+
.edytor-notion :is(.th-function, .th-type) {
|
|
606
|
+
color: #c2415c;
|
|
607
|
+
}
|
|
608
|
+
.edytor-notion :is(.th-number, .th-literal, .th-tag, .th-property, .th-deleted) {
|
|
609
|
+
color: #990055;
|
|
610
|
+
}
|
|
611
|
+
.edytor-notion .th-variable {
|
|
612
|
+
color: #9b6300;
|
|
613
|
+
}
|
|
614
|
+
.edytor-notion .th-operator {
|
|
615
|
+
color: #916737;
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
/* ── Equations ──────────────────────────────────────────────────────── */
|
|
619
|
+
.edytor-notion [data-edytor-equation] {
|
|
620
|
+
padding: 4px 0;
|
|
621
|
+
border-radius: 4px;
|
|
622
|
+
text-align: center;
|
|
623
|
+
cursor: pointer;
|
|
624
|
+
}
|
|
625
|
+
.edytor-notion [data-edytor-equation]:hover,
|
|
626
|
+
.edytor-notion [data-edytor-equation][data-editing='true'] {
|
|
627
|
+
background: rgba(55, 53, 47, 0.06);
|
|
628
|
+
}
|
|
629
|
+
.edytor-notion [data-edytor-inline-equation] {
|
|
630
|
+
border-radius: 3px;
|
|
631
|
+
cursor: pointer;
|
|
632
|
+
}
|
|
633
|
+
.edytor-notion [data-edytor-inline-equation]:is([data-editing='true'], [data-selected='true']) {
|
|
634
|
+
background: var(--notion-block-selection);
|
|
635
|
+
}
|
|
636
|
+
.edytor-notion [data-edytor-equation-placeholder] {
|
|
637
|
+
color: rgba(55, 53, 47, 0.5);
|
|
638
|
+
}
|
|
639
|
+
.edytor-notion [data-edytor-equation] [data-edytor-equation-placeholder] {
|
|
640
|
+
display: flex;
|
|
641
|
+
align-items: center;
|
|
642
|
+
gap: 8px;
|
|
643
|
+
padding: 8px 12px;
|
|
644
|
+
border-radius: 4px;
|
|
645
|
+
background: rgba(242, 241, 238, 0.6);
|
|
646
|
+
text-align: left;
|
|
647
|
+
}
|
|
648
|
+
.edytor-notion [data-edytor-equation-icon] {
|
|
649
|
+
margin-right: 4px;
|
|
650
|
+
font-style: italic;
|
|
651
|
+
}
|
|
652
|
+
.edytor-notion :is([data-edytor-equation-error], [data-edytor-equation-source]) {
|
|
653
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
654
|
+
font-size: 0.9em;
|
|
655
|
+
white-space: pre-wrap;
|
|
656
|
+
}
|
|
657
|
+
.edytor-notion [data-edytor-equation-error] {
|
|
658
|
+
color: #d44c47;
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
/* ── Tables: Notion's simple table ──────────────────────────────────── */
|
|
662
|
+
.edytor-notion [data-edytor-table] {
|
|
663
|
+
--edytor-table-border-color: var(--edytor-table-border, rgb(233, 233, 231));
|
|
664
|
+
padding-inline: 0;
|
|
665
|
+
}
|
|
666
|
+
.edytor-notion [data-edytor-table] [data-edytor-table-grid] {
|
|
667
|
+
border-top: 1px solid var(--edytor-table-border-color);
|
|
668
|
+
border-left: 1px solid var(--edytor-table-border-color);
|
|
669
|
+
}
|
|
670
|
+
.edytor-notion [data-edytor-table-row] {
|
|
671
|
+
margin: 0;
|
|
672
|
+
padding: 0;
|
|
673
|
+
border-radius: 0;
|
|
674
|
+
}
|
|
675
|
+
.edytor-notion :is([data-edytor-table-cell], [data-edytor-table-pad]) {
|
|
676
|
+
min-height: 33px;
|
|
677
|
+
margin: 0;
|
|
678
|
+
padding: 7px 9px;
|
|
679
|
+
border-radius: 0;
|
|
680
|
+
border-right: 1px solid var(--edytor-table-border-color);
|
|
681
|
+
border-bottom: 1px solid var(--edytor-table-border-color);
|
|
682
|
+
}
|
|
683
|
+
/* A header row's or header column's cells: Notion's gray, a little bolder. */
|
|
684
|
+
.edytor-notion [data-edytor-table-cell][data-edytor-table-header='true'] {
|
|
685
|
+
background: var(--edytor-table-header-background, rgb(247, 246, 243));
|
|
686
|
+
font-weight: 600;
|
|
687
|
+
}
|
|
655
688
|
|
|
656
689
|
/* ── Marks ──────────────────────────────────────────────────────────── */
|
|
657
690
|
[data-edytor]:is(.edytor-notion, .edytor-notion *) strong {
|
|
@@ -695,13 +728,31 @@
|
|
|
695
728
|
background: var(--notion-page, #fff);
|
|
696
729
|
}
|
|
697
730
|
|
|
698
|
-
/* ── Columns
|
|
731
|
+
/* ── Columns ────────────────────────────────────────────────────────── */
|
|
732
|
+
/* A layout and its columns reserve no inline space: a column's blocks start
|
|
733
|
+
at the column's edge (Notion's), its handles stand in the gap before it. */
|
|
734
|
+
.edytor-notion
|
|
735
|
+
:is(
|
|
736
|
+
[data-edytor-block][data-edytor-columns],
|
|
737
|
+
[data-edytor-block][data-edytor-column]:not([data-edytor-table-cell])
|
|
738
|
+
) {
|
|
739
|
+
padding-inline: 0;
|
|
740
|
+
}
|
|
741
|
+
/* A column's first and last blocks sit flush with the layout's edges. */
|
|
742
|
+
.edytor-notion [data-edytor-column] > [data-edytor-children] > [data-edytor-block]:first-child {
|
|
743
|
+
margin-top: 0;
|
|
744
|
+
}
|
|
745
|
+
.edytor-notion [data-edytor-column] > [data-edytor-children] > [data-edytor-block]:last-child {
|
|
746
|
+
margin-bottom: 0;
|
|
747
|
+
}
|
|
748
|
+
/* One highlight over a layout a block selection stands for. */
|
|
699
749
|
.edytor-notion [data-edytor-block][data-edytor-columns][data-edytor-selected] {
|
|
700
750
|
background: transparent;
|
|
701
751
|
}
|
|
702
752
|
.edytor-notion
|
|
703
753
|
[data-edytor-block][data-edytor-columns]
|
|
704
754
|
> [data-edytor-children][data-edytor-columns-selected] {
|
|
755
|
+
border-radius: 4px;
|
|
705
756
|
background: var(--notion-block-selection);
|
|
706
757
|
}
|
|
707
758
|
.edytor-notion
|
|
@@ -760,22 +811,27 @@
|
|
|
760
811
|
.edytor-notion [data-edytor-type='page'] {
|
|
761
812
|
margin: 1px 0;
|
|
762
813
|
}
|
|
763
|
-
.edytor-notion [data-edytor-page-link] {
|
|
814
|
+
.edytor-notion :where([data-edytor-page]) > [data-edytor-page-link] {
|
|
764
815
|
display: flex;
|
|
765
816
|
align-items: center;
|
|
766
817
|
gap: 6px;
|
|
767
818
|
width: 100%;
|
|
819
|
+
margin: 0;
|
|
768
820
|
padding: 3px 2px;
|
|
821
|
+
border: 0;
|
|
769
822
|
border-radius: 4px;
|
|
823
|
+
background: none;
|
|
770
824
|
color: inherit;
|
|
825
|
+
font: inherit;
|
|
826
|
+
text-align: start;
|
|
771
827
|
text-decoration: none;
|
|
772
828
|
cursor: pointer;
|
|
773
829
|
transition: background-color 20ms ease-in;
|
|
774
830
|
}
|
|
775
|
-
.edytor-notion [data-edytor-page-link]:hover {
|
|
831
|
+
.edytor-notion :where([data-edytor-page]) > [data-edytor-page-link]:hover {
|
|
776
832
|
background: var(--notion-hover);
|
|
777
833
|
}
|
|
778
|
-
.edytor-notion [data-edytor-page-link]:disabled {
|
|
834
|
+
.edytor-notion :where([data-edytor-page]) > [data-edytor-page-link]:disabled {
|
|
779
835
|
cursor: default;
|
|
780
836
|
}
|
|
781
837
|
.edytor-notion [data-edytor-page-icon] {
|
|
@@ -783,8 +839,6 @@
|
|
|
783
839
|
width: 20px;
|
|
784
840
|
height: 20px;
|
|
785
841
|
background: var(--notion-text-secondary);
|
|
786
|
-
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.35' stroke-linejoin='round'%3E%3Cpath d='M11.5 2.5H6A1.5 1.5 0 0 0 4.5 4v12A1.5 1.5 0 0 0 6 17.5h8a1.5 1.5 0 0 0 1.5-1.5V6.5z'/%3E%3Cpath d='M11.5 2.5v4h4M7.5 10.5h5M7.5 13.5h5'/%3E%3C/svg%3E")
|
|
787
|
-
center / 20px no-repeat;
|
|
788
842
|
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.35' stroke-linejoin='round'%3E%3Cpath d='M11.5 2.5H6A1.5 1.5 0 0 0 4.5 4v12A1.5 1.5 0 0 0 6 17.5h8a1.5 1.5 0 0 0 1.5-1.5V6.5z'/%3E%3Cpath d='M11.5 2.5v4h4M7.5 10.5h5M7.5 13.5h5'/%3E%3C/svg%3E")
|
|
789
843
|
center / 20px no-repeat;
|
|
790
844
|
}
|
|
@@ -802,6 +856,10 @@
|
|
|
802
856
|
.edytor-notion [data-edytor-toc-entry] {
|
|
803
857
|
display: block;
|
|
804
858
|
width: 100%;
|
|
859
|
+
margin: 0;
|
|
860
|
+
border: 0;
|
|
861
|
+
background: none;
|
|
862
|
+
font: inherit;
|
|
805
863
|
padding: 6px 2px;
|
|
806
864
|
padding-inline-start: calc(2px + var(--edytor-toc-depth, 0) * var(--edytor-nest-indent));
|
|
807
865
|
border-radius: 4px;
|
|
@@ -818,7 +876,115 @@
|
|
|
818
876
|
color: var(--notion-placeholder);
|
|
819
877
|
}
|
|
820
878
|
.edytor-notion [data-edytor-toc-empty] {
|
|
879
|
+
margin: 0;
|
|
821
880
|
padding: 3px 2px;
|
|
822
881
|
color: var(--notion-text-secondary);
|
|
823
882
|
font-size: 14px;
|
|
824
883
|
}
|
|
884
|
+
|
|
885
|
+
/* ── Mentions and page links (atoms in a line) ──────────────────────── */
|
|
886
|
+
.edytor-notion .edytor-mention {
|
|
887
|
+
color: var(--notion-text-secondary);
|
|
888
|
+
font-weight: 500;
|
|
889
|
+
}
|
|
890
|
+
.edytor-notion .edytor-page-link .title {
|
|
891
|
+
border-bottom: 1px solid rgba(55, 53, 47, 0.25);
|
|
892
|
+
font-weight: 500;
|
|
893
|
+
}
|
|
894
|
+
.edytor-notion .edytor-page-link .icon {
|
|
895
|
+
margin-right: 2px;
|
|
896
|
+
}
|
|
897
|
+
.edytor-notion :is(.edytor-mention, .edytor-page-link)[data-selected='true'] {
|
|
898
|
+
border-radius: 3px;
|
|
899
|
+
background: var(--notion-block-selection);
|
|
900
|
+
}
|
|
901
|
+
|
|
902
|
+
/* ── Visual cues in the overlay ─────────────────────────────────────── */
|
|
903
|
+
/*
|
|
904
|
+
* The plugins place these and say when they show (`data-shown`,
|
|
905
|
+
* `data-dragging`, `:hover`); the look is here. The overlay is the editor's
|
|
906
|
+
* next sibling, so each rule reaches it whether the class is on an element
|
|
907
|
+
* around the editor or on the editor itself.
|
|
908
|
+
*/
|
|
909
|
+
/* A block drag's drop line: Notion's plain 4px bar. */
|
|
910
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-drop-indicator] {
|
|
911
|
+
background: var(--edytor-drop-indicator-color, rgba(35, 131, 226, 0.43));
|
|
912
|
+
}
|
|
913
|
+
/* The nest backdrop: the future parent's own row, softly tinted, fading in and out.
|
|
914
|
+
* One plain colour: lightningcss rewrites light-dark() into variables it only
|
|
915
|
+
* defines beside a `color-scheme`, voiding the background. */
|
|
916
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-drop-backdrop] {
|
|
917
|
+
border-radius: 4px;
|
|
918
|
+
background: var(--edytor-drop-backdrop-color, rgba(35, 131, 226, 0.14));
|
|
919
|
+
opacity: 0;
|
|
920
|
+
transition:
|
|
921
|
+
opacity 120ms ease,
|
|
922
|
+
visibility 120ms ease;
|
|
923
|
+
}
|
|
924
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay])
|
|
925
|
+
[data-edytor-drop-backdrop][data-shown='true'] {
|
|
926
|
+
opacity: 1;
|
|
927
|
+
}
|
|
928
|
+
/* A table grip's drop line and a column band's guide: Notion's blue. */
|
|
929
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-table-drop] {
|
|
930
|
+
border-radius: 2px;
|
|
931
|
+
background: var(--edytor-table-drop-color, rgba(35, 131, 226, 0.43));
|
|
932
|
+
}
|
|
933
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-table-resize]::after {
|
|
934
|
+
background: var(--edytor-table-resize-color, rgba(35, 131, 226, 0.43));
|
|
935
|
+
}
|
|
936
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay])
|
|
937
|
+
[data-edytor-table-resize]:focus-visible {
|
|
938
|
+
outline: none;
|
|
939
|
+
}
|
|
940
|
+
/* A layout gap's band: a thin gray rule on hover, blue from the keyboard and while it drags. */
|
|
941
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-column-resize]::after {
|
|
942
|
+
background: var(--edytor-columns-resize-color, rgba(55, 53, 47, 0.16));
|
|
943
|
+
opacity: 0;
|
|
944
|
+
transition:
|
|
945
|
+
opacity 80ms ease,
|
|
946
|
+
visibility 80ms ease;
|
|
947
|
+
}
|
|
948
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay])
|
|
949
|
+
[data-edytor-column-resize]:hover:not([data-dragging='true'])::after {
|
|
950
|
+
opacity: 1;
|
|
951
|
+
}
|
|
952
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay])
|
|
953
|
+
[data-edytor-column-resize]:focus-visible {
|
|
954
|
+
outline: none;
|
|
955
|
+
}
|
|
956
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay])
|
|
957
|
+
[data-edytor-column-resize]:focus-visible::after {
|
|
958
|
+
opacity: 1;
|
|
959
|
+
background: var(--edytor-column-resize-color, rgba(35, 131, 226, 0.43));
|
|
960
|
+
}
|
|
961
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-column-resize-guide] {
|
|
962
|
+
background: var(--edytor-column-resize-color, rgba(35, 131, 226, 0.43));
|
|
963
|
+
}
|
|
964
|
+
/* An image's resize handles: Notion's dark pill with a light ring. */
|
|
965
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-image-resize]::after {
|
|
966
|
+
border-radius: 20px;
|
|
967
|
+
background: var(--edytor-image-handle-color, rgba(15, 15, 15, 0.6));
|
|
968
|
+
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.9);
|
|
969
|
+
opacity: 0.8;
|
|
970
|
+
}
|
|
971
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay])
|
|
972
|
+
:is([data-edytor-image-resize]:hover, [data-edytor-image-resize][data-dragging='true'])::after {
|
|
973
|
+
opacity: 1;
|
|
974
|
+
}
|
|
975
|
+
/* Other users: a caret, a tinted range and a name pill in each one's colour. */
|
|
976
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-remote-selection] {
|
|
977
|
+
background: var(--edytor-remote-color);
|
|
978
|
+
opacity: 0.18;
|
|
979
|
+
}
|
|
980
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-remote-cursor] {
|
|
981
|
+
border-radius: 999px;
|
|
982
|
+
background: var(--edytor-remote-color);
|
|
983
|
+
}
|
|
984
|
+
:is(.edytor-notion, .edytor-notion + [data-edytor-overlay]) [data-edytor-remote-cursor-label] {
|
|
985
|
+
padding: 1px 6px;
|
|
986
|
+
border-radius: 999px;
|
|
987
|
+
background: var(--edytor-remote-color);
|
|
988
|
+
color: white;
|
|
989
|
+
font: 500 11px/1.4 sans-serif;
|
|
990
|
+
}
|
package/dist/utils/json.d.ts
CHANGED
|
@@ -111,11 +111,13 @@ export declare const jsonContentToItems: (content: (JSONText | JSONInlineBlock)[
|
|
|
111
111
|
export declare const jsonBlockToSpec: (block: JSONBlock, freshIds?: boolean, mint?: (prefix: "b" | "i") => string) => BlockSpec;
|
|
112
112
|
/**
|
|
113
113
|
* A canonical `JSONBlock` (from `facade.toJSON()`/`blockJSON`, a template, an
|
|
114
|
-
* import) as the `BlockSpec` `facade.
|
|
114
|
+
* import) as the `BlockSpec` `facade.insertBlocks` takes: ids are kept, and
|
|
115
115
|
* minted where missing; `freshIds` mints every id (a duplicate).
|
|
116
116
|
*/
|
|
117
117
|
export declare const toBlockSpec: (block: JSONBlock, { freshIds }?: {
|
|
118
118
|
freshIds?: boolean | undefined;
|
|
119
119
|
}) => BlockSpec;
|
|
120
|
+
/** A content item from JSON content (a text run, an atom) or a facade item, as it is. */
|
|
121
|
+
export declare const asContentItem: (part: ContentItem | JSONText | JSONInlineBlock) => ContentItem;
|
|
120
122
|
/** A `BlockSpec`, or the `JSONBlock` shape as one (ids kept, minted where missing). */
|
|
121
123
|
export declare const asBlockSpec: (block: BlockSpec | JSONBlock) => BlockSpec;
|
package/dist/utils/json.js
CHANGED
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
*
|
|
41
41
|
* {@link jsonContentToItems} / {@link jsonBlockToSpec} are the canonical
|
|
42
42
|
* JSON → facade `ContentItem`/`BlockSpec` converters — the admission shape
|
|
43
|
-
* `facade.
|
|
43
|
+
* `facade.insertBlocks` consumes (see `placement/model.ts`
|
|
44
44
|
* `insertOne`/`appendItems`). Content preparation builds specs DIRECTLY
|
|
45
45
|
* from JSON — never through disposable live-wrapper trees. The spec types
|
|
46
46
|
* are imported type-only, so this module keeps its zero-runtime-dependency
|
|
@@ -61,59 +61,58 @@ const JSON_COERCION = {
|
|
|
61
61
|
Promise: 'coerces to {}',
|
|
62
62
|
ArrayBuffer: 'coerces to {}'
|
|
63
63
|
};
|
|
64
|
+
const reportedJsonBoundaryViolations = new Set();
|
|
64
65
|
/**
|
|
65
|
-
* Dev-only
|
|
66
|
-
*
|
|
66
|
+
* Dev-only violation report shared by {@link cloneJson} and
|
|
67
|
+
* {@link cloneJsonSafe}: one line per value that will not survive a JSON
|
|
68
|
+
* round-trip, capped so a hostile payload cannot flood the report. The
|
|
69
|
+
* walk is declared in here: a recursive module-level helper survives the
|
|
70
|
+
* production build's tree-shaking even when nothing calls it.
|
|
67
71
|
*/
|
|
68
|
-
const collectJsonBoundaryViolations = (value, path, violations, seen) => {
|
|
69
|
-
if (violations.length >= MAX_JSON_BOUNDARY_VIOLATIONS || value === null) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const type = typeof value;
|
|
73
|
-
if (type === 'string' || type === 'boolean') {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
if (type === 'number') {
|
|
77
|
-
if (!Number.isFinite(value)) {
|
|
78
|
-
violations.push(`${path}: non-finite number coerces to null`);
|
|
79
|
-
}
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
if (type === 'undefined') {
|
|
83
|
-
violations.push(`${path}: undefined key is dropped (array slot → null)`);
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
if (type === 'function' || type === 'symbol' || type === 'bigint') {
|
|
87
|
-
violations.push(`${path}: ${type} is not serializable`);
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
if (seen.has(value)) {
|
|
91
|
-
violations.push(`${path}: circular reference throws at serialize time`);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
if (Array.isArray(value)) {
|
|
95
|
-
seen.add(value);
|
|
96
|
-
value.forEach((item, index) => collectJsonBoundaryViolations(item, `${path}[${index}]`, violations, seen));
|
|
97
|
-
seen.delete(value);
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
const proto = Object.getPrototypeOf(value);
|
|
101
|
-
if (proto !== Object.prototype && proto !== null) {
|
|
102
|
-
const name = value.constructor?.name ?? 'non-plain object';
|
|
103
|
-
violations.push(`${path}: ${name} is not JSON — ${JSON_COERCION[name] ?? 'coerces to {}'}`);
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
seen.add(value);
|
|
107
|
-
for (const [key, item] of Object.entries(value)) {
|
|
108
|
-
collectJsonBoundaryViolations(item, `${path}.${key}`, violations, seen);
|
|
109
|
-
}
|
|
110
|
-
seen.delete(value);
|
|
111
|
-
};
|
|
112
|
-
const reportedJsonBoundaryViolations = new Set();
|
|
113
|
-
/** Dev-only violation report shared by {@link cloneJson} and {@link cloneJsonSafe}. */
|
|
114
72
|
const warnJsonBoundary = (fn, value) => {
|
|
115
73
|
const violations = [];
|
|
116
|
-
|
|
74
|
+
const seen = new Set();
|
|
75
|
+
const collect = (item, path) => {
|
|
76
|
+
if (violations.length >= MAX_JSON_BOUNDARY_VIOLATIONS || item === null)
|
|
77
|
+
return;
|
|
78
|
+
const type = typeof item;
|
|
79
|
+
if (type === 'string' || type === 'boolean')
|
|
80
|
+
return;
|
|
81
|
+
if (type === 'number') {
|
|
82
|
+
if (!Number.isFinite(item))
|
|
83
|
+
violations.push(`${path}: non-finite number coerces to null`);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (type === 'undefined') {
|
|
87
|
+
violations.push(`${path}: undefined key is dropped (array slot → null)`);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (type === 'function' || type === 'symbol' || type === 'bigint') {
|
|
91
|
+
violations.push(`${path}: ${type} is not serializable`);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (seen.has(item)) {
|
|
95
|
+
violations.push(`${path}: circular reference throws at serialize time`);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (Array.isArray(item)) {
|
|
99
|
+
seen.add(item);
|
|
100
|
+
item.forEach((each, index) => collect(each, `${path}[${index}]`));
|
|
101
|
+
seen.delete(item);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const proto = Object.getPrototypeOf(item);
|
|
105
|
+
if (proto !== Object.prototype && proto !== null) {
|
|
106
|
+
const name = item.constructor?.name ?? 'non-plain object';
|
|
107
|
+
violations.push(`${path}: ${name} is not JSON — ${JSON_COERCION[name] ?? 'coerces to {}'}`);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
seen.add(item);
|
|
111
|
+
for (const [key, each] of Object.entries(item))
|
|
112
|
+
collect(each, `${path}.${key}`);
|
|
113
|
+
seen.delete(item);
|
|
114
|
+
};
|
|
115
|
+
collect(value, '$');
|
|
117
116
|
if (violations.length === 0)
|
|
118
117
|
return;
|
|
119
118
|
const report = violations.join('\n ');
|
|
@@ -363,7 +362,7 @@ export const jsonBlockToSpec = (block, freshIds = false, mint = id) => ({
|
|
|
363
362
|
});
|
|
364
363
|
/**
|
|
365
364
|
* A canonical `JSONBlock` (from `facade.toJSON()`/`blockJSON`, a template, an
|
|
366
|
-
* import) as the `BlockSpec` `facade.
|
|
365
|
+
* import) as the `BlockSpec` `facade.insertBlocks` takes: ids are kept, and
|
|
367
366
|
* minted where missing; `freshIds` mints every id (a duplicate).
|
|
368
367
|
*/
|
|
369
368
|
export const toBlockSpec = (block, { freshIds = false } = {}) => jsonBlockToSpec(block, freshIds);
|
|
@@ -373,6 +372,8 @@ export const toBlockSpec = (block, { freshIds = false } = {}) => jsonBlockToSpec
|
|
|
373
372
|
*/
|
|
374
373
|
const isSpecNode = (block) => typeof block.id === 'string' &&
|
|
375
374
|
(block.content ?? []).every((item) => typeof item === 'object' && item !== null && 'kind' in item);
|
|
375
|
+
/** A content item from JSON content (a text run, an atom) or a facade item, as it is. */
|
|
376
|
+
export const asContentItem = (part) => 'kind' in part ? part : jsonContentToItems([part])[0];
|
|
376
377
|
/** A `BlockSpec`, or the `JSONBlock` shape as one (ids kept, minted where missing). */
|
|
377
378
|
export const asBlockSpec = (block) => {
|
|
378
379
|
if (!isSpecNode(block))
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Listen for each of the space-separated `types` on `target` (none when it
|
|
3
|
+
* is missing); answers the cleanup. The one way the chrome adds a listener
|
|
4
|
+
* it removes itself.
|
|
5
|
+
*/
|
|
6
|
+
export declare const listen: <E extends Event>(target: EventTarget | null | undefined, types: string, listener: (event: E) => void, capture?: boolean) => () => void;
|
|
7
|
+
/** Run every cleanup of `offs` (a list of `listen` answers and other teardowns). */
|
|
8
|
+
export declare const all: (...offs: (() => unknown)[]) => () => void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Listen for each of the space-separated `types` on `target` (none when it
|
|
3
|
+
* is missing); answers the cleanup. The one way the chrome adds a listener
|
|
4
|
+
* it removes itself.
|
|
5
|
+
*/
|
|
6
|
+
export const listen = (target, types, listener, capture = false) => {
|
|
7
|
+
const all = types.split(' ');
|
|
8
|
+
for (const type of all)
|
|
9
|
+
target?.addEventListener(type, listener, capture);
|
|
10
|
+
return () => {
|
|
11
|
+
for (const type of all)
|
|
12
|
+
target?.removeEventListener(type, listener, capture);
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
/** Run every cleanup of `offs` (a list of `listen` answers and other teardowns). */
|
|
16
|
+
export const all = (...offs) => () => {
|
|
17
|
+
for (const off of offs)
|
|
18
|
+
off();
|
|
19
|
+
};
|