@prosekit/core 0.7.10 → 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;
|
@@ -165,6 +171,7 @@ declare type BaseCommandsExtension = Extension<{
|
|
165
171
|
insertNode: [options: InsertNodeOptions];
|
166
172
|
removeNode: [options: RemoveNodeOptions];
|
167
173
|
wrap: [options: WrapOptions];
|
174
|
+
toggleWrap: [options: ToggleWrapOptions];
|
168
175
|
setBlockType: [options: SetBlockTypeOptions];
|
169
176
|
setNodeAttrs: [options: SetNodeAttrsOptions];
|
170
177
|
insertDefaultBlock: [options?: InsertDefaultBlockOptions];
|
@@ -295,7 +302,10 @@ declare function collectNodes(content: NodeContent): ProseMirrorNode[];
|
|
295
302
|
export { collectNodes }
|
296
303
|
export { collectNodes as collectNodes_alias_1 }
|
297
304
|
|
298
|
-
export declare function combineEventHandlers<Handler extends (...args: any[]) => boolean | void, Args extends Parameters<Handler> = Parameters<Handler>>():
|
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
|
+
];
|
299
309
|
|
300
310
|
/**
|
301
311
|
* A function to apply a command to the editor. It will return `true` if the command was applied, and `false` otherwise.
|
@@ -331,7 +341,7 @@ export declare interface CommandCreators {
|
|
331
341
|
[name: string]: CommandCreator;
|
332
342
|
}
|
333
343
|
|
334
|
-
export declare const commandFacet: Facet<
|
344
|
+
export declare const commandFacet: Facet<CommandPayload, RootPayload>;
|
335
345
|
|
336
346
|
export declare type CommandPayload = CommandCreators;
|
337
347
|
|
@@ -457,7 +467,7 @@ export { defineBaseKeymap as defineBaseKeymap_alias_1 }
|
|
457
467
|
*
|
458
468
|
* See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleClick}
|
459
469
|
*/
|
460
|
-
declare function defineClickHandler(handler: ClickHandler):
|
470
|
+
declare function defineClickHandler(handler: ClickHandler): PlainExtension;
|
461
471
|
export { defineClickHandler }
|
462
472
|
export { defineClickHandler as defineClickHandler_alias_1 }
|
463
473
|
|
@@ -466,7 +476,7 @@ export { defineClickHandler as defineClickHandler_alias_1 }
|
|
466
476
|
*
|
467
477
|
* See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleClickOn}
|
468
478
|
*/
|
469
|
-
declare function defineClickOnHandler(handler: ClickOnHandler):
|
479
|
+
declare function defineClickOnHandler(handler: ClickOnHandler): PlainExtension;
|
470
480
|
export { defineClickOnHandler }
|
471
481
|
export { defineClickOnHandler as defineClickOnHandler_alias_1 }
|
472
482
|
|
@@ -505,12 +515,17 @@ declare function defineDocChangeHandler(handler: DocChangeHandler): PlainExtensi
|
|
505
515
|
export { defineDocChangeHandler }
|
506
516
|
export { defineDocChangeHandler as defineDocChangeHandler_alias_1 }
|
507
517
|
|
518
|
+
/**
|
519
|
+
* @internal
|
520
|
+
*/
|
521
|
+
export declare function defineDomEventFacetPayload(...payloads: DOMEventPayload[]): PlainExtension;
|
522
|
+
|
508
523
|
/**
|
509
524
|
* Register a new event handler for the given event type.
|
510
525
|
*
|
511
526
|
* @public
|
512
527
|
*/
|
513
|
-
declare function defineDOMEventHandler<Event extends keyof DOMEventMap = string>(event: Event, handler: DOMEventHandler<Event>):
|
528
|
+
declare function defineDOMEventHandler<Event extends keyof DOMEventMap = string>(event: Event, handler: DOMEventHandler<Event>): PlainExtension;
|
514
529
|
export { defineDOMEventHandler }
|
515
530
|
export { defineDOMEventHandler as defineDOMEventHandler_alias_1 }
|
516
531
|
|
@@ -519,7 +534,7 @@ export { defineDOMEventHandler as defineDOMEventHandler_alias_1 }
|
|
519
534
|
*
|
520
535
|
* See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleDoubleClick}
|
521
536
|
*/
|
522
|
-
declare function defineDoubleClickHandler(handler: DoubleClickHandler):
|
537
|
+
declare function defineDoubleClickHandler(handler: DoubleClickHandler): PlainExtension;
|
523
538
|
export { defineDoubleClickHandler }
|
524
539
|
export { defineDoubleClickHandler as defineDoubleClickHandler_alias_1 }
|
525
540
|
|
@@ -528,7 +543,7 @@ export { defineDoubleClickHandler as defineDoubleClickHandler_alias_1 }
|
|
528
543
|
*
|
529
544
|
* See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleDoubleClickOn}
|
530
545
|
*/
|
531
|
-
declare function defineDoubleClickOnHandler(handler: DoubleClickOnHandler):
|
546
|
+
declare function defineDoubleClickOnHandler(handler: DoubleClickOnHandler): PlainExtension;
|
532
547
|
export { defineDoubleClickOnHandler }
|
533
548
|
export { defineDoubleClickOnHandler as defineDoubleClickOnHandler_alias_1 }
|
534
549
|
|
@@ -537,7 +552,7 @@ export { defineDoubleClickOnHandler as defineDoubleClickOnHandler_alias_1 }
|
|
537
552
|
*
|
538
553
|
* See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleDrop}
|
539
554
|
*/
|
540
|
-
declare function defineDropHandler(handler: DropHandler):
|
555
|
+
declare function defineDropHandler(handler: DropHandler): PlainExtension;
|
541
556
|
export { defineDropHandler }
|
542
557
|
export { defineDropHandler as defineDropHandler_alias_1 }
|
543
558
|
|
@@ -580,7 +595,7 @@ export { defineFacetPayload as defineFacetPayload_alias_1 }
|
|
580
595
|
*
|
581
596
|
* @public
|
582
597
|
*/
|
583
|
-
declare function defineFocusChangeHandler(handler: FocusChangeHandler):
|
598
|
+
declare function defineFocusChangeHandler(handler: FocusChangeHandler): PlainExtension;
|
584
599
|
export { defineFocusChangeHandler }
|
585
600
|
export { defineFocusChangeHandler as defineFocusChangeHandler_alias_1 }
|
586
601
|
|
@@ -600,7 +615,7 @@ export { defineHistory as defineHistory_alias_1 }
|
|
600
615
|
*
|
601
616
|
* See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleKeyDown}
|
602
617
|
*/
|
603
|
-
declare function defineKeyDownHandler(handler: KeyDownHandler):
|
618
|
+
declare function defineKeyDownHandler(handler: KeyDownHandler): PlainExtension;
|
604
619
|
export { defineKeyDownHandler }
|
605
620
|
export { defineKeyDownHandler as defineKeyDownHandler_alias_1 }
|
606
621
|
|
@@ -616,7 +631,7 @@ export { defineKeymap as defineKeymap_alias_1 }
|
|
616
631
|
*
|
617
632
|
* See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleKeyPress}
|
618
633
|
*/
|
619
|
-
declare function defineKeyPressHandler(handler: KeyPressHandler):
|
634
|
+
declare function defineKeyPressHandler(handler: KeyPressHandler): PlainExtension;
|
620
635
|
export { defineKeyPressHandler }
|
621
636
|
export { defineKeyPressHandler as defineKeyPressHandler_alias_1 }
|
622
637
|
|
@@ -718,7 +733,7 @@ export declare function defineParagraphSpec(): ParagraphSpecExtension;
|
|
718
733
|
*
|
719
734
|
* See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handlePaste}
|
720
735
|
*/
|
721
|
-
declare function definePasteHandler(handler: PasteHandler):
|
736
|
+
declare function definePasteHandler(handler: PasteHandler): PlainExtension;
|
722
737
|
export { definePasteHandler }
|
723
738
|
export { definePasteHandler as definePasteHandler_alias_1 }
|
724
739
|
|
@@ -741,7 +756,7 @@ export { definePlugin as definePlugin_alias_1 }
|
|
741
756
|
*
|
742
757
|
* See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleScrollToSelection}
|
743
758
|
*/
|
744
|
-
declare function defineScrollToSelectionHandler(handler: ScrollToSelectionHandler):
|
759
|
+
declare function defineScrollToSelectionHandler(handler: ScrollToSelectionHandler): PlainExtension;
|
745
760
|
export { defineScrollToSelectionHandler }
|
746
761
|
export { defineScrollToSelectionHandler as defineScrollToSelectionHandler_alias_1 }
|
747
762
|
|
@@ -766,7 +781,7 @@ export { defineText as defineText_alias_1 }
|
|
766
781
|
*
|
767
782
|
* See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleTextInput}
|
768
783
|
*/
|
769
|
-
declare function defineTextInputHandler(handler: TextInputHandler):
|
784
|
+
declare function defineTextInputHandler(handler: TextInputHandler): PlainExtension;
|
770
785
|
export { defineTextInputHandler }
|
771
786
|
export { defineTextInputHandler as defineTextInputHandler_alias_1 }
|
772
787
|
|
@@ -775,7 +790,7 @@ export { defineTextInputHandler as defineTextInputHandler_alias_1 }
|
|
775
790
|
*
|
776
791
|
* See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleTripleClick}
|
777
792
|
*/
|
778
|
-
declare function defineTripleClickHandler(handler: TripleClickHandler):
|
793
|
+
declare function defineTripleClickHandler(handler: TripleClickHandler): PlainExtension;
|
779
794
|
export { defineTripleClickHandler }
|
780
795
|
export { defineTripleClickHandler as defineTripleClickHandler_alias_1 }
|
781
796
|
|
@@ -784,7 +799,7 @@ export { defineTripleClickHandler as defineTripleClickHandler_alias_1 }
|
|
784
799
|
*
|
785
800
|
* See {@link https://prosemirror.net/docs/ref/#view.EditorProps.handleTripleClickOn}
|
786
801
|
*/
|
787
|
-
declare function defineTripleClickOnHandler(handler: TripleClickOnHandler):
|
802
|
+
declare function defineTripleClickOnHandler(handler: TripleClickOnHandler): PlainExtension;
|
788
803
|
export { defineTripleClickOnHandler }
|
789
804
|
export { defineTripleClickOnHandler as defineTripleClickOnHandler_alias_1 }
|
790
805
|
|
@@ -994,6 +1009,35 @@ declare class Editor<E extends Extension = any> {
|
|
994
1009
|
export { Editor }
|
995
1010
|
export { Editor as Editor_alias_1 }
|
996
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
|
+
|
997
1041
|
/**
|
998
1042
|
* An internal class to make TypeScript generic type easier to use.
|
999
1043
|
*
|
@@ -1298,7 +1342,7 @@ export declare function findBrowserDocument(options?: {
|
|
1298
1342
|
|
1299
1343
|
export declare function findBrowserWindow(options?: {
|
1300
1344
|
document?: Document;
|
1301
|
-
}): (Window & typeof globalThis) |
|
1345
|
+
}): (Window & typeof globalThis) | undefined;
|
1302
1346
|
|
1303
1347
|
/**
|
1304
1348
|
* Find the closest parent node that satisfies the predicate.
|
@@ -1377,7 +1421,7 @@ export declare function getBrowserWindow(options?: {
|
|
1377
1421
|
document?: Document;
|
1378
1422
|
}): Window & typeof globalThis;
|
1379
1423
|
|
1380
|
-
export declare function getCustomSelection(state: EditorState, from?: number | null, to?: number | null):
|
1424
|
+
export declare function getCustomSelection(state: EditorState, from?: number | null, to?: number | null): Selection_2;
|
1381
1425
|
|
1382
1426
|
export declare function getEditorContentDoc(schema: Schema, content: NodeJSON | string | HTMLElement | ProseMirrorNode): ProseMirrorNode;
|
1383
1427
|
|
@@ -1614,7 +1658,7 @@ export { isFragment as isFragment_alias_1 }
|
|
1614
1658
|
*
|
1615
1659
|
* @internal
|
1616
1660
|
*/
|
1617
|
-
declare function isInCodeBlock(selection: Selection_2): boolean
|
1661
|
+
declare function isInCodeBlock(selection: Selection_2): boolean;
|
1618
1662
|
export { isInCodeBlock }
|
1619
1663
|
export { isInCodeBlock as isInCodeBlock_alias_1 }
|
1620
1664
|
|
@@ -1767,7 +1811,7 @@ export { Keymap as Keymap_alias_1 }
|
|
1767
1811
|
/**
|
1768
1812
|
* @internal
|
1769
1813
|
*/
|
1770
|
-
declare const keymapFacet: Facet<
|
1814
|
+
declare const keymapFacet: Facet<KeymapPayload, PluginPayload>;
|
1771
1815
|
export { keymapFacet }
|
1772
1816
|
export { keymapFacet as keymapFacet_alias_1 }
|
1773
1817
|
|
@@ -1880,7 +1924,7 @@ export { MarkTyping as MarkTyping_alias_1 }
|
|
1880
1924
|
/**
|
1881
1925
|
* @internal
|
1882
1926
|
*/
|
1883
|
-
declare function maybeRun<
|
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;
|
1884
1928
|
export { maybeRun }
|
1885
1929
|
export { maybeRun as maybeRun_alias_1 }
|
1886
1930
|
|
@@ -2284,9 +2328,9 @@ export declare type RootPayload = {
|
|
2284
2328
|
view?: Omit<DirectEditorProps, 'state'>;
|
2285
2329
|
};
|
2286
2330
|
|
2287
|
-
export declare const schemaFacet: Facet<SchemaSpec
|
2331
|
+
export declare const schemaFacet: Facet<SchemaSpec, RootPayload>;
|
2288
2332
|
|
2289
|
-
export declare const schemaSpecFacet: Facet<SchemaSpec
|
2333
|
+
export declare const schemaSpecFacet: Facet<SchemaSpec, SchemaSpec>;
|
2290
2334
|
|
2291
2335
|
declare type ScrollToSelectionHandler = (view: EditorView) => boolean;
|
2292
2336
|
export { ScrollToSelectionHandler }
|
@@ -2366,7 +2410,9 @@ declare interface SetNodeAttrsOptions {
|
|
2366
2410
|
export { SetNodeAttrsOptions }
|
2367
2411
|
export { SetNodeAttrsOptions as SetNodeAttrsOptions_alias_1 }
|
2368
2412
|
|
2369
|
-
|
2413
|
+
declare function setSelectionAround(tr: Transaction, pos: number): void;
|
2414
|
+
export { setSelectionAround }
|
2415
|
+
export { setSelectionAround as setSelectionAround_alias_1 }
|
2370
2416
|
|
2371
2417
|
/**
|
2372
2418
|
* @internal
|
@@ -2628,6 +2674,31 @@ declare interface ToggleNodeOptions {
|
|
2628
2674
|
export { ToggleNodeOptions }
|
2629
2675
|
export { ToggleNodeOptions as ToggleNodeOptions_alias_1 }
|
2630
2676
|
|
2677
|
+
/**
|
2678
|
+
* Toggle between wrapping an inactive node with the provided node type, and
|
2679
|
+
* lifting it up into it's parent.
|
2680
|
+
*
|
2681
|
+
* @param options
|
2682
|
+
*
|
2683
|
+
* @public
|
2684
|
+
*/
|
2685
|
+
declare function toggleWrap(options: ToggleWrapOptions): Command;
|
2686
|
+
export { toggleWrap }
|
2687
|
+
export { toggleWrap as toggleWrap_alias_1 }
|
2688
|
+
|
2689
|
+
declare interface ToggleWrapOptions {
|
2690
|
+
/**
|
2691
|
+
* The type of the node to toggle.
|
2692
|
+
*/
|
2693
|
+
type: string | NodeType;
|
2694
|
+
/**
|
2695
|
+
* The attributes of the node to toggle.
|
2696
|
+
*/
|
2697
|
+
attrs?: Attrs | null;
|
2698
|
+
}
|
2699
|
+
export { ToggleWrapOptions }
|
2700
|
+
export { ToggleWrapOptions as ToggleWrapOptions_alias_1 }
|
2701
|
+
|
2631
2702
|
/**
|
2632
2703
|
* @internal
|
2633
2704
|
*/
|
@@ -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);
|
package/dist/prosekit-core.d.ts
CHANGED
@@ -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,6 +18,8 @@ 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';
|
@@ -71,6 +73,8 @@ export { ScrollToSelectionHandler } from './_tsup-dts-rollup';
|
|
71
73
|
export { TextInputHandler } from './_tsup-dts-rollup';
|
72
74
|
export { TripleClickHandler } from './_tsup-dts-rollup';
|
73
75
|
export { TripleClickOnHandler } from './_tsup-dts-rollup';
|
76
|
+
export { editorEventFacet } from './_tsup-dts-rollup';
|
77
|
+
export { EditorEventPayload } from './_tsup-dts-rollup';
|
74
78
|
export { defineFocusChangeHandler } from './_tsup-dts-rollup';
|
75
79
|
export { FocusChangeHandler } from './_tsup-dts-rollup';
|
76
80
|
export { defineMountHandler } from './_tsup-dts-rollup';
|
@@ -112,6 +116,7 @@ export { TextExtension } from './_tsup-dts-rollup';
|
|
112
116
|
export { defineFacet } from './_tsup-dts-rollup';
|
113
117
|
export { Facet } from './_tsup-dts-rollup';
|
114
118
|
export { defineFacetPayload } from './_tsup-dts-rollup';
|
119
|
+
export { AnyFunction } from './_tsup-dts-rollup';
|
115
120
|
export { AnyAttrs } from './_tsup-dts-rollup';
|
116
121
|
export { AttrSpec } from './_tsup-dts-rollup';
|
117
122
|
export { BaseNodeViewOptions } from './_tsup-dts-rollup';
|
@@ -176,6 +181,7 @@ export { DOMDocumentOptions } from './_tsup-dts-rollup';
|
|
176
181
|
export { DOMParserOptions } from './_tsup-dts-rollup';
|
177
182
|
export { DOMSerializerOptions } from './_tsup-dts-rollup';
|
178
183
|
export { JSONParserOptions } from './_tsup-dts-rollup';
|
184
|
+
export { setSelectionAround } from './_tsup-dts-rollup';
|
179
185
|
export { isAllSelection } from './_tsup-dts-rollup';
|
180
186
|
export { isFragment } from './_tsup-dts-rollup';
|
181
187
|
export { isMark } from './_tsup-dts-rollup';
|
package/dist/prosekit-core.js
CHANGED
@@ -39,7 +39,7 @@ import {
|
|
39
39
|
stateFromJSON,
|
40
40
|
toReversed,
|
41
41
|
union
|
42
|
-
} from "./chunk-
|
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
|
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 =
|
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 {
|
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,21 +432,6 @@ function unsetMark(options) {
|
|
401
432
|
};
|
402
433
|
}
|
403
434
|
|
404
|
-
// src/commands/wrap.ts
|
405
|
-
import { findWrapping } from "@prosekit/pm/transform";
|
406
|
-
function wrap(options) {
|
407
|
-
return (state, dispatch) => {
|
408
|
-
const { $from, $to } = state.selection;
|
409
|
-
const range = $from.blockRange($to);
|
410
|
-
if (!range) return false;
|
411
|
-
const nodeType = getNodeType(state.schema, options.nodeType || options.type);
|
412
|
-
const wrapping = findWrapping(range, nodeType, options.attrs);
|
413
|
-
if (!wrapping) return false;
|
414
|
-
dispatch == null ? void 0 : dispatch(state.tr.wrap(range, wrapping));
|
415
|
-
return true;
|
416
|
-
};
|
417
|
-
}
|
418
|
-
|
419
435
|
// src/editor/with-priority.ts
|
420
436
|
function withPriority(extension, priority) {
|
421
437
|
const result = union(extension);
|
@@ -462,6 +478,7 @@ function defineBaseCommands() {
|
|
462
478
|
insertNode,
|
463
479
|
removeNode,
|
464
480
|
wrap,
|
481
|
+
toggleWrap,
|
465
482
|
setBlockType,
|
466
483
|
setNodeAttrs,
|
467
484
|
insertDefaultBlock,
|
@@ -828,88 +845,100 @@ function combineEventHandlers() {
|
|
828
845
|
}
|
829
846
|
|
830
847
|
// src/extensions/events/dom-event.ts
|
848
|
+
function defineDomEventFacetPayload(...payloads) {
|
849
|
+
return defineFacetPayload(
|
850
|
+
domEventFacet,
|
851
|
+
payloads
|
852
|
+
);
|
853
|
+
}
|
831
854
|
function defineDOMEventHandler(event, handler) {
|
832
|
-
return
|
833
|
-
|
855
|
+
return defineDomEventFacetPayload([
|
856
|
+
event,
|
857
|
+
handler
|
834
858
|
]);
|
835
859
|
}
|
836
|
-
var domEventFacet = defineFacet(
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
|
850
|
-
|
851
|
-
|
852
|
-
|
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
|
+
}
|
853
879
|
}
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
}
|
865
|
-
}
|
866
|
-
|
867
|
-
|
868
|
-
|
869
|
-
|
870
|
-
}
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
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
|
+
);
|
875
901
|
|
876
902
|
// src/extensions/events/editor-event.ts
|
877
903
|
import { PluginKey as PluginKey3, ProseMirrorPlugin as ProseMirrorPlugin3 } from "@prosekit/pm/state";
|
904
|
+
function defineEventFacetPayload(payload) {
|
905
|
+
return defineFacetPayload(editorEventFacet, [payload]);
|
906
|
+
}
|
878
907
|
function defineKeyDownHandler(handler) {
|
879
|
-
return
|
908
|
+
return defineEventFacetPayload(["keyDown", handler]);
|
880
909
|
}
|
881
910
|
function defineKeyPressHandler(handler) {
|
882
|
-
return
|
911
|
+
return defineEventFacetPayload(["keyPress", handler]);
|
883
912
|
}
|
884
913
|
function defineTextInputHandler(handler) {
|
885
|
-
return
|
914
|
+
return defineEventFacetPayload(["textInput", handler]);
|
886
915
|
}
|
887
916
|
function defineClickOnHandler(handler) {
|
888
|
-
return
|
917
|
+
return defineEventFacetPayload(["clickOn", handler]);
|
889
918
|
}
|
890
919
|
function defineClickHandler(handler) {
|
891
|
-
return
|
920
|
+
return defineEventFacetPayload(["click", handler]);
|
892
921
|
}
|
893
922
|
function defineDoubleClickOnHandler(handler) {
|
894
|
-
return
|
923
|
+
return defineEventFacetPayload(["doubleClickOn", handler]);
|
895
924
|
}
|
896
925
|
function defineDoubleClickHandler(handler) {
|
897
|
-
return
|
926
|
+
return defineEventFacetPayload(["doubleClick", handler]);
|
898
927
|
}
|
899
928
|
function defineTripleClickOnHandler(handler) {
|
900
|
-
return
|
929
|
+
return defineEventFacetPayload(["tripleClickOn", handler]);
|
901
930
|
}
|
902
931
|
function defineTripleClickHandler(handler) {
|
903
|
-
return
|
932
|
+
return defineEventFacetPayload(["tripleClick", handler]);
|
904
933
|
}
|
905
934
|
function definePasteHandler(handler) {
|
906
|
-
return
|
935
|
+
return defineEventFacetPayload(["paste", handler]);
|
907
936
|
}
|
908
937
|
function defineDropHandler(handler) {
|
909
|
-
return
|
938
|
+
return defineEventFacetPayload(["drop", handler]);
|
910
939
|
}
|
911
940
|
function defineScrollToSelectionHandler(handler) {
|
912
|
-
return
|
941
|
+
return defineEventFacetPayload(["scrollToSelection", handler]);
|
913
942
|
}
|
914
943
|
var editorEventFacet = defineFacet({
|
915
944
|
reduce: () => {
|
@@ -975,10 +1004,10 @@ function setupEditorEventPlugin() {
|
|
975
1004
|
function defineFocusChangeHandler(handler) {
|
976
1005
|
const handleFocus = () => handler(true);
|
977
1006
|
const handleBlur = () => handler(false);
|
978
|
-
return
|
1007
|
+
return defineDomEventFacetPayload(
|
979
1008
|
["focus", handleFocus],
|
980
1009
|
["blur", handleBlur]
|
981
|
-
|
1010
|
+
);
|
982
1011
|
}
|
983
1012
|
|
984
1013
|
// src/extensions/history.ts
|
@@ -1088,10 +1117,7 @@ var customBaseKeymap = {
|
|
1088
1117
|
function defineBaseKeymap(options) {
|
1089
1118
|
var _a;
|
1090
1119
|
const priority = (_a = options == null ? void 0 : options.priority) != null ? _a : 1 /* low */;
|
1091
|
-
return withPriority(
|
1092
|
-
defineKeymap(customBaseKeymap),
|
1093
|
-
priority
|
1094
|
-
);
|
1120
|
+
return withPriority(defineKeymap(customBaseKeymap), priority);
|
1095
1121
|
}
|
1096
1122
|
|
1097
1123
|
// src/extensions/mark-spec.ts
|
@@ -1313,7 +1339,7 @@ function isAtBlockStart(state, view) {
|
|
1313
1339
|
|
1314
1340
|
// src/utils/is-in-code-block.ts
|
1315
1341
|
function isCodeBlockType(type) {
|
1316
|
-
return type.spec.code && type.isBlock;
|
1342
|
+
return !!(type.spec.code && type.isBlock);
|
1317
1343
|
}
|
1318
1344
|
function isInCodeBlock(selection) {
|
1319
1345
|
return isCodeBlockType(selection.$from.parent.type) || isCodeBlockType(selection.$to.parent.type);
|
@@ -1389,6 +1415,7 @@ export {
|
|
1389
1415
|
defineTripleClickOnHandler,
|
1390
1416
|
defineUnmountHandler,
|
1391
1417
|
defineUpdateHandler,
|
1418
|
+
editorEventFacet,
|
1392
1419
|
elementFromJSON,
|
1393
1420
|
elementFromNode,
|
1394
1421
|
expandMark,
|
@@ -1426,9 +1453,11 @@ export {
|
|
1426
1453
|
removeNode,
|
1427
1454
|
setBlockType,
|
1428
1455
|
setNodeAttrs,
|
1456
|
+
setSelectionAround,
|
1429
1457
|
stateFromJSON,
|
1430
1458
|
toggleMark,
|
1431
1459
|
toggleNode,
|
1460
|
+
toggleWrap,
|
1432
1461
|
union,
|
1433
1462
|
unsetBlockType,
|
1434
1463
|
unsetMark,
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@prosekit/core",
|
3
3
|
"type": "module",
|
4
|
-
"version": "0.7.
|
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.
|
48
|
+
"type-fest": "^4.26.1",
|
49
49
|
"@prosekit/pm": "^0.1.8"
|
50
50
|
},
|
51
51
|
"devDependencies": {
|
52
|
-
"@vitest/browser": "^2.
|
53
|
-
"tsup": "^8.
|
54
|
-
"typescript": "^5.
|
55
|
-
"vitest": "^2.
|
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": {
|