@openleaf-editor/core 0.1.0-beta.3 → 0.1.0-beta.5

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.
Files changed (44) hide show
  1. package/README.md +38 -6
  2. package/dist/autolink.d.ts +15 -4
  3. package/dist/autolink.d.ts.map +1 -1
  4. package/dist/autolink.js +91 -21
  5. package/dist/autolink.js.map +1 -1
  6. package/dist/code-spellcheck.d.ts +33 -0
  7. package/dist/code-spellcheck.d.ts.map +1 -0
  8. package/dist/code-spellcheck.js +119 -0
  9. package/dist/code-spellcheck.js.map +1 -0
  10. package/dist/commands.d.ts +6 -2
  11. package/dist/commands.d.ts.map +1 -1
  12. package/dist/commands.js +137 -5
  13. package/dist/commands.js.map +1 -1
  14. package/dist/decoration-range.d.ts +26 -0
  15. package/dist/decoration-range.d.ts.map +1 -0
  16. package/dist/decoration-range.js +103 -0
  17. package/dist/decoration-range.js.map +1 -0
  18. package/dist/figure-drag.d.ts +26 -0
  19. package/dist/figure-drag.d.ts.map +1 -0
  20. package/dist/figure-drag.js +75 -0
  21. package/dist/figure-drag.js.map +1 -0
  22. package/dist/gapcursor.d.ts +14 -0
  23. package/dist/gapcursor.d.ts.map +1 -0
  24. package/dist/gapcursor.js +17 -0
  25. package/dist/gapcursor.js.map +1 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +6 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/isolating-selection.d.ts +19 -1
  31. package/dist/isolating-selection.d.ts.map +1 -1
  32. package/dist/isolating-selection.js +100 -11
  33. package/dist/isolating-selection.js.map +1 -1
  34. package/dist/keymap.d.ts +14 -3
  35. package/dist/keymap.d.ts.map +1 -1
  36. package/dist/keymap.js +14 -3
  37. package/dist/keymap.js.map +1 -1
  38. package/dist/schema.d.ts.map +1 -1
  39. package/dist/schema.js +9 -0
  40. package/dist/schema.js.map +1 -1
  41. package/dist/visual-aids.d.ts.map +1 -1
  42. package/dist/visual-aids.js +2 -52
  43. package/dist/visual-aids.js.map +1 -1
  44. package/package.json +4 -2
package/dist/commands.js CHANGED
@@ -14,11 +14,14 @@
14
14
  */
15
15
  import { redo, undo } from 'prosemirror-history';
16
16
  import { toggleMark, wrapIn } from 'prosemirror-commands';
17
- import {} from 'prosemirror-model';
17
+ import { Fragment, } from 'prosemirror-model';
18
18
  import { liftListItem, sinkListItem, splitListItem, wrapInList, } from 'prosemirror-schema-list';
19
+ import { NodeSelection, Selection, } from 'prosemirror-state';
19
20
  import { MAX_INDENT, safeColor, safeDir, safeFontFamily, safeFontSize, safeLang, safeLineHeight, safeListStyle, } from './css.js';
20
21
  import { canInsertNode, markCommand, markIn, nodeCommand, nodeIn } from './command-helpers.js';
21
22
  import { CARRIED_ATTR } from './extensions.js';
