@prosekit/core 0.7.11 → 0.7.12

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.
@@ -32,7 +32,6 @@ import type { ResolvedPos } from '@prosekit/pm/model';
32
32
  import { Schema } from '@prosekit/pm/model';
33
33
  import { SchemaSpec } from '@prosekit/pm/model';
34
34
  import { Selection as Selection_2 } from '@prosekit/pm/state';
35
- import { Selection as Selection_3 } from 'prosemirror-state';
36
35
  import type { Simplify } from 'type-fest';
37
36
  import { Slice } from '@prosekit/pm/model';
38
37
  import type { TagParseRule } from '@prosekit/pm/model';
@@ -87,6 +86,13 @@ declare type AnyAttrs = Attrs;
87
86
  export { AnyAttrs }
88
87
  export { AnyAttrs as AnyAttrs_alias_1 }
89
88
 
89
+ /**
90
+ * @internal
91
+ */
92
+ declare type AnyFunction = (...args: any[]) => any;
93
+ export { AnyFunction }
94
+ export { AnyFunction as AnyFunction_alias_1 }
95
+
90
96
  export declare function applyAction(operator: Action): Command;
91
97
 
92
98
  export declare const applyMarkForTest: ApplyMarkFunction;
@@ -296,7 +302,10 @@ declare function collectNodes(content: NodeContent): ProseMirrorNode[];
296
302
  export { collectNodes }
297
303
  export { collectNodes as collectNodes_alias_1 }
298
304
 
299
- export declare function combineEventHandlers<Handler extends (...args: any[]) => boolean | void, Args extends Parameters<Handler> = Parameters<Handler>>(): readonly [(eventHandlers: Handler[]) => void, (...args: Args) => boolean];
305
+ export declare function combineEventHandlers<Handler extends (...args: any[]) => boolean | void, Args extends Parameters<Handler> = Parameters<Handler>>(): [
306
+ setHandlers: (eventHandlers: Handler[]) => void,
307
+ combinedEventHandler: (...args: Args) => boolean
308
+ ];
300
309
 
301
310
  /**
302
311
  * A function to apply a command to the editor. It will return `true` if the command was applied, and `false` otherwise.
@@ -332,7 +341,7 @@ export declare interface CommandCreators {
332
341
  [name: string]: CommandCreator;
333
342
  }
334
343
 
335
- export declare const commandFacet: Facet<CommandCreators, RootPayload>;
344
+ export declare const commandFacet: Facet<CommandPayload, RootPayload>;
336
345
 
337
346
  export declare type CommandPayload = CommandCreators;
338
347
 
@@ -458,7 +467,7 @@ export { defineBaseKeymap as defineBaseKeymap_alias_1 }
458
467
  *
459
468
  * See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleClick}
460
469
  */
461
- declare function defineClickHandler(handler: ClickHandler): Extension<ExtensionTyping<any, any, any>>;
470
+ declare function defineClickHandler(handler: ClickHandler): PlainExtension;
462
471
  export { defineClickHandler }
463
472
  export { defineClickHandler as defineClickHandler_alias_1 }
464
473
 
@@ -467,7 +476,7 @@ export { defineClickHandler as defineClickHandler_alias_1 }
467
476
  *
468
477
  * See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleClickOn}
469
478
  */
470
- declare function defineClickOnHandler(handler: ClickOnHandler): Extension<ExtensionTyping<any, any, any>>;
479
+ declare function defineClickOnHandler(handler: ClickOnHandler): PlainExtension;
471
480
  export { defineClickOnHandler }
472
481
  export { defineClickOnHandler as defineClickOnHandler_alias_1 }
473
482
 
@@ -506,12 +515,17 @@ declare function defineDocChangeHandler(handler: DocChangeHandler): PlainExtensi
506
515
  export { defineDocChangeHandler }
507
516
  export { defineDocChangeHandler as defineDocChangeHandler_alias_1 }
508
517
 
518
+ /**
519
+ * @internal
520
+ */
521
+ export declare function defineDomEventFacetPayload(...payloads: DOMEventPayload[]): PlainExtension;
522
+
509
523
  /**
510
524
  * Register a new event handler for the given event type.
511
525
  *
512
526
  * @public
513
527
  */
514
- declare function defineDOMEventHandler<Event extends keyof DOMEventMap = string>(event: Event, handler: DOMEventHandler<Event>): Extension<ExtensionTyping<any, any, any>>;
528
+ declare function defineDOMEventHandler<Event extends keyof DOMEventMap = string>(event: Event, handler: DOMEventHandler<Event>): PlainExtension;
515
529
  export { defineDOMEventHandler }
516
530
  export { defineDOMEventHandler as defineDOMEventHandler_alias_1 }
517
531
 
@@ -520,7 +534,7 @@ export { defineDOMEventHandler as defineDOMEventHandler_alias_1 }
520
534
  *
521
535
  * See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleDoubleClick}
522
536
  */
523
- declare function defineDoubleClickHandler(handler: DoubleClickHandler): Extension<ExtensionTyping<any, any, any>>;
537
+ declare function defineDoubleClickHandler(handler: DoubleClickHandler): PlainExtension;
524
538
  export { defineDoubleClickHandler }