23
+ import { selectedImage } from './insert-commands.js';
24
+ import { IMAGE_ALIGNMENTS } from './tokens.js';
22
25
  /**
23
26
  * Types are resolved from the state's schema, never from a captured singleton.
24
27
  *
@@ -432,7 +435,76 @@ function toggleList(target) {
432
435
  return nodeCommand(target, (type) => wrapInList(type))(state, dispatch, view);
433
436
  };
434
437
  }
435
- export const splitListItemCommand = nodeCommand('list_item', (t) => splitListItem(t));
438
+ /**
439
+ * Split a list item, including items that hold extra `block*` after the
440
+ * paragraph.
441
+ *
442
+ * Stock `splitListItem` already splits a non-empty item at depth 2, so
443
+ * following blocks travel with the new item -- Word and Google Docs. Its empty
444
+ * handling only runs when the empty textblock is the *last* child. Extra
445
+ * `block*` after the paragraph skips that branch, and Enter either creates a
446
+ * sibling `<li>` (never leaves) or the chained base keymap inserts a sibling
447
+ * `<p>` inside the same item.
448
+ *
449
+ * Enter on an empty bullet is how authors leave a list. Extra children are
450
+ * promoted to siblings of the list and the empty paragraph is dropped so we
451
+ * do not store `<p></p>` next to a callout. Nested empty last inner items
452
+ * (no extra children) still go through stock, which outdents one level.
453
+ */
454
+ function splitListItemAllowingExtraBlocks(itemType) {
455
+ const split = splitListItem(itemType);
456
+ return (state, dispatch) => {
457
+ const { $from, $to } = state.selection;
458
+ if ($from.depth >= 3 && $from.sameParent($to) && $from.node(-1).type === itemType) {
459
+ if ($from.parent.content.size === 0 && $from.node(-1).childCount > $from.indexAfter(-1)) {
460
+ return leaveListPromotingExtra(state, dispatch);
461
+ }
462
+ }
463
+ return split(state, dispatch);
464
+ };
465
+ }
466
+ function leaveListPromotingExtra(state, dispatch) {
467
+ const { $from } = state.selection;
468
+ const item = $from.node(-1);
469
+ const emptyIndex = $from.index(-1);
470
+ const kept = [];
471
+ for (let i = 0; i < item.childCount; i++) {
472
+ if (i !== emptyIndex)
473
+ kept.push(item.child(i));
474
+ }
475
+ const list = $from.node(-2);
476
+ const itemIndex = $from.index(-2);
477
+ const before = [];
478
+ const after = [];
479
+ for (let i = 0; i < list.childCount; i++) {
480
+ if (i < itemIndex)
481
+ before.push(list.child(i));
482
+ else if (i > itemIndex)
483
+ after.push(list.child(i));
484
+ }
485
+ const beforeList = before.length > 0 ? list.copy(Fragment.from(before)) : null;
486
+ const afterList = after.length > 0 ? list.copy(Fragment.from(after)) : null;
487
+ const replacement = [];
488
+ if (beforeList)
489
+ replacement.push(beforeList);
490
+ replacement.push(...kept);
491
+ if (afterList)
492
+ replacement.push(afterList);
493
+ const parent = $from.node(-3);
494
+ const listIndex = $from.index(-3);
495
+ const replaceFrag = Fragment.from(replacement);
496
+ if (!parent.canReplace(listIndex, listIndex + 1, replaceFrag))
497
+ return false;
498
+ if (dispatch) {
499
+ const listPos = $from.before(-2);
500
+ const tr = state.tr.replaceWith(listPos, listPos + list.nodeSize, replaceFrag);
501
+ const beforeSize = beforeList ? beforeList.nodeSize : 0;
502
+ tr.setSelection(Selection.near(tr.doc.resolve(listPos + beforeSize)));
503
+ dispatch(tr.scrollIntoView());
504
+ }
505
+ return true;
506
+ }
507
+ export const splitListItemCommand = nodeCommand('list_item', splitListItemAllowingExtraBlocks);
436
508
  export const indentListItem = nodeCommand('list_item', (t) => sinkListItem(t));
437
509
  export const outdentListItem = nodeCommand('list_item', (t) => liftListItem(t));