525
539
  export { defineDoubleClickHandler as defineDoubleClickHandler_alias_1 }
526
540
 
@@ -529,7 +543,7 @@ export { defineDoubleClickHandler as defineDoubleClickHandler_alias_1 }
529
543
  *
530
544
  * See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleDoubleClickOn}
531
545
  */
532
- declare function defineDoubleClickOnHandler(handler: DoubleClickOnHandler): Extension<ExtensionTyping<any, any, any>>;
546
+ declare function defineDoubleClickOnHandler(handler: DoubleClickOnHandler): PlainExtension;
533
547
  export { defineDoubleClickOnHandler }
534
548
  export { defineDoubleClickOnHandler as defineDoubleClickOnHandler_alias_1 }
535
549
 
@@ -538,7 +552,7 @@ export { defineDoubleClickOnHandler as defineDoubleClickOnHandler_alias_1 }
538
552
  *
539
553
  * See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleDrop}
540
554
  */
541
- declare function defineDropHandler(handler: DropHandler): Extension<ExtensionTyping<any, any, any>>;
555
+ declare function defineDropHandler(handler: DropHandler): PlainExtension;
542
556
  export { defineDropHandler }
543
557
  export { defineDropHandler as defineDropHandler_alias_1 }
544
558
 
@@ -581,7 +595,7 @@ export { defineFacetPayload as defineFacetPayload_alias_1 }
581
595
  *
582
596
  * @public
583
597
  */
584
- declare function defineFocusChangeHandler(handler: FocusChangeHandler): Extension<ExtensionTyping<any, any, any>>;
598
+ declare function defineFocusChangeHandler(handler: FocusChangeHandler): PlainExtension;
585
599
  export { defineFocusChangeHandler }
586
600
  export { defineFocusChangeHandler as defineFocusChangeHandler_alias_1 }
587
601
 
@@ -601,7 +615,7 @@ export { defineHistory as defineHistory_alias_1 }
601
615
  *
602
616
  * See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleKeyDown}
603
617
  */
604
- declare function defineKeyDownHandler(handler: KeyDownHandler): Extension<ExtensionTyping<any, any, any>>;
618
+ declare function defineKeyDownHandler(handler: KeyDownHandler): PlainExtension;
605
619
  export { defineKeyDownHandler }
606
620
  export { defineKeyDownHandler as defineKeyDownHandler_alias_1 }
607
621
 
@@ -617,7 +631,7 @@ export { defineKeymap as defineKeymap_alias_1 }
617
631
  *
618
632
  * See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleKeyPress}
619
633
  */
620
- declare function defineKeyPressHandler(handler: KeyPressHandler): Extension<ExtensionTyping<any, any, any>>;
634
+ declare function defineKeyPressHandler(handler: KeyPressHandler): PlainExtension;
621
635
  export { defineKeyPressHandler }
622
636
  export { defineKeyPressHandler as defineKeyPressHandler_alias_1 }
623
637
 
@@ -719,7 +733,7 @@ export declare function defineParagraphSpec(): ParagraphSpecExtension;
719
733
  *
720
734
  * See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handlePaste}
721
735
  */
722
- declare function definePasteHandler(handler: PasteHandler): Extension<ExtensionTyping<any, any, any>>;
736
+ declare function definePasteHandler(handler: PasteHandler): PlainExtension;
723
737
  export { definePasteHandler }
724
738
  export { definePasteHandler as definePasteHandler_alias_1 }
725
739
 
@@ -742,7 +756,7 @@ export { definePlugin as definePlugin_alias_1 }
742
756
  *
743
757
  * See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleScrollToSelection}
744
758
  */
745
- declare function defineScrollToSelectionHandler(handler: ScrollToSelectionHandler): Extension<ExtensionTyping<any, any, any>>;
759
+ declare function defineScrollToSelectionHandler(handler: ScrollToSelectionHandler): PlainExtension;
746
760
  export { defineScrollToSelectionHandler }
747
761
  export { defineScrollToSelectionHandler as defineScrollToSelectionHandler_alias_1 }
748
762
 
@@ -767,7 +781,7 @@ export { defineText as defineText_alias_1 }
767
781
  *
768
782
  * See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleTextInput}
769
783
  */
770
- declare function defineTextInputHandler(handler: TextInputHandler): Extension<ExtensionTyping<any, any, any>>;
784
+ declare function defineTextInputHandler(handler: TextInputHandler): PlainExtension;
771
785
  export { defineTextInputHandler }
772
786
  export { defineTextInputHandler as defineTextInputHandler_alias_1 }
773
787
 
@@ -776,7 +790,7 @@ export { defineTextInputHandler as defineTextInputHandler_alias_1 }
776
790
  *
777
791
  * See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleTripleClick}
778
792
  */
779
- declare function defineTripleClickHandler(handler: TripleClickHandler): Extension<ExtensionTyping<any, any, any>>;
793
+ declare function defineTripleClickHandler(handler: TripleClickHandler): PlainExtension;
780
794
  export { defineTripleClickHandler }