438
510
  /**
@@ -532,8 +604,57 @@ function uniformBlockAttr(state, attr) {
532
604
  const value = first.node.attrs[attr] ?? null;
533
605
  return blocks.every((b) => (b.node.attrs[attr] ?? null) === value) ? value : null;
534
606
  }
607
+ /**
608
+ * True when this alignment is one an image can store.
609
+ *
610
+ * `image.attrs.align` is `left` / `right` / `center` (a float or a block
611
+ * centre). Justify is a text-block value only: writing it onto an image
612
+ * would serialize as the class `undefined`.
613
+ */
614
+ function isImageAlign(align) {
615
+ return align === null || IMAGE_ALIGNMENTS.includes(align);
616
+ }
617
+ /**
618
+ * The nodes in the selection that can carry an alignment.
619
+ *
620
+ * Textblocks that declare `align`, and `image` nodes whose alignment is a
621
+ * float/centre class rather than `text-align`. A NodeSelection on an image
622
+ * -- or on the figure wrapping one -- is only that image: walking the parent
623
+ * paragraph as well would float the picture AND centre the paragraph, which
624
+ * is not what Align right means when the author has clicked the picture.
625
+ *
626
+ * `blocksWithAttr` stops inside a textblock, so it never sees an inline
627
+ * image. Alignment has to look inside, but only for a non-empty range: a
628
+ * caret beside an image must not retarget it, the same trap `selectedImage`
629
+ * refuses.
630
+ */
535
631
  function alignableBlocks(state) {
536
- return blocksWithAttr(state, 'align');
632
+ const selected = selectedImage(state);
633
+ if (selected) {
634
+ const node = state.doc.nodeAt(selected.pos);
635
+ return node && node.type.name === 'image' ? [{ pos: selected.pos, node }] : [];
636
+ }
637
+ const found = [];
638
+ const seen = new Set();
639
+ for (const range of selectedRanges(state)) {
640
+ const from = range.$from.pos;
641
+ const to = range.$to.pos;
642
+ const coverImages = from !== to;
643
+ state.doc.nodesBetween(from, to, (node, pos) => {
644
+ if (coverImages && node.type.name === 'image' && Object.hasOwn(node.attrs, 'align') && !seen.has(pos)) {
645
+ seen.add(pos);
646
+ found.push({ pos, node });
647
+ }
648
+ if (!node.isTextblock)
649
+ return true;
650
+ if (Object.hasOwn(node.attrs, 'align') && !seen.has(pos)) {
651
+ seen.add(pos);
652
+ found.push({ pos, node });
653
+ }
654
+ return coverImages;
655
+ });
656
+ }
657
+ return found;
537
658
  }
538
659
  /**
539
660
  * The alignment of the selection, or null when it has none or is mixed.
@@ -559,7 +680,11 @@ export function activeTextAlign(state) {
559
680
  return blocks.every((b) => (b.node.attrs['align'] ?? null) === value) ? value : null;
560
681
  }
561
682
  /**
562
- * Set the alignment of every alignable block in the selection. `null` clears it.
683
+ * Set the alignment of every alignable node in the selection. `null` clears it.
684
+ *
685
+ * Images store `left` / `right` / `center` on `image.attrs.align`; serialization
686
+ * maps those to the `ol-*` classes. Justify is skipped on images, because it
687
+ * is not an image alignment.
563
688
  *
564
689
  * Reports true whenever there is something to align, even if it already carries
565
690
  * this value. The alternative -- returning false because the work is already
@@ -568,17 +693,24 @@ export function activeTextAlign(state) {
568
693
  */
569
694
  export function setTextAlign(align) {
570
695
  return (state, dispatch) => {
571
- const blocks = alignableBlocks(state);
696
+ const blocks = alignableBlocks(state).filter(({ node }) => node.type.name !== 'image' || isImageAlign(align));
572
697
  if (blocks.length === 0)
573
698
  return false;
574
699
  if (dispatch) {
575
700
  const tr = state.tr;
701
+ const selected = selectedImage(state);
576
702
  for (const { pos, node } of blocks) {
577
703
  // No position mapping needed: an attribute-only change replaces a node
578
704
  // with one of identical size, so earlier edits cannot shift later
579
705
  // positions in this loop.
580
706
  tr.setNodeMarkup(pos, undefined, { ...node.attrs, align });
581
707
  }
708
+ // Keep a clicked image selected. `setNodeMarkup` replaces the node, and
709
+ // without this the selection collapses beside it -- `activeTextAlign`
710
+ // would then read the parent paragraph and the toolbar would go dark.
711
+ if (selected) {
712
+ tr.setSelection(NodeSelection.create(tr.doc, tr.mapping.map(selected.pos)));
713
+ }
582
714
  dispatch(tr.scrollIntoView());
583
715
  }
584
716
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * The incremental rebuild every decoration plugin in this package shares.
3
+ *
4
+ * A decoration plugin that rebuilds the whole document on every transaction is
5
+ * the performance bug this package has already paid for once: building the set
6
+ * in the `decorations` prop measured 263 ms per keystroke on Word-pasted
7
+ * content, because that prop is a *pull* prop and ProseMirror calls it on every
8
+ * `updateState` -- every arrow key and every click included. The fix is to keep
9
+ * the set in plugin state, map it through the transaction, and rebuild only
10
+ * what the transaction touched. `rebuildChanged` is that whole dance, kept in
11
+ * one place: the cost model is subtle, and so is the correctness -- see the
12
+ * comment on the removal below for the bug a second hand-written copy walked
13
+ * into.
14
+ */
15
+ import type { Node as PMNode } from 'prosemirror-model';
16
+ import type { Transaction } from 'prosemirror-state';
17
+ import type { Decoration, DecorationSet } from 'prosemirror-view';
18
+ /**
19
+ * Map a decoration set through a transaction and rebuild only what changed.
20
+ *
21
+ * `build` is called with the widened range and must return every decoration for
22
+ * the nodes in it -- the same function the plugin uses to build its initial
23
+ * set, called over less of the document.
24
+ */
25
+ export declare function rebuildChanged(set: DecorationSet, tr: Transaction, build: (doc: PMNode, from: number, to: number) => Decoration[]): DecorationSet;
26
+ //# sourceMappingURL=decoration-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoration-range.d.ts","sourceRoot":"","sources":["../src/decoration-range.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAmEjE;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,aAAa,EAClB,EAAE,EAAE,WAAW,EACf,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,UAAU,EAAE,GAC7D,aAAa,CAgBf"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * The incremental rebuild every decoration plugin in this package shares.
3
+ *
4
+ * A decoration plugin that rebuilds the whole document on every transaction is
5
+ * the performance bug this package has already paid for once: building the set
6
+ * in the `decorations` prop measured 263 ms per keystroke on Word-pasted
7
+ * content, because that prop is a *pull* prop and ProseMirror calls it on every
8
+ * `updateState` -- every arrow key and every click included. The fix is to keep
9
+ * the set in plugin state, map it through the transaction, and rebuild only
10
+ * what the transaction touched. `rebuildChanged` is that whole dance, kept in
11
+ * one place: the cost model is subtle, and so is the correctness -- see the
12
+ * comment on the removal below for the bug a second hand-written copy walked
13
+ * into.
14
+ */
15
+ /**
16
+ * The span of `tr.doc` the transaction touched, or null when it touched nothing.
17
+ *
18
+ * Each step's map reports positions in the document *that step* produced, which
19
+ * for every step but the last is not `tr.doc`. Rather than slicing the mapping
20
+ * per step -- the O(steps^2) shape these plugins exist to avoid -- the
21
+ * accumulated range is carried forward one step at a time, so the whole scan is
22
+ * O(steps).
23
+ */
24
+ function changedRange(tr) {
25
+ let from = -1;
26
+ let to = -1;
27
+ const maps = tr.mapping.maps;
28
+ for (let i = 0; i < maps.length; i += 1) {
29
+ const map = maps[i];
30
+ if (!map)
31
+ continue;
32
+ if (from > -1) {
33
+ from = map.map(from, -1);
34
+ to = map.map(to, 1);
35
+ }
36
+ let moved = false;
37
+ map.forEach((_oldStart, _oldEnd, newStart, newEnd) => {
38
+ moved = true;
39
+ from = from < 0 ? newStart : Math.min(from, newStart);
40
+ to = to < 0 ? newEnd : Math.max(to, newEnd);
41
+ });
42
+ // A step whose map reports nothing still changed something. Adding or
43
+ // removing a mark moves no position, so `tr.docChanged` is true and the
44
+ // maps are empty -- reading the maps alone, toggling `<code>` on a word
45
+ // looked like a transaction that had changed nothing at all. The step's own
46
+ // range is valid in the document it produced, precisely because its map is
47
+ // the identity, so it can be folded in here rather than mapped.
48
+ if (moved)
49
+ continue;
50
+ const step = tr.steps[i];
51
+ if (typeof step?.from !== 'number' || typeof step.to !== 'number')
52
+ continue;
53
+ from = from < 0 ? step.from : Math.min(from, step.from);
54
+ to = to < 0 ? step.to : Math.max(to, step.to);
55
+ }
56
+ return from < 0 ? null : { from, to };
57
+ }
58
+ /**
59
+ * Widen a range to whole top-level blocks.
60
+ *
61
+ * Every caller decorates things contained in one top-level block, so widening to
62
+ * that boundary means a node overlapping the rebuilt range is *entirely* inside
63
+ * it. Without that, a decoration on the half of a paragraph outside the range
64
+ * would survive the removal and be added a second time.
65
+ */
66
+ function widenToTopLevel(doc, from, to) {
67
+ const size = doc.content.size;
68
+ const start = Math.max(0, Math.min(from, size));
69
+ const end = Math.max(start, Math.min(to, size));
70
+ const $start = doc.resolve(start);
71
+ const $end = doc.resolve(end);
72
+ return {
73
+ from: $start.depth > 0 ? $start.before(1) : start,
74
+ to: $end.depth > 0 ? $end.after(1) : end,
75
+ };
76
+ }
77
+ /**
78
+ * Map a decoration set through a transaction and rebuild only what changed.
79
+ *
80
+ * `build` is called with the widened range and must return every decoration for
81
+ * the nodes in it -- the same function the plugin uses to build its initial
82
+ * set, called over less of the document.
83
+ */
84
+ export function rebuildChanged(set, tr, build) {
85
+ if (!tr.docChanged)
86
+ return set;
87
+ const changed = changedRange(tr);
88
+ const mapped = set.map(tr.mapping, tr.doc);
89
+ if (!changed)
90
+ return mapped;
91
+ const { from, to } = widenToTopLevel(tr.doc, changed.from, changed.to);
92
+ // `find` reports a decoration that merely *touches* the queried range, and
93
+ // the neighbouring block is the common case: an empty paragraph starting
94
+ // exactly at `to`, or a code block ending exactly at `from`. Removing one of
95
+ // those and then rebuilding only `[from, to]` -- which `nodesBetween` does
96
+ // not revisit either block in -- silently dropped its decoration, so the aid
97
+ // or the attribute fell off the block next to the one being edited. Only what
98
+ // is wholly inside the range is stale.
99
+ const stale = mapped.find(from, to).filter((d) => d.from >= from && d.to <= to);
100
+ const kept = stale.length > 0 ? mapped.remove(stale) : mapped;
101
+ return kept.add(tr.doc, build(tr.doc, from, to));
102
+ }
103
+ //# sourceMappingURL=decoration-range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoration-range.js","sourceRoot":"","sources":["../src/decoration-range.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Dragging the image inside a captioned figure must move the figure.
3
+ *
4
+ * `image` is `draggable: true`; `figure` is not. ProseMirror's dragstart
5
+ * therefore builds a NodeSelection on the `<img>` (`pos.inside` is the image,
6
+ * not the figure), and the default drop moves only that node. The caption
7
+ * stays behind. An image-less `<figure><figcaption>` is illegal on the next
8
+ * parse.
9
+ *
10
+ * Marking `figure` draggable is not enough -- mousedown still resolves to the
11
+ * image. Making figure an atom would kill caption editing. Caption text
12
+ * drags are left alone: only a NodeSelection on the image whose parent is
13
+ * figure is claimed.
14
+ */
15
+ import { Plugin } from 'prosemirror-state';
16
+ import type { EditorView } from 'prosemirror-view';
17
+ /**
18
+ * If the drag is a NodeSelection on an image inside a figure, insert (or
19
+ * move) the whole figure at `pos`. Returns true when it handled the drop.
20
+ *
21
+ * `copy` is the inverse of ProseMirror's drop `moved` flag: Alt on Mac / Ctrl
22
+ * elsewhere copies. One transaction so undo is a single step.
23
+ */
24
+ export declare function dropFigureForDraggedImage(view: EditorView, pos: number, copy: boolean): boolean;
25
+ export declare function figureDragPlugin(): Plugin;
26
+ //# sourceMappingURL=figure-drag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figure-drag.d.ts","sourceRoot":"","sources":["../src/figure-drag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAiB,MAAM,EAAa,MAAM,mBAAmB,CAAA;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAwBlD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,GACZ,OAAO,CAkBT;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAWzC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Dragging the image inside a captioned figure must move the figure.
3
+ *
4
+ * `image` is `draggable: true`; `figure` is not. ProseMirror's dragstart
5
+ * therefore builds a NodeSelection on the `<img>` (`pos.inside` is the image,
6
+ * not the figure), and the default drop moves only that node. The caption
7
+ * stays behind. An image-less `<figure><figcaption>` is illegal on the next
8
+ * parse.
9
+ *
10
+ * Marking `figure` draggable is not enough -- mousedown still resolves to the
11
+ * image. Making figure an atom would kill caption editing. Caption text
12
+ * drags are left alone: only a NodeSelection on the image whose parent is
13
+ * figure is claimed.
14
+ */
15
+ import { Fragment, Slice } from 'prosemirror-model';
16
+ import { NodeSelection, Plugin, PluginKey } from 'prosemirror-state';
17
+ import { dropPoint } from 'prosemirror-transform';
18
+ const key = new PluginKey('openleaf-figure-drag');
19
+ function draggedImageInFigure(view) {
20
+ const dragging = view.dragging;
21
+ if (!dragging)
22
+ return null;
23
+ // dragstart stores the image NodeSelection on `dragging.node` and does not
24
+ // dispatch it. A pre-selected image drag leaves `node` unset and uses the
25
+ // state's NodeSelection instead.
26
+ const sel = dragging.node ??
27
+ (view.state.selection instanceof NodeSelection ? view.state.selection : null);
28
+ if (!sel || sel.node.type.name !== 'image')
29
+ return null;
30
+ if (sel.$from.parent.type.name !== 'figure')
31
+ return null;
32
+ return sel;
33
+ }
34
+ /**
35
+ * If the drag is a NodeSelection on an image inside a figure, insert (or
36
+ * move) the whole figure at `pos`. Returns true when it handled the drop.
37
+ *
38
+ * `copy` is the inverse of ProseMirror's drop `moved` flag: Alt on Mac / Ctrl
39
+ * elsewhere copies. One transaction so undo is a single step.
40
+ */
41
+ export function dropFigureForDraggedImage(view, pos, copy) {
42
+ if (!view.editable)
43
+ return false;
44
+ const sel = draggedImageInFigure(view);
45
+ if (!sel)
46
+ return false;
47
+ const figure = sel.$from.parent;
48
+ const from = sel.$from.before(sel.$from.depth);
49
+ const slice = new Slice(Fragment.from(figure), 0, 0);
50
+ const insertPos = dropPoint(view.state.doc, pos, slice);
51
+ if (insertPos == null)
52
+ return false;
53
+ const tr = view.state.tr;
54
+ if (!copy)
55
+ tr.delete(from, from + figure.nodeSize);
56
+ const dest = tr.mapping.map(insertPos);
57
+ tr.insert(dest, figure);
58
+ tr.setSelection(NodeSelection.create(tr.doc, dest));
59
+ view.dispatch(tr.scrollIntoView());
60
+ return true;
61
+ }
62
+ export function figureDragPlugin() {
63
+ return new Plugin({
64
+ key,
65
+ props: {
66
+ handleDrop(view, event, _slice, moved) {
67
+ const coords = view.posAtCoords({ left: event.clientX, top: event.clientY });
68
+ if (!coords)
69
+ return false;
70
+ return dropFigureForDraggedImage(view, coords.pos, !moved);
71
+ },
72
+ },
73
+ });
74
+ }
75
+ //# sourceMappingURL=figure-drag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figure-drag.js","sourceRoot":"","sources":["../src/figure-drag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAGjD,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,sBAAsB,CAAC,CAAA;AAQjD,SAAS,oBAAoB,CAAC,IAAgB;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA2B,CAAA;IACjD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1B,2EAA2E;IAC3E,0EAA0E;IAC1E,iCAAiC;IACjC,MAAM,GAAG,GACP,QAAQ,CAAC,IAAI;QACb,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,YAAY,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC/E,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAA;IACvD,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACxD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAgB,EAChB,GAAW,EACX,IAAa;IAEb,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAA;IAChC,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAA;IAEtB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAA;IAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACpD,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;IACvD,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,KAAK,CAAA;IAEnC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;IACxB,IAAI,CAAC,IAAI;QAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACtC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACvB,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IACnD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAA;IAClC,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,MAAM,CAAC;QAChB,GAAG;QACH,KAAK,EAAE;YACL,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;gBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC5E,IAAI,CAAC,MAAM;oBAAE,OAAO,KAAK,CAAA;gBACzB,OAAO,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;YAC5D,CAAC;SACF;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A caret beside a block atom or isolating node.
3
+ *
4
+ * Several core nodes are leaves (`page_break`, `video`, `audio`, `iframe`) or
5
+ * isolating blocks (`details`, preserved unknown blocks). The document can be
6
+ * *only* one of those, or two of them adjacent, and there is then no textblock
7
+ * for the caret. ArrowLeft on a selected page-break stayed a `NodeSelection`;
8
+ * the next keystroke replaced the atom (#164).
9
+ *
10
+ * `prosemirror-gapcursor` is the plugin this schema shape exists for. Tab is
11
+ * not bound by it — that key remains the way out of the editor.
12
+ */
13
+ export declare function gapCursorPlugin(): import("prosemirror-state").Plugin<any>;
14
+ //# sourceMappingURL=gapcursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gapcursor.d.ts","sourceRoot":"","sources":["../src/gapcursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,wBAAgB,eAAe,4CAE9B"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * A caret beside a block atom or isolating node.
3
+ *
4
+ * Several core nodes are leaves (`page_break`, `video`, `audio`, `iframe`) or
5
+ * isolating blocks (`details`, preserved unknown blocks). The document can be
6
+ * *only* one of those, or two of them adjacent, and there is then no textblock
7
+ * for the caret. ArrowLeft on a selected page-break stayed a `NodeSelection`;
8
+ * the next keystroke replaced the atom (#164).
9
+ *
10
+ * `prosemirror-gapcursor` is the plugin this schema shape exists for. Tab is
11
+ * not bound by it — that key remains the way out of the editor.
12
+ */
13
+ import { gapCursor } from 'prosemirror-gapcursor';
14
+ export function gapCursorPlugin() {
15
+ return gapCursor();
16
+ }
17
+ //# sourceMappingURL=gapcursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gapcursor.js","sourceRoot":"","sources":["../src/gapcursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,MAAM,UAAU,eAAe;IAC7B,OAAO,SAAS,EAAE,CAAA;AACpB,CAAC"}