781
795
  export { defineTripleClickHandler as defineTripleClickHandler_alias_1 }
782
796
 
@@ -785,7 +799,7 @@ export { defineTripleClickHandler as defineTripleClickHandler_alias_1 }
785
799
  *
786
800
  * See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleTripleClickOn}
787
801
  */
788
- declare function defineTripleClickOnHandler(handler: TripleClickOnHandler): Extension<ExtensionTyping<any, any, any>>;
802
+ declare function defineTripleClickOnHandler(handler: TripleClickOnHandler): PlainExtension;
789
803
  export { defineTripleClickOnHandler }
790
804
  export { defineTripleClickOnHandler as defineTripleClickOnHandler_alias_1 }
791
805
 
@@ -995,6 +1009,35 @@ declare class Editor<E extends Extension = any> {
995
1009
  export { Editor }
996
1010
  export { Editor as Editor_alias_1 }
997
1011
 
1012
+ /**
1013
+ * @internal
1014
+ */
1015
+ declare const editorEventFacet: Facet<EditorEventPayload, PluginPayload>;
1016
+ export { editorEventFacet }
1017
+ export { editorEventFacet as editorEventFacet_alias_1 }
1018
+
1019
+ declare interface EditorEventMap {
1020
+ keyDown: KeyDownHandler;
1021
+ keyPress: KeyPressHandler;
1022
+ textInput: TextInputHandler;
1023
+ clickOn: ClickOnHandler;
1024
+ click: ClickHandler;
1025
+ doubleClickOn: DoubleClickOnHandler;
1026
+ doubleClick: DoubleClickHandler;
1027
+ tripleClickOn: TripleClickOnHandler;
1028
+ tripleClick: TripleClickHandler;
1029
+ paste: PasteHandler;
1030
+ drop: DropHandler;
1031
+ scrollToSelection: ScrollToSelectionHandler;
1032
+ }
1033
+
1034
+ /**
1035
+ * @internal
1036
+ */
1037
+ declare type EditorEventPayload = ObjectEntries<EditorEventMap>;
1038
+ export { EditorEventPayload }
1039
+ export { EditorEventPayload as EditorEventPayload_alias_1 }
1040
+
998
1041
  /**
999
1042
  * An internal class to make TypeScript generic type easier to use.
1000
1043
  *
@@ -1299,7 +1342,7 @@ export declare function findBrowserDocument(options?: {
1299
1342
 
1300
1343
  export declare function findBrowserWindow(options?: {
1301
1344
  document?: Document;
1302
- }): (Window & typeof globalThis) | null | undefined;
1345
+ }): (Window & typeof globalThis) | undefined;
1303
1346
 
1304
1347
  /**
1305
1348
  * Find the closest parent node that satisfies the predicate.
@@ -1378,7 +1421,7 @@ export declare function getBrowserWindow(options?: {
1378
1421
  document?: Document;
1379
1422
  }): Window & typeof globalThis;
1380
1423
 
1381
- export declare function getCustomSelection(state: EditorState, from?: number | null, to?: number | null): Selection_3;
1424
+ export declare function getCustomSelection(state: EditorState, from?: number | null, to?: number | null): Selection_2;
1382
1425
 
1383
1426
  export declare function getEditorContentDoc(schema: Schema, content: NodeJSON | string | HTMLElement | ProseMirrorNode): ProseMirrorNode;
1384
1427
 
@@ -1615,7 +1658,7 @@ export { isFragment as isFragment_alias_1 }
1615
1658
  *
1616
1659
  * @internal
1617
1660
  */
1618
- declare function isInCodeBlock(selection: Selection_2): boolean | undefined;
1661
+ declare function isInCodeBlock(selection: Selection_2): boolean;
1619
1662
  export { isInCodeBlock }
1620
1663
  export { isInCodeBlock as isInCodeBlock_alias_1 }
1621
1664
 
@@ -1768,7 +1811,7 @@ export { Keymap as Keymap_alias_1 }
1768
1811
  /**
1769
1812
  * @internal
1770
1813
  */
1771
- declare const keymapFacet: Facet<Keymap, PluginPayload>;
1814
+ declare const keymapFacet: Facet<KeymapPayload, PluginPayload>;
1772
1815
  export { keymapFacet }
1773
1816
  export { keymapFacet as keymapFacet_alias_1 }
1774
1817
 
@@ -1881,7 +1924,7 @@ export { MarkTyping as MarkTyping_alias_1 }
1881
1924
  /**
1882
1925
  * @internal
1883
1926
  */
1884
- declare function maybeRun<T, R = T extends (...args: any[]) => void ? ReturnType<T> : T>(value: T, ...args: T extends (...args: any[]) => void ? Parameters<T> : never): R;
1927
+ declare function maybeRun<MaybeFn, Result = MaybeFn extends (...args: any[]) => void ? ReturnType<MaybeFn> : MaybeFn>(value: MaybeFn, ...args: MaybeFn extends (...args: any[]) => void ? Parameters<MaybeFn> : never): Result;
1885
1928
  export { maybeRun }
1886
1929
  export { maybeRun as maybeRun_alias_1 }
1887
1930
 
@@ -2285,9 +2328,9 @@ export declare type RootPayload = {
2285
2328
  view?: Omit<DirectEditorProps, 'state'>;
2286
2329
  };
2287
2330
 
2288
- export declare const schemaFacet: Facet<SchemaSpec<any, any>, RootPayload>;
2331
+ export declare const schemaFacet: Facet<SchemaSpec, RootPayload>;
2289
2332
 
2290
- export declare const schemaSpecFacet: Facet<SchemaSpec<any, any>, SchemaSpec<any, any>>;
2333
+ export declare const schemaSpecFacet: Facet<SchemaSpec, SchemaSpec>;
2291
2334
 
2292
2335
  declare type ScrollToSelectionHandler = (view: EditorView) => boolean;
2293
2336
  export { ScrollToSelectionHandler }
@@ -2367,7 +2410,9 @@ declare interface SetNodeAttrsOptions {
2367
2410
  export { SetNodeAttrsOptions }
2368
2411
  export { SetNodeAttrsOptions as SetNodeAttrsOptions_alias_1 }
2369
2412
 
2370
- export declare function setSelectionAround(tr: Transaction, pos: number): void;
2413
+ declare function setSelectionAround(tr: Transaction, pos: number): void;
2414
+ export { setSelectionAround }
2415
+ export { setSelectionAround as setSelectionAround_alias_1 }
2371
2416
 
2372
2417
  /**
2373
2418
  * @internal
@@ -145,11 +145,7 @@ function rootReducer(inputs) {
145
145
  const state = schema && ((_a = stateFunc == null ? void 0 : stateFunc({ schema })) != null ? _a : { schema });
146
146
  return { schema, state, commands, view };
147
147
  }
148
- var rootFacet = new Facet(
149
- null,
150
- true,
151
- rootReducer
152
- );
148
+ var rootFacet = new Facet(null, true, rootReducer);
153
149
 
154
150
  // src/facets/schema.ts
155
151
  var schemaFacet = defineFacet({
@@ -396,8 +392,8 @@ function findBrowserDocument(options) {
396
392
  return (_c = (_a = options == null ? void 0 : options.document) != null ? _a : findGlobalBrowserDocument()) != null ? _c : (_b = findGlobalBrowserWindow()) == null ? void 0 : _b.document;
397
393
  }
398
394
  function findBrowserWindow(options) {
399
- var _a, _b, _c, _d;
400
- return (_d = (_b = (_a = options == null ? void 0 : options.document) == null ? void 0 : _a.defaultView) != null ? _b : findGlobalBrowserWindow()) != null ? _d : (_c = findBrowserDocument(options)) == null ? void 0 : _c.defaultView;
395
+ var _a, _b, _c, _d, _e;
396
+ return (_e = (_d = (_b = (_a = options == null ? void 0 : options.document) == null ? void 0 : _a.defaultView) != null ? _b : findGlobalBrowserWindow()) != null ? _d : (_c = findBrowserDocument(options)) == null ? void 0 : _c.defaultView) != null ? _e : void 0;
401
397
  }
402
398
  function getBrowserDocument(options) {
403
399
  const doc = findBrowserDocument(options);
@@ -6,7 +6,7 @@ import {
6
6
  createNodeActions,
7
7
  isProseMirrorNode,
8
8
  setupEditorExtension
9
- } from "./chunk-RNBMCB5M.js";
9
+ } from "./chunk-LAFNHJDR.js";
10
10
 
11
11
  // src/test/test-editor.ts
12
12
  import {
@@ -2,10 +2,10 @@ export { addMark } from './_tsup-dts-rollup';
2
2
  export { AddMarkOptions } from './_tsup-dts-rollup';
3
3
  export { expandMark } from './_tsup-dts-rollup';
4
4
  export { ExpandMarkOptions } from './_tsup-dts-rollup';
5
- export { insertNode } from './_tsup-dts-rollup';
6
- export { InsertNodeOptions } from './_tsup-dts-rollup';
7
5
  export { insertDefaultBlock } from './_tsup-dts-rollup';
8
6
  export { InsertDefaultBlockOptions } from './_tsup-dts-rollup';
7
+ export { insertNode } from './_tsup-dts-rollup';
8
+ export { InsertNodeOptions } from './_tsup-dts-rollup';
9
9
  export { removeMark } from './_tsup-dts-rollup';
10
10
  export { RemoveMarkOptions } from './_tsup-dts-rollup';
11
11
  export { removeNode } from './_tsup-dts-rollup';
@@ -18,12 +18,12 @@ export { toggleMark } from './_tsup-dts-rollup';
18
18
  export { ToggleMarkOptions } from './_tsup-dts-rollup';
19
19
  export { toggleNode } from './_tsup-dts-rollup';
20
20
  export { ToggleNodeOptions } from './_tsup-dts-rollup';
21
+ export { toggleWrap } from './_tsup-dts-rollup';
22
+ export { ToggleWrapOptions } from './_tsup-dts-rollup';
21
23
  export { unsetBlockType } from './_tsup-dts-rollup';
22
24
  export { UnsetBlockTypeOptions } from './_tsup-dts-rollup';
23
25
  export { unsetMark } from './_tsup-dts-rollup';
24
26
  export { UnsetMarkOptions } from './_tsup-dts-rollup';
25
- export { toggleWrap } from './_tsup-dts-rollup';
26
- export { ToggleWrapOptions } from './_tsup-dts-rollup';
27
27
  export { wrap } from './_tsup-dts-rollup';
28
28
  export { WrapOptions } from './_tsup-dts-rollup';
29
29
  export { MarkAction } from './_tsup-dts-rollup';
@@ -73,6 +73,8 @@ export { ScrollToSelectionHandler } from './_tsup-dts-rollup';
73
73
  export { TextInputHandler } from './_tsup-dts-rollup';
74
74
  export { TripleClickHandler } from './_tsup-dts-rollup';
75
75
  export { TripleClickOnHandler } from './_tsup-dts-rollup';
76
+ export { editorEventFacet } from './_tsup-dts-rollup';
77
+ export { EditorEventPayload } from './_tsup-dts-rollup';
76
78
  export { defineFocusChangeHandler } from './_tsup-dts-rollup';
77
79
  export { FocusChangeHandler } from './_tsup-dts-rollup';
78
80
  export { defineMountHandler } from './_tsup-dts-rollup';
@@ -114,6 +116,7 @@ export { TextExtension } from './_tsup-dts-rollup';
114
116
  export { defineFacet } from './_tsup-dts-rollup';
115
117
  export { Facet } from './_tsup-dts-rollup';
116
118
  export { defineFacetPayload } from './_tsup-dts-rollup';
119
+ export { AnyFunction } from './_tsup-dts-rollup';
117
120
  export { AnyAttrs } from './_tsup-dts-rollup';
118
121
  export { AttrSpec } from './_tsup-dts-rollup';
119
122
  export { BaseNodeViewOptions } from './_tsup-dts-rollup';
@@ -178,6 +181,7 @@ export { DOMDocumentOptions } from './_tsup-dts-rollup';
178
181
  export { DOMParserOptions } from './_tsup-dts-rollup';
179
182
  export { DOMSerializerOptions } from './_tsup-dts-rollup';
180
183
  export { JSONParserOptions } from './_tsup-dts-rollup';
184
+ export { setSelectionAround } from './_tsup-dts-rollup';
181
185
  export { isAllSelection } from './_tsup-dts-rollup';
182
186
  export { isFragment } from './_tsup-dts-rollup';
183
187
  export { isMark } from './_tsup-dts-rollup';
@@ -39,7 +39,7 @@ import {
39
39
  stateFromJSON,
40
40
  toReversed,
41
41
  union
42
- } from "./chunk-RNBMCB5M.js";
42
+ } from "./chunk-LAFNHJDR.js";
43
43
 
44
44
  // src/commands/add-mark.ts
45
45
  function addMark(options) {
@@ -109,41 +109,8 @@ function expandMarkAfter($pos, predicate) {
109
109
  return $pos.posAtIndex(boundaryIndex) + parent.child(boundaryIndex).nodeSize;
110
110
  }
111
111
 
112
- // src/commands/insert-node.ts
113
- import { insertPoint } from "@prosekit/pm/transform";
114
-
115
- // src/utils/set-selection-around.ts
116
- import { TextSelection as TextSelection2 } from "@prosekit/pm/state";
117
- function setSelectionAround(tr, pos) {
118
- const docSize = tr.doc.content.size;
119
- const $pos = tr.doc.resolve(pos > docSize ? docSize : pos < 0 ? 0 : pos);
120
- const selection = TextSelection2.between($pos, $pos);
121
- tr.setSelection(selection);
122
- }
123
-
124
- // src/commands/insert-node.ts
125
- function insertNode(options) {
126
- return (state, dispatch) => {
127
- var _a;
128
- const node = options.node ? options.node : options.type ? getNodeType(state.schema, options.type).createAndFill(options.attrs) : null;
129
- assert(node, "You must provide either a node or a type");
130
- const insertPos = insertPoint(
131
- state.doc,
132
- (_a = options.pos) != null ? _a : state.selection.anchor,
133
- node.type
134
- );
135
- if (insertPos == null) return false;
136
- if (dispatch) {
137
- const tr = state.tr.insert(insertPos, node);
138
- setSelectionAround(tr, insertPos + node.nodeSize);
139
- dispatch(tr);
140
- }
141
- return true;
142
- };
143
- }
144
-
145
112
  // src/commands/insert-default-block.ts
146
- import { TextSelection as TextSelection3 } from "@prosekit/pm/state";
113
+ import { TextSelection as TextSelection2 } from "@prosekit/pm/state";
147
114
 
148
115
  // src/utils/default-block-at.ts
149
116
  function defaultBlockAt(match) {
@@ -168,7 +135,7 @@ function insertDefaultBlock(options) {
168
135
  const node = type.createAndFill();
169
136
  if (!node) return false;
170
137
  const tr = state.tr.insert(pos, node);
171
- const selection = TextSelection3.findFrom(tr.doc.resolve(pos), 1);
138
+ const selection = TextSelection2.findFrom(tr.doc.resolve(pos), 1);
172
139
  if (!selection) return false;
173
140
  tr.setSelection(selection);
174
141
  dispatch(tr.scrollIntoView());
@@ -177,6 +144,39 @@ function insertDefaultBlock(options) {
177
144
  };
178
145
  }
179
146
 
147
+ // src/commands/insert-node.ts
148
+ import { insertPoint } from "@prosekit/pm/transform";
149
+
150
+ // src/utils/set-selection-around.ts
151
+ import { TextSelection as TextSelection3 } from "@prosekit/pm/state";
152
+ function setSelectionAround(tr, pos) {
153
+ const docSize = tr.doc.content.size;
154
+ const $pos = tr.doc.resolve(pos > docSize ? docSize : pos < 0 ? 0 : pos);
155
+ const selection = TextSelection3.between($pos, $pos);
156
+ tr.setSelection(selection);
157
+ }
158
+
159
+ // src/commands/insert-node.ts
160
+ function insertNode(options) {
161
+ return (state, dispatch) => {
162
+ var _a;
163
+ const node = options.node ? options.node : options.type ? getNodeType(state.schema, options.type).createAndFill(options.attrs) : null;
164
+ assert(node, "You must provide either a node or a type");
165
+ const insertPos = insertPoint(
166
+ state.doc,
167
+ (_a = options.pos) != null ? _a : state.selection.anchor,
168
+ node.type
169
+ );
170
+ if (insertPos == null) return false;
171
+ if (dispatch) {
172
+ const tr = state.tr.insert(insertPos, node);
173
+ setSelectionAround(tr, insertPos + node.nodeSize);
174
+ dispatch(tr);
175
+ }
176
+ return true;
177
+ };
178
+ }
179
+
180
180
  // src/commands/remove-mark.ts
181
181
  function removeMark(options) {
182
182
  return (state, dispatch) => {
@@ -224,7 +224,9 @@ function removeNode(options) {
224
224
  }
225
225
 
226
226
  // src/utils/get-custom-selection.ts
227
- import { TextSelection as TextSelection4 } from "@prosekit/pm/state";
227
+ import {
228
+ TextSelection as TextSelection4
229
+ } from "@prosekit/pm/state";
228
230
  function getCustomSelection(state, from, to) {
229
231
  const pos = from != null ? from : to;
230
232
  if (pos != null) {
@@ -347,6 +349,35 @@ function toggleNode({ type, attrs }) {
347
349
  };
348
350
  }
349
351
 
352
+ // src/commands/toggle-wrap.ts
353
+ import { lift } from "@prosekit/pm/commands";
354
+
355
+ // src/commands/wrap.ts
356
+ import { findWrapping } from "@prosekit/pm/transform";
357
+ function wrap(options) {
358
+ return (state, dispatch) => {
359
+ const { $from, $to } = state.selection;
360
+ const range = $from.blockRange($to);
361
+ if (!range) return false;
362
+ const nodeType = getNodeType(state.schema, options.nodeType || options.type);
363
+ const wrapping = findWrapping(range, nodeType, options.attrs);
364
+ if (!wrapping) return false;
365
+ dispatch == null ? void 0 : dispatch(state.tr.wrap(range, wrapping));
366
+ return true;
367
+ };
368
+ }
369
+
370
+ // src/commands/toggle-wrap.ts
371
+ function toggleWrap(options) {
372
+ const { type, attrs } = options;
373
+ return (state, dispatch) => {
374
+ if (isNodeActive(state, type, attrs)) {
375
+ return lift(state, dispatch);
376
+ }
377
+ return wrap({ type, attrs })(state, dispatch);
378
+ };
379
+ }
380
+
350
381
  // src/commands/unset-block-type.ts
351
382
  import { Fragment, Slice } from "@prosekit/pm/model";
352
383
  import { ReplaceAroundStep } from "@prosekit/pm/transform";
@@ -401,35 +432,6 @@ function unsetMark(options) {
401
432
  };
402
433
  }
403
434
 
404
- // src/commands/toggle-wrap.ts
405
- import { lift } from "@prosekit/pm/commands";
406
-
407
- // src/commands/wrap.ts
408
- import { findWrapping } from "@prosekit/pm/transform";
409
- function wrap(options) {
410
- return (state, dispatch) => {
411
- const { $from, $to } = state.selection;
412
- const range = $from.blockRange($to);
413
- if (!range) return false;
414
- const nodeType = getNodeType(state.schema, options.nodeType || options.type);
415
- const wrapping = findWrapping(range, nodeType, options.attrs);
416
- if (!wrapping) return false;
417
- dispatch == null ? void 0 : dispatch(state.tr.wrap(range, wrapping));
418
- return true;
419
- };
420
- }
421
-
422
- // src/commands/toggle-wrap.ts
423
- function toggleWrap(options) {
424
- const { type, attrs } = options;
425
- return (state, dispatch) => {
426
- if (isNodeActive(state, type, attrs)) {
427
- return lift(state, dispatch);
428
- }
429
- return wrap({ type, attrs })(state, dispatch);
430
- };
431
- }
432
-
433
435
  // src/editor/with-priority.ts
434
436
  function withPriority(extension, priority) {
435
437
  const result = union(extension);
@@ -843,88 +845,100 @@ function combineEventHandlers() {
843
845
  }
844
846
 
845
847
  // src/extensions/events/dom-event.ts
848
+ function defineDomEventFacetPayload(...payloads) {
849
+ return defineFacetPayload(
850
+ domEventFacet,
851
+ payloads
852
+ );
853
+ }
846
854
  function defineDOMEventHandler(event, handler) {
847
- return defineFacetPayload(domEventFacet, [
848
- [event, handler]
855
+ return defineDomEventFacetPayload([
856
+ event,
857
+ handler
849
858
  ]);
850
859
  }
851
- var domEventFacet = defineFacet({
852
- reduce: () => {
853
- const setHandlersMap = {};
854
- const combinedHandlerMap = {};
855
- let plugin;
856
- const update = (payloads) => {
857
- var _a;
858
- let hasNewEvent = false;
859
- for (const [event] of payloads) {
860
- if (!setHandlersMap[event]) {
861
- hasNewEvent = true;
862
- const [setHandlers, combinedHandler] = combineEventHandlers();
863
- setHandlersMap[event] = setHandlers;
864
- const e = (view, eventObject) => {
865
- return combinedHandler(view, eventObject);
866
- };
867
- combinedHandlerMap[event] = e;
860
+ var domEventFacet = defineFacet(
861
+ {
862
+ reduce: () => {
863
+ const setHandlersMap = {};
864
+ const combinedHandlerMap = {};
865
+ let plugin;
866
+ const update = (payloads) => {
867
+ var _a;
868
+ let hasNewEvent = false;
869
+ for (const [event] of payloads) {
870
+ if (!setHandlersMap[event]) {
871
+ hasNewEvent = true;
872
+ const [setHandlers, combinedHandler] = combineEventHandlers();
873
+ setHandlersMap[event] = setHandlers;
874
+ const e = (view, eventObject) => {
875
+ return combinedHandler(view, eventObject);
876
+ };
877
+ combinedHandlerMap[event] = e;
878
+ }
868
879
  }
869
- }
870
- const map = groupEntries(payloads);
871
- for (const [event, setHandlers] of Object.entries(setHandlersMap)) {
872
- const handlers = (_a = map[event]) != null ? _a : [];
873
- setHandlers(handlers);
874
- }
875
- if (hasNewEvent) {
876
- plugin = new ProseMirrorPlugin2({
877
- key: new PluginKey2("prosekit-dom-event-handler"),
878
- props: { handleDOMEvents: combinedHandlerMap }
879
- });
880
- }
881
- };
882
- return function reducer(inputs) {
883
- update(inputs);
884
- return plugin != null ? plugin : [];
885
- };
886
- },
887
- parent: pluginFacet,
888
- singleton: true
889
- });
880
+ const map = groupEntries(payloads);
881
+ for (const [event, setHandlers] of Object.entries(setHandlersMap)) {
882
+ const handlers = (_a = map[event]) != null ? _a : [];
883
+ setHandlers(handlers);
884
+ }
885
+ if (hasNewEvent) {
886
+ plugin = new ProseMirrorPlugin2({
887
+ key: new PluginKey2("prosekit-dom-event-handler"),
888
+ props: { handleDOMEvents: combinedHandlerMap }
889
+ });
890
+ }
891
+ };
892
+ return function reducer(inputs) {
893
+ update(inputs);
894
+ return plugin != null ? plugin : [];
895
+ };
896
+ },
897
+ parent: pluginFacet,
898
+ singleton: true
899
+ }
900
+ );
890
901
 
891
902
  // src/extensions/events/editor-event.ts
892
903
  import { PluginKey as PluginKey3, ProseMirrorPlugin as ProseMirrorPlugin3 } from "@prosekit/pm/state";
904
+ function defineEventFacetPayload(payload) {
905
+ return defineFacetPayload(editorEventFacet, [payload]);
906
+ }
893
907
  function defineKeyDownHandler(handler) {
894
- return defineFacetPayload(editorEventFacet, [["keyDown", handler]]);
908
+ return defineEventFacetPayload(["keyDown", handler]);
895
909
  }
896
910
  function defineKeyPressHandler(handler) {
897
- return defineFacetPayload(editorEventFacet, [["keyPress", handler]]);
911
+ return defineEventFacetPayload(["keyPress", handler]);
898
912
  }
899
913
  function defineTextInputHandler(handler) {
900
- return defineFacetPayload(editorEventFacet, [["textInput", handler]]);
914
+ return defineEventFacetPayload(["textInput", handler]);
901
915
  }
902
916
  function defineClickOnHandler(handler) {
903
- return defineFacetPayload(editorEventFacet, [["clickOn", handler]]);
917
+ return defineEventFacetPayload(["clickOn", handler]);
904
918
  }
905
919
  function defineClickHandler(handler) {
906
- return defineFacetPayload(editorEventFacet, [["click", handler]]);
920
+ return defineEventFacetPayload(["click", handler]);
907
921
  }
908
922
  function defineDoubleClickOnHandler(handler) {
909
- return defineFacetPayload(editorEventFacet, [["doubleClickOn", handler]]);
923
+ return defineEventFacetPayload(["doubleClickOn", handler]);
910
924
  }
911
925
  function defineDoubleClickHandler(handler) {
912
- return defineFacetPayload(editorEventFacet, [["doubleClick", handler]]);
926
+ return defineEventFacetPayload(["doubleClick", handler]);
913
927
  }
914
928
  function defineTripleClickOnHandler(handler) {
915
- return defineFacetPayload(editorEventFacet, [["tripleClickOn", handler]]);
929
+ return defineEventFacetPayload(["tripleClickOn", handler]);
916
930
  }
917
931
  function defineTripleClickHandler(handler) {
918
- return defineFacetPayload(editorEventFacet, [["tripleClick", handler]]);
932
+ return defineEventFacetPayload(["tripleClick", handler]);
919
933
  }
920
934
  function definePasteHandler(handler) {
921
- return defineFacetPayload(editorEventFacet, [["paste", handler]]);
935
+ return defineEventFacetPayload(["paste", handler]);
922
936
  }
923
937
  function defineDropHandler(handler) {
924
- return defineFacetPayload(editorEventFacet, [["drop", handler]]);
938
+ return defineEventFacetPayload(["drop", handler]);
925
939
  }
926
940
  function defineScrollToSelectionHandler(handler) {
927
- return defineFacetPayload(editorEventFacet, [["scrollToSelection", handler]]);
941
+ return defineEventFacetPayload(["scrollToSelection", handler]);
928
942
  }
929
943
  var editorEventFacet = defineFacet({
930
944
  reduce: () => {
@@ -990,10 +1004,10 @@ function setupEditorEventPlugin() {
990
1004
  function defineFocusChangeHandler(handler) {
991
1005
  const handleFocus = () => handler(true);
992
1006
  const handleBlur = () => handler(false);
993
- return defineFacetPayload(domEventFacet, [
1007
+ return defineDomEventFacetPayload(
994
1008
  ["focus", handleFocus],
995
1009
  ["blur", handleBlur]
996
- ]);
1010
+ );
997
1011
  }
998
1012
 
999
1013
  // src/extensions/history.ts
@@ -1103,10 +1117,7 @@ var customBaseKeymap = {
1103
1117
  function defineBaseKeymap(options) {
1104
1118
  var _a;
1105
1119
  const priority = (_a = options == null ? void 0 : options.priority) != null ? _a : 1 /* low */;
1106
- return withPriority(
1107
- defineKeymap(customBaseKeymap),
1108
- priority
1109
- );
1120
+ return withPriority(defineKeymap(customBaseKeymap), priority);
1110
1121
  }
1111
1122
 
1112
1123
  // src/extensions/mark-spec.ts
@@ -1328,7 +1339,7 @@ function isAtBlockStart(state, view) {
1328
1339
 
1329
1340
  // src/utils/is-in-code-block.ts
1330
1341
  function isCodeBlockType(type) {
1331
- return type.spec.code && type.isBlock;
1342
+ return !!(type.spec.code && type.isBlock);
1332
1343
  }
1333
1344
  function isInCodeBlock(selection) {
1334
1345
  return isCodeBlockType(selection.$from.parent.type) || isCodeBlockType(selection.$to.parent.type);
@@ -1404,6 +1415,7 @@ export {
1404
1415
  defineTripleClickOnHandler,
1405
1416
  defineUnmountHandler,
1406
1417
  defineUpdateHandler,
1418
+ editorEventFacet,
1407
1419
  elementFromJSON,
1408
1420
  elementFromNode,
1409
1421
  expandMark,
@@ -1441,6 +1453,7 @@ export {
1441
1453
  removeNode,
1442
1454
  setBlockType,
1443
1455
  setNodeAttrs,
1456
+ setSelectionAround,
1444
1457
  stateFromJSON,
1445
1458
  toggleMark,
1446
1459
  toggleNode,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@prosekit/core",
3
3
  "type": "module",
4
- "version": "0.7.11",
4
+ "version": "0.7.12",
5
5
  "private": false,
6
6
  "author": {
7
7
  "name": "ocavue",
@@ -45,14 +45,14 @@
45
45
  "just-map-values": "^3.2.0",
46
46
  "orderedmap": "^2.1.1",
47
47
  "prosemirror-splittable": "^0.1.1",
48
- "type-fest": "^4.26.0",
48
+ "type-fest": "^4.26.1",
49
49
  "@prosekit/pm": "^0.1.8"
50
50
  },
51
51
  "devDependencies": {
52
- "@vitest/browser": "^2.0.5",
53
- "tsup": "^8.2.4",
54
- "typescript": "^5.5.4",
55
- "vitest": "^2.0.5",
52
+ "@vitest/browser": "^2.1.3",
53
+ "tsup": "^8.3.0",
54
+ "typescript": "^5.6.3",
55
+ "vitest": "^2.1.3",
56
56
  "@prosekit/dev": "0.0.0"
57
57
  },
58
58
  "scripts": {