@prosekit/core 0.8.6 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/{editor-M9OimMiI.d.ts → editor-4lgGc3CY.d.ts} +20 -60
  2. package/dist/editor-4lgGc3CY.d.ts.map +1 -0
  3. package/dist/{editor-D2iEkgO8.js → editor-DGNUXn-u.js} +99 -116
  4. package/dist/editor-DGNUXn-u.js.map +1 -0
  5. package/dist/prosekit-core-test.d.ts +1 -1
  6. package/dist/prosekit-core-test.js +1 -1
  7. package/dist/prosekit-core.d.ts +89 -180
  8. package/dist/prosekit-core.d.ts.map +1 -1
  9. package/dist/prosekit-core.js +322 -381
  10. package/dist/prosekit-core.js.map +1 -1
  11. package/package.json +7 -8
  12. package/src/commands/select-all.ts +3 -8
  13. package/src/commands/select-block.spec.ts +83 -0
  14. package/src/commands/select-block.ts +59 -0
  15. package/src/commands/wrap.ts +1 -6
  16. package/src/editor/action.ts +1 -11
  17. package/src/editor/editor.ts +20 -32
  18. package/src/extensions/command.ts +4 -0
  19. package/src/extensions/default-state.spec.ts +0 -4
  20. package/src/extensions/default-state.ts +4 -24
  21. package/src/extensions/events/dom-event.ts +1 -4
  22. package/src/extensions/events/editor-event.ts +1 -1
  23. package/src/extensions/history.ts +1 -1
  24. package/src/extensions/keymap-base.spec.ts +98 -0
  25. package/src/extensions/keymap-base.ts +37 -13
  26. package/src/extensions/keymap.spec.ts +74 -1
  27. package/src/extensions/keymap.ts +19 -31
  28. package/src/extensions/mark-spec.ts +32 -29
  29. package/src/extensions/node-spec.ts +28 -19
  30. package/src/extensions/plugin.ts +1 -2
  31. package/src/facets/command.ts +8 -2
  32. package/src/facets/state.spec.ts +6 -6
  33. package/src/facets/state.ts +1 -2
  34. package/src/index.ts +3 -23
  35. package/src/types/extension-command.ts +0 -7
  36. package/src/types/extension.ts +0 -16
  37. package/src/utils/array-grouping.spec.ts +1 -11
  38. package/src/utils/array-grouping.ts +1 -14
  39. package/src/utils/array.ts +0 -4
  40. package/src/utils/combine-event-handlers.ts +4 -6
  41. package/src/utils/editor-content.ts +3 -3
  42. package/src/utils/env.ts +2 -0
  43. package/src/utils/output-spec.ts +11 -0
  44. package/src/utils/parse.ts +9 -9
  45. package/dist/editor-D2iEkgO8.js.map +0 -1
  46. package/dist/editor-M9OimMiI.d.ts.map +0 -1
  47. package/src/extensions/doc.ts +0 -31
  48. package/src/extensions/paragraph.ts +0 -61
  49. package/src/extensions/text.ts +0 -34
  50. package/src/types/base-node-view-options.ts +0 -33
  51. package/src/types/object-entries.ts +0 -13
  52. package/src/utils/collect-children.ts +0 -21
  53. package/src/utils/collect-nodes.ts +0 -37
  54. package/src/utils/deep-equals.spec.ts +0 -26
  55. package/src/utils/deep-equals.ts +0 -29
  56. package/src/utils/get-id.spec.ts +0 -14
  57. package/src/utils/get-id.ts +0 -13
@@ -90,14 +90,6 @@ interface MarkAction<Attrs$1 extends AnyAttrs = AnyAttrs> {
90
90
  */
91
91
  isActive: (attrs?: Attrs$1) => boolean;
92
92
  }
93
- /**
94
- * @deprecated Use type {@link NodeAction} instead.
95
- */
96
- type NodeBuilder = NodeAction;
97
- /**
98
- * @deprecated Use type {@link MarkAction} instead.
99
- */
100
- type MarkBuilder = MarkAction;
101
93
  //#endregion
102
94
  //#region src/types/extension-command.d.ts
103
95
  /**
@@ -118,12 +110,6 @@ interface CommandAction<Args extends any[] = any[]> {
118
110
  * can be executed, otherwise `false`.
119
111
  */
120
112
  canExec(...args: Args): boolean;
121
- /**
122
- * An alias for `canExec`.
123
- *
124
- * @deprecated Use `canExec` instead.
125
- */
126
- canApply(...args: Args): boolean;
127
113
  }
128
114
  type CommandCreator<Args extends any[] = any[]> = (...arg: Args) => Command;
129
115
  /**
@@ -277,10 +263,6 @@ type ExtractNodeActions<E extends Extension> = ToNodeAction<ExtractNodes<E>>;
277
263
  * @public
278
264
  */
279
265
  type ExtractMarkActions<E extends Extension> = ToMarkAction<ExtractMarks<E>>;
280
- /**
281
- * @deprecated Use `ExtractCommandActions` instead.
282
- */
283
- type ExtractCommandAppliers<E extends Extension> = ExtractCommandActions<E>;
284
266
  /**
285
267
  * @internal
286
268
  */
@@ -289,15 +271,6 @@ type Union<E extends readonly Extension[]> = Extension<{
289
271
  Marks: ExtractMarks<E[number]>;
290
272
  Commands: ExtractCommands<E[number]>;
291
273
  }>;
292
- /**
293
- * @deprecated Use `Union` instead.
294
- * @internal
295
- */
296
- type UnionExtension<E extends Extension | readonly Extension[]> = E extends readonly Extension[] ? Extension<{
297
- Nodes: ExtractNodes<E[number]>;
298
- Marks: ExtractMarks<E[number]>;
299
- Commands: ExtractCommands<E[number]>;
300
- }> : E;
301
274
  //#endregion
302
275
  //#region src/types/model.d.ts
303
276
  /**
@@ -436,7 +409,7 @@ declare function jsonFromNode(node: ProseMirrorNode): NodeJSON;
436
409
  */
437
410
  declare function nodeFromJSON(json: NodeJSON, options: JSONParserOptions): ProseMirrorNode;
438
411
  /**
439
- * Parse a HTML element to a ProseMirror node.
412
+ * Parse a DOM node to a ProseMirror node.
440
413
  *
441
414
  * @public
442
415
  *
@@ -449,7 +422,7 @@ declare function nodeFromJSON(json: NodeJSON, options: JSONParserOptions): Prose
449
422
  */
450
423
  declare function nodeFromElement(element: DOMNode, options: DOMParserOptions & JSONParserOptions): ProseMirrorNode;
451
424
  /**
452
- * Serialize a ProseMirror node to a HTML element.
425
+ * Serialize a ProseMirror node to an HTML element.
453
426
  *
454
427
  * @public
455
428
  *
@@ -462,7 +435,7 @@ declare function nodeFromElement(element: DOMNode, options: DOMParserOptions & J
462
435
  */
463
436
  declare function elementFromNode(node: ProseMirrorNode, options?: DOMSerializerOptions & DOMDocumentOptions): HTMLElement;
464
437
  /**
465
- * Parse a HTML string to a ProseMirror node.
438
+ * Parse an HTML string to a ProseMirror node.
466
439
  *
467
440
  * @public
468
441
  *
@@ -475,7 +448,7 @@ declare function elementFromNode(node: ProseMirrorNode, options?: DOMSerializerO
475
448
  */
476
449
  declare function nodeFromHTML(html: string, options: DOMParserOptions & JSONParserOptions & DOMDocumentOptions): ProseMirrorNode;
477
450
  /**
478
- * Serialize a ProseMirror node to a HTML string
451
+ * Serialize a ProseMirror node to an HTML string
479
452
  *
480
453
  * @public
481
454
  *
@@ -488,7 +461,7 @@ declare function nodeFromHTML(html: string, options: DOMParserOptions & JSONPars
488
461
  */
489
462
  declare function htmlFromNode(node: ProseMirrorNode, options?: DOMSerializerOptions & DOMDocumentOptions): string;
490
463
  /**
491
- * Parse a ProseMirror document JSON object to a HTML element.
464
+ * Parse a ProseMirror document JSON object to an HTML element.
492
465
  *
493
466
  * @public
494
467
  *
@@ -501,7 +474,7 @@ declare function htmlFromNode(node: ProseMirrorNode, options?: DOMSerializerOpti
501
474
  */
502
475
  declare function elementFromJSON(json: NodeJSON, options: JSONParserOptions & DOMSerializerOptions & DOMDocumentOptions): HTMLElement;
503
476
  /**
504
- * Parse a HTML string to a ProseMirror document JSON object.
477
+ * Parse an HTML string to a ProseMirror document JSON object.
505
478
  *
506
479
  * @public
507
480
  *
@@ -514,7 +487,7 @@ declare function elementFromJSON(json: NodeJSON, options: JSONParserOptions & DO
514
487
  */
515
488
  declare function jsonFromHTML(html: string, options: DOMDocumentOptions & DOMParserOptions & JSONParserOptions): NodeJSON;
516
489
  /**
517
- * Parse a ProseMirror document JSON object to a HTML string.
490
+ * Parse a ProseMirror document JSON object to an HTML string.
518
491
  *
519
492
  * @public
520
493
  *
@@ -538,23 +511,9 @@ interface EditorOptions<E extends Extension> {
538
511
  extension: E;
539
512
  /**
540
513
  * The starting document to use when creating the editor. It can be a
541
- * ProseMirror node JSON object, a HTML string, or a HTML element instance.
542
- */
543
- defaultContent?: NodeJSON | string | HTMLElement;
544
- /**
545
- * A JSON object representing the starting document to use when creating the
546
- * editor.
547
- *
548
- * @deprecated Use `defaultContent` instead.
549
- */
550
- defaultDoc?: NodeJSON;
551
- /**
552
- * A HTML element or a HTML string representing the starting document to use
553
- * when creating the editor.
554
- *
555
- * @deprecated Use `defaultContent` instead.
514
+ * ProseMirror node JSON object, an HTML string, or a DOM element instance.
556
515
  */
557
- defaultHTML?: string | HTMLElement;
516
+ defaultContent?: NodeJSON | string | Element;
558
517
  /**
559
518
  * A JSON object representing the starting selection to use when creating the
560
519
  * editor. It's only used when `defaultContent` is also provided.
@@ -589,13 +548,13 @@ declare class EditorInstance {
589
548
  private getProp;
590
549
  updateState(state: EditorState): void;
591
550
  private dispatch;
592
- setContent(content: NodeJSON | string | HTMLElement | ProseMirrorNode, selection?: SelectionJSON | Selection | 'start' | 'end'): void;
551
+ setContent(content: NodeJSON | string | Element | ProseMirrorNode, selection?: SelectionJSON | Selection | 'start' | 'end'): void;
593
552
  /**
594
553
  * Return a JSON object representing the editor's current document.
595
554
  */
596
555
  getDocJSON: () => NodeJSON;
597
556
  /**
598
- * Return a HTML string representing the editor's current document.
557
+ * Return an HTML string representing the editor's current document.
599
558
  */
600
559
  getDocHTML: (options?: getDocHTMLOptions) => string;
601
560
  private updateExtension;
@@ -641,10 +600,11 @@ declare class Editor<E extends Extension = any> {
641
600
  */
642
601
  get focused(): boolean;
643
602
  /**
644
- * Mount the editor to the given HTML element.
645
- * Pass `null` or `undefined` to unmount the editor.
603
+ * Mount the editor to the given HTML element. Pass `null` or `undefined` to
604
+ * unmount the editor. When an element is passed, this method returns a
605
+ * function to unmount the editor.
646
606
  */
647
- mount: (place: HTMLElement | null | undefined) => void;
607
+ mount: (place: HTMLElement | null | undefined) => void | VoidFunction;
648
608
  /**
649
609
  * Unmount the editor. This is equivalent to `mount(null)`.
650
610
  */
@@ -678,20 +638,20 @@ declare class Editor<E extends Extension = any> {
678
638
  * - A ProseMirror node instance
679
639
  * - A ProseMirror node JSON object
680
640
  * - An HTML string
681
- * - An HTML element instance
641
+ * - A DOM element instance
682
642
  * @param selection - Optional. Specifies the new selection. It can be one of the following:
683
643
  * - A ProseMirror selection instance
684
644
  * - A ProseMirror selection JSON object
685
645
  * - The string "start" (to set selection at the beginning, default value)
686
646
  * - The string "end" (to set selection at the end)
687
647
  */
688
- setContent: (content: ProseMirrorNode | NodeJSON | string | HTMLElement, selection?: SelectionJSON | Selection | "start" | "end") => void;
648
+ setContent: (content: ProseMirrorNode | NodeJSON | string | Element, selection?: SelectionJSON | Selection | "start" | "end") => void;
689
649
  /**
690
650
  * Return a JSON object representing the editor's current document.
691
651
  */
692
652
  getDocJSON: () => NodeJSON;
693
653
  /**
694
- * Return a HTML string representing the editor's current document.
654
+ * Return an HTML string representing the editor's current document.
695
655
  */
696
656
  getDocHTML: (options?: getDocHTMLOptions) => string;
697
657
  /**
@@ -718,5 +678,5 @@ declare class Editor<E extends Extension = any> {
718
678
  get marks(): ExtractMarkActions<E>;
719
679
  }
720
680
  //#endregion
721
- export { NodeChild as $, ExtractMarkActions as A, Priority as B, StepJSON as C, ExtractCommandAppliers as D, ExtractCommandActions as E, PlainExtension as F, ToMarkAction as G, NodeTyping as H, Union as I, CommandTyping as J, CommandAction as K, UnionExtension as L, ExtractNodeActions as M, ExtractNodes as N, ExtractCommandCreators as O, ExtractTyping as P, NodeBuilder as Q, SimplifyUnion as R, StateJSON as S, ExtensionTyping as T, ToNodeAction as U, PickSubType as V, MarkTyping as W, MarkBuilder as X, MarkAction as Y, NodeAction as Z, nodeFromHTML as _, DOMDocumentOptions as a, NodeJSON as b, JSONParserOptions as c, htmlFromJSON as d, AnyAttrs as et, htmlFromNode as f, nodeFromElement as g, jsonFromState as h, createEditor as i, ExtractMarks as j, ExtractCommands as k, elementFromJSON as l, jsonFromNode as m, EditorInstance as n, DOMParserOptions as o, jsonFromHTML as p, CommandCreator as q, EditorOptions as r, DOMSerializerOptions as s, Editor as t, AttrSpec as tt, elementFromNode as u, nodeFromJSON as v, Extension as w, SelectionJSON as x, stateFromJSON as y, SimplifyDeeper as z };
722
- //# sourceMappingURL=editor-M9OimMiI.d.ts.map
681
+ export { ExtractMarks as A, NodeTyping as B, StepJSON as C, ExtractCommandCreators as D, ExtractCommandActions as E, Union as F, CommandCreator as G, MarkTyping as H, SimplifyUnion as I, NodeAction as J, CommandTyping as K, SimplifyDeeper as L, ExtractNodes as M, ExtractTyping as N, ExtractCommands as O, PlainExtension as P, Priority as R, StateJSON as S, ExtensionTyping as T, ToMarkAction as U, ToNodeAction as V, CommandAction as W, AnyAttrs as X, NodeChild as Y, AttrSpec as Z, nodeFromHTML as _, DOMDocumentOptions as a, NodeJSON as b, JSONParserOptions as c, htmlFromJSON as d, htmlFromNode as f, nodeFromElement as g, jsonFromState as h, createEditor as i, ExtractNodeActions as j, ExtractMarkActions as k, elementFromJSON as l, jsonFromNode as m, EditorInstance as n, DOMParserOptions as o, jsonFromHTML as p, MarkAction as q, EditorOptions as r, DOMSerializerOptions as s, Editor as t, elementFromNode as u, nodeFromJSON as v, Extension as w, SelectionJSON as x, stateFromJSON as y, PickSubType as z };
682
+ //# sourceMappingURL=editor-4lgGc3CY.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-4lgGc3CY.d.ts","names":[],"sources":["../src/types/attrs.ts","../src/editor/action.ts","../src/types/extension-command.ts","../src/types/extension-mark.ts","../src/types/extension-node.ts","../src/types/pick-sub-type.ts","../src/types/pick-string-literal.ts","../src/types/priority.ts","../src/types/simplify-deeper.ts","../src/types/simplify-union.ts","../src/types/extension.ts","../src/types/model.ts","../src/types/dom-node.ts","../src/utils/parse.ts","../src/editor/editor.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;AAOY,KAAA,QAAA,GAAW,KAAA;AAKvB;;;KAAY;ECWA;AAWZ;;;;EAIqC,OAAA,CAAA,EDpBzB,QCoByB;EAAc;;;;;AAwBnD;;;;;EAImD,QAAA,CAAA,EAAA,MAAA,GAAA,CAAA,CAAA,KAAA,EAAA,OAAA,EAAA,GAAA,IAAA,CAAA;CAKnC;;;;;;ADhEhB;AAKA;KCWY,SAAA,GAAY,2BAA2B;;;AAAnD;AAWA;;;;;;AASgB,UATC,UASD,CAAA,gBAT0B,QAS1B,GATqC,QASrC,CAAA,CAAA;EAAc;;;EAmBb,CAAA,KAAA,EAxBP,OAwBiB,GAAA,IAAA,EAAA,GAAA,QAAA,EAxBU,SAwBV,EAAA,CAAA,EAxBwB,eAwBxB;EAAe;;;EAIL,CAAA,GAAA,QAAA,EAvBrB,SAuBqB,EAAA,CAAA,EAvBP,eAuBO;EAAc;;;;;qBAhB9B;;;ACzCrB;AAcA;AAOA;AAQA;;;;;AACkB,UDuBD,UCvBC,CAAA,gBDuBwB,QCvBxB,GDuBmC,QCvBnC,CAAA,CAAA;EAAc;AAGhC;;EACc,CAAA,KAAA,EDuBJ,OCvBI,GAAA,IAAA,EAAA,GAAA,QAAA,EDuBuB,SCvBvB,EAAA,CAAA,EDuBqC,eCvBrC,EAAA;EAAkB;;;EAAD,CAAA,GAAA,QAAA,ED4Bf,SC5Be,EAAA,CAAA,ED4BD,eC5BC,EAAA;;;;ACtC/B;AAOA;EAAmC,QAAA,EAAA,CAAA,KAAA,CAAA,EFkEd,OElEc,EAAA,GAAA,OAAA;;;;;;;;;AHLnC;AAKA;UEHiB;;;ADcjB;AAWA;EAA0C,CAAA,GAAA,IAAA,ECpB9B,IDoB8B,CAAA,EAAA,OAAA;EAAW;;;;EASrC,OAAA,CAAA,GAAA,IAAA,ECvBG,IDuBH,CAAA,EAAA,OAAA;;AAOK,KC3BT,cD2BS,CAAA,aAAA,GAAA,EAAA,GAAA,GAAA,EAAA,CAAA,GAAA,CAAA,GAAA,GAAA,EC1BX,ID0BW,EAAA,GCzBhB,ODyBgB;;AAYrB;;AAAqD,UChCpC,aAAA,CDgCoC;EAI3C,CAAA,IAAA,EAAA,MAAA,CAAA,EAAA,GAAA,EAAA;;AAYW,KCxCT,iBDwCS,CAAA,UCxCmB,aDwCnB,CAAA,GAAA,QAAK,MCvCZ,CDuCY,GCvCR,cDuCQ,CCvCO,CDuCP,CCvCS,CDuCT,CAAA,CAAA;KCpCd,0BAA0B,+BACxB,IAAI,cAAc,EAAE,KAlClC;;;;;;UCJiB,UAAA;kBACC;AHClB;AAKA;;;KGAY,uBAAuB,sBFWvB,MEVE,CFUO,GEVH,UFUM,CEVK,CFUL,CEVO,CFUP,CAAA,CAAA,EAWxB;;;;;;UG7BiB,UAAA;kBACC;AJClB;AAKA;;;KIAY,uBAAuB,sBHWvB,MGVE,CHUO,GGVH,UHUM,CGVK,CHUL,CGVO,CHUP,CAAA,CAAA,EAWxB;;;;;;KI/BY,gCAAgC,aAAa,cAAc,qBAAqB,gBACxF;;;;;;KCCQ,uBAAuB,YAAY;;;;;;;;aCAnC,QAAA;EPEA,MAAA,GAAA,CAAA;EAKA,GAAA,GAAA,CAAA;;;;ACWZ;;;;;;KOlBY,wCAAwC,IAAI,SAAS,EAAE,WREnE;;;;;;KSCY,mBAAmB,SAC7B,oBAAoB,8BAA8B;;;;;ARcpD;AAWiB,USVA,eTUU,CAAA,YSTf,UTSe,GAAA,KAAA,EAAA,YSRf,UTQe,GAAA,KAAA,EAAA,YSPf,aTOe,GAAA,KAAA,CAAA,CAAA;EAAe,KAAA,CAAA,ESLhC,GTKgC;EAAW,KAAA,CAAA,ESJ3C,GTI2C;EAI3C,QAAA,CAAA,ESPG,GTOH;;;;;AAYW,USbJ,STaI,CAAA,USZT,eTYS,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA,GSZwB,eTYxB,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA,CAAA,CAAA;EAAK,SAAA,ESVb,STUa,GSVD,STUC,EAAA;EAYT,QAAA,CAAA,ESrBJ,QTqBc;EAAe;;;;;EAS1B,MAAA,ESvBN,MTuBM,GAAA,IAAA;EAAc;EAOT,KAAA,CAAA,ES3BX,CT2BW;;;;;ACrEJ,KQgDL,aRhDkB,CAAA,UQgDM,SRrCjB,CAAA,GQqC8B,CRrC1B,SQqCoC,SRrCpC,CQqC8C,eRrC9C,CAAA,KAAA,EAAA,EAAA,KAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,GQqC4F,eRrC5F,CQsCnB,WRtCmB,CQsCP,CRtCO,EQsCJ,URtCI,CAAA,EQuCnB,WRvCmB,CQuCP,CRvCO,EQuCJ,URvCI,CAAA,EQwCnB,WRxCmB,CQwCP,CRxCO,EQwCJ,aRxCI,CAAA,CAAA,GAAA,KAAA;AAGvB;AAOA;AAQA;;;AACiC,KQ8BrB,cAAA,GAAiB,SR9BI,CAAA;EAAE,KAAA,EAAA,KAAA;EAAjB,KAAA,EAAA,KAAA;EAAc,QAAA,EAAA,KAAA;AAGhC,CAAA,CAAA;;;;AACkC,KQmCtB,YRnCsB,CAAA,UQmCC,SRnCD,CAAA,GQmCc,cRnCd,CQoChC,aRpCgC,CQoClB,aRpCkB,CQoCJ,CRpCI,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA;;;;KQ0CtB,2BAA2B,aAAa,wBAC5C,aAAa;;APjFrB;AAOA;AAAmC,KOgFvB,YPhFuB,CAAA,UOgFA,SPhFA,CAAA,GOgFa,cPhFb,COiFjC,aPjFiC,COiFnB,aPjFmB,COiFL,CPjFK,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA;;;;AACjB,KOsFN,gBPtFM,CAAA,UOsFqB,SPtFrB,CAAA,GOsFkC,iBPtFlC,CAAA,MOuFV,YPvFU,COuFG,CPvFH,CAAA,CAAA;;;;KO6FN,0BAA0B,aAAa,cACjD,cAAc;ANtGhB;AAOA;;AACc,KMoGF,sBNpGE,CAAA,UMoG+B,SNpG/B,CAAA,GMoG4C,iBNpG5C,CMqGZ,eNrGY,CMqGI,CNrGJ,CAAA,CAAA;;;;;;KM6GF,gCAAgC,aAAa,gBACvD,gBAAgB;;ALxHlB;;;;AAA4F,KKgIhF,kBLhIgF,CAAA,UKgInD,SLhImD,CAAA,GKgItC,YLhIsC,CKiI1F,YLjI0F,CKiI7E,CLjI6E,CAAA,CAAA;;;;;;ACEhF,KIuIA,kBJvIiB,CAAA,UIuIY,SJvIN,CAAA,GIuImB,YJvIR,CIwI5C,YJxI4C,CIwI/B,CJxI+B,CAAA,CAAA;;;;ACAlC,KG8IA,KH9IQ,CAAA,UAAA,SG8IiB,SH9IjB,EAAA,CAAA,GG8IgC,SH9IhC,CAAA;SG+IX,aAAa;SACb,aAAa;YACV,gBAAgB;AFjJ5B,CAAA,CAAA;;;;;;;;UGAiB,QAAA;EXEL,IAAA,EAAA,MAAQ;EAKR,KAAA,CAAA,EWLF,KXKU,CAAA;;YWLoB;;EVgB5B,IAAA,CAAA,EAAA,MAAS;EAWJ,OAAA,CAAA,EUzBL,QVyBe,EAAA;EAAe,KAAA,CAAA,EUxBhC,MVwBgC,CAAA,MAAA,EAAA,GAAA,CAAA;;;;;;;AAgBrB,UUhCJ,aAAA,CVgCI;EAAK,MAAA,EAAA,MAAA;EAYT,IAAA,EAAA,MAAA;EAAyB,IAAA,EAAA,MAAA;;;;;;;AAgBrB,UUjDJ,SAAA,CViDI;EAAK;;;OU7CnB;ETxBU;AAcjB;AAOA;EAQY,SAAA,ESAC,aTAgB;;;;;;;AAIjB,USIK,QAAA,CTJU;EAAW;;;EACJ,QAAA,EAAA,MAAA;EAAhB,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,OAAA;;;;KU3CN,OAAA,GAAU,oBAAoB,MAAA,CAAO;;;;UCqBhC,gBAAA,SAAyB;Ebd9B,SAAA,CAAA,EAAQ,OaeC,SbfE;AAKvB;;UaciB,oBAAA;;IZHL,UAAS,EAAA,OYIkB,aAAA,CAAc,UZJF;EAWlC,CAAA;;;AAIP,UYPO,kBAAA,CZOP;EAA2B;;;;;EAYX,QAAA,CAAA,EYbb,QZaa;AAY1B;;AAAqD,UYrBpC,iBAAA,CZqBoC;EAI3C;;;EAKM,MAAA,EY1BN,MZ0BM;;;;;;;AC9DhB;AAcA;AAOA;AAQA;;;;AACmC,iBWuBnB,aAAA,CXvBmB,KAAA,EWuBE,WXvBF,CAAA,EWuBgB,SXvBhB;;;AAGnC;;;;;;;;;;ACrCiB,iBUyED,aAAA,CVxEQ,IAAA,EUyEhB,SVzEgB,EAAA,OAAA,EU0Eb,iBV1Ea,CAAA,EU2ErB,WV3EqB;AAMxB;;;;;;;;;;ACPA;AAOA;AAAmC,iBSuFnB,YAAA,CTvFmB,IAAA,ESuFA,eTvFA,CAAA,ESuFkB,QTvFlB;;;;;;;;;ACTnC;;;;AAA4F,iBQgH5E,YAAA,CRhH4E,IAAA,EQiHpF,QRjHoF,EAAA,OAAA,EQkHjF,iBRlHiF,CAAA,EQmHzF,eRnHyF;;;;;;ACE5F;;;;ACAA;;;iBMmIgB,eAAA,UACL,kBACA,mBAAmB,oBAC3B;ALtIH;;;;;;;;;ACGA;;;AACE,iBIqJc,eAAA,CJrJd,IAAA,EIsJM,eJtJN,EAAA,OAAA,CAAA,EIuJU,oBJvJV,GIuJiC,kBJvJjC,CAAA,EIwJC,WJxJD;;;;;;;;AC4BF;;;;;AAIa,iBG+KG,YAAA,CH/KH,IAAA,EAAA,MAAA,EAAA,OAAA,EGiLF,gBHjLE,GGiLiB,iBHjLjB,GGiLqC,kBHjLrC,CAAA,EGkLV,eHlLU;;;;AAgBb;;;;;;;;;AAEmB,iBGgLH,YAAA,CHhLG,IAAA,EGiLX,eHjLW,EAAA,OAAA,CAAA,EGkLP,oBHlLO,GGkLgB,kBHlLhB,CAAA,EAAA,MAAA;;AA0BnB;;;;;;AAOA;;;;;AAAgD,iBGuLhC,eAAA,CHvLgC,IAAA,EGwLxC,QHxLwC,EAAA,OAAA,EGyLrC,iBHzLqC,GGyLjB,oBHzLiB,GGyLM,kBHzLN,CAAA,EG0L7C,WH1L6C;;AAOhD;;;;;;AAOA;;;;;AAAgE,iBG8LhD,YAAA,CH9LgD,IAAA,EAAA,MAAA,EAAA,OAAA,EGgMrD,kBHhMqD,GGgMhC,gBHhMgC,GGgMb,iBHhMa,CAAA,EGiM7D,QHjM6D;AAOhE;;;;;;AASA;;;;;;AASY,iBGwLI,YAAA,CHxLc,IAAA,EGyLtB,QHzLsB,EAAA,OAAA,EG0LnB,iBH1LmB,GG0LC,oBH1LD,GG0LwB,kBH1LxB,CAAA,EAAA,MAAA;;;;;;AT5GlB,UayCK,abzCO,CAAA,UayCiB,SbzCU,CAAA,CAAA;EAWlC;;;EAIP,SAAA,Ea8BG,Cb9BH;EAA2B;;;;EAYhB,cAAA,CAAA,EawBF,QbxBE,GAAA,MAAA,GawBkB,ObxBlB;EAAK;AAY1B;;;EAIU,gBAAA,CAAA,EacW,abdX;;;;;AAYW,UaQJ,iBAAA,SAA0B,kBbRtB,CAAA;ACvDrB;AAOA;AAQA;AAAwC,iBYoExB,YZpEwB,CAAA,UYoED,SZpEC,CAAA,CAAA,OAAA,EYqE7B,aZrE6B,CYqEf,CZrEe,CAAA,CAAA,EYsErC,MZtEqC,CYsE9B,CZtE8B,CAAA;;;;;;AAI5B,cY6EC,cAAA,CZ7Ec;EAAW,IAAA,EY8E9B,UZ9E8B,GAAA,IAAA;EACxB,MAAA,EY8EJ,MZ9EI;EAAkB,KAAA,EY+EvB,MZ/EuB,CAAA,MAAA,EY+ER,UZ/EQ,CAAA;EAAE,KAAA,EYgFzB,MZhFyB,CAAA,MAAA,EYgFV,UZhFU,CAAA;EAAhB,QAAA,EYiFN,MZjFM,CAAA,MAAA,EYiFS,aZjFT,CAAA;EAAa,QAAA,IAAA;;;yBYuFN;EX7HR,QAAA,EAAA,GAAU,GWqJH,WXpJN;EAMN,QAAA,MAAA;EAAuB,QAAA,OAAA;EACrB,WAAA,CAAA,KAAA,EWyJc,WXzJd,CAAA,EAAA,IAAA;EAAe,QAAA,QAAA;EAAE,UAAA,CAAA,OAAA,EW0KlB,QX1KkB,GAAA,MAAA,GW0KE,OX1KF,GW0KY,eX1KZ,EAAA,SAAA,CAAA,EW2Kf,aX3Ke,GW2KC,SX3KD,GAAA,OAAA,GAAA,KAAA,CAAA,EAAA,IAAA;EAAb;;;oBWiMQ;;AVzM1B;AAOA;EAAmC,UAAA,EAAA,CAAA,OAAA,CAAA,EU0MF,iBV1ME,EAAA,GAAA,MAAA;EACrB,QAAA,eAAA;EAAe,GAAA,CAAA,SAAA,EU8PL,SV9PK,CAAA,EU8PO,YV9PP;EAAE,KAAA,CAAA,KAAA,EUqRT,WVrRS,CAAA,EAAA,IAAA;EAAb,OAAA,CAAA,CAAA,EAAA,IAAA;EAAU,IAAA,OAAA,CAAA,CAAA,EAAA,OAAA;oBU6SD;kCAOc;kCAQA;ETtU7B,IAAA,CAAA,OAAA,ESgVI,OThVO,CAAA,EAAA,OAAA;EAAqB,OAAA,CAAA,OAAA,ESqVzB,OTrVyB,CAAA,EAAA,OAAA;EAAa,aAAA,CAAA,aAAA,GAAA,EAAA,GAAA,GAAA,EAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,cAAA,ES4VrC,cT5VqC,CS4VtB,IT5VsB,CAAA,CAAA,EAAA,IAAA;EAAc,aAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;;;;cSqX1D,iBAAiB;;ERnXlB;;;wBQyXY;EPzXZ;;;;ECAA;;;EAAuD,IAAA,IAAA,CAAA,CAAA,EM0YrD,UN1YqD;EAAX;;;gBMiZxC,OAAO,iBAAiB,IAAI,iBAAiB;;AL9Y7D;;EACoD,IAAA,KAAA,CAAA,CAAA,EKoZrC,WLpZqC;EAAlD;;;;;;ACeF;;;EAGY,KAAA,EAAA,CAAA,KAAA,EIkZM,WJlZN,GAAA,IAAA,GAAA,SAAA,EAAA,GAAA,IAAA,GIkZ8C,YJlZ9C;EAEF;;;EAEI,OAAA,EAAA,GAAA,GAAA,IAAA;EAMG;;;EAGJ,KAAA,EAAA,GAAA,GAAA,IAAA;EAAY;;;EAWf,IAAA,EAAA,GAAA,GAAA,IAAA;EAAC;AAMX;;;EAAqE,GAAA,EAAA,CAAA,SAAA,EIsZjD,SJtZiD,EAAA,GIsZrC,YJtZqC;EAAV;;;;;;;;EAGxC,WAAA,EAAA,CAAA,KAAA,EI+ZK,WJ/ZL,EAAA,GAAA,IAAA;EAAf;;;AASJ;AASA;;;;;;;AAOA;;;EACQ,UAAA,EAAA,CAAA,OAAA,EIwZK,eJxZL,GIwZuB,QJxZvB,GAAA,MAAA,GIwZ2C,OJxZ3C,EAAA,SAAA,CAAA,EIyZQ,aJzZR,GIyZwB,SJzZxB,GAAA,OAAA,GAAA,KAAA,EAAA,GAAA,IAAA;EAD4C;;AAOpD;EAAmC,UAAA,EAAA,GAAA,GI2ZT,QJ3ZS;EACL;;;EADkB,UAAA,EAAA,CAAA,OAAA,CAAA,EIkaf,iBJlae,EAAA,GAAA,MAAA;EAAc;AAO9D;;;EACQ,IAAA,EAAA,CAAA,OAAA,EIkaW,OJlaX,EAAA,GAAA,OAAA;EAD4C;;AAOpD;;EACgB,OAAA,EAAA,CAAA,OAAA,EImaM,OJnaN,EAAA,GAAA,OAAA;EAAd;;;EAMU,IAAA,QAAA,CAAA,CAAA,EIoaM,qBJpagB,CIoaM,CJpaN,CAAA;EAAW;;;EAAa,IAAA,KAAA,CAAA,CAAA,EI2a3C,kBJ3a2C,CI2axB,CJ3awB,CAAA;EAAiB;AAS3E;;EACkB,IAAA,KAAA,CAAA,CAAA,EIwaH,kBJxaG,CIwagB,CJxahB,CAAA"}
@@ -1,9 +1,7 @@
1
1
  import { AllSelection, EditorState, NodeSelection, Selection, TextSelection } from "@prosekit/pm/state";
2
2
  import { DOMParser, DOMSerializer, Fragment, Mark, ProseMirrorNode, Schema, Slice } from "@prosekit/pm/model";
3
+ import { isDeepEqual, isElementLike, mapValues } from "@ocavue/utils";
3
4
  import { EditorView } from "@prosekit/pm/view";
4
- import { isElementLike } from "@ocavue/utils";
5
- import OrderedMap from "orderedmap";
6
- import mapValues from "just-map-values";
7
5
 
8
6
  //#region src/error.ts
9
7
  /**
@@ -66,6 +64,77 @@ function getNodeType(schema, type) {
66
64
  return type;
67
65
  }
68
66
 
67
+ //#endregion
68
+ //#region src/utils/type-assertion.ts
69
+ /**
70
+ * Checks if the given object is a {@link ProseMirrorNode} instance.
71
+ */
72
+ function isProseMirrorNode(value) {
73
+ return value instanceof ProseMirrorNode;
74
+ }
75
+ /**
76
+ * Checks if the given object is a {@link Mark} instance.
77
+ *
78
+ * @public
79
+ */
80
+ function isMark(value) {
81
+ return value instanceof Mark;
82
+ }
83
+ /**
84
+ * Checks if the given object is a {@link Fragment} instance.
85
+ *
86
+ * @public
87
+ */
88
+ function isFragment(value) {
89
+ return value instanceof Fragment;
90
+ }
91
+ /**
92
+ * Checks if the given object is a {@link Slice} instance.
93
+ *
94
+ * @public
95
+ */
96
+ function isSlice(value) {
97
+ return value instanceof Slice;
98
+ }
99
+ /**
100
+ * Checks if the given object is a {@link Selection} instance.
101
+ *
102
+ * @public
103
+ */
104
+ function isSelection(value) {
105
+ return value instanceof Selection;
106
+ }
107
+ /**
108
+ * Checks if the given object is a {@link TextSelection} instance.
109
+ *
110
+ * @public
111
+ */
112
+ function isTextSelection(value) {
113
+ return value instanceof TextSelection;
114
+ }
115
+ /**
116
+ * Checks if the given object is a {@link NodeSelection} instance.
117
+ *
118
+ * @public
119
+ */
120
+ function isNodeSelection(value) {
121
+ return value instanceof NodeSelection;
122
+ }
123
+ /**
124
+ * Checks if the given object is a {@link AllSelection} instance.
125
+ *
126
+ * @public
127
+ */
128
+ function isAllSelection(value) {
129
+ return value instanceof AllSelection;
130
+ }
131
+ /**
132
+ * @internal
133
+ */
134
+ function isNotNullish(value) {
135
+ return value != null;
136
+ }
137
+
69
138
  //#endregion
70
139
  //#region src/utils/attrs-match.ts
71
140
  function attrsMatch(nodeOrMark, attrs) {
@@ -215,80 +284,6 @@ function uniqPush(prev, next) {
215
284
  function arraySubtract(a, b) {
216
285
  return a.filter((x) => !b.includes(x));
217
286
  }
218
- function toReversed(arr) {
219
- return arr.toReversed?.() ?? [...arr].reverse();
220
- }
221
-
222
- //#endregion
223
- //#region src/utils/type-assertion.ts
224
- /**
225
- * Checks if the given object is a {@link ProseMirrorNode} instance.
226
- */
227
- function isProseMirrorNode(value) {
228
- return value instanceof ProseMirrorNode;
229
- }
230
- /**
231
- * Checks if the given object is a {@link Mark} instance.
232
- *
233
- * @public
234
- */
235
- function isMark(value) {
236
- return value instanceof Mark;
237
- }
238
- /**
239
- * Checks if the given object is a {@link Fragment} instance.
240
- *
241
- * @public
242
- */
243
- function isFragment(value) {
244
- return value instanceof Fragment;
245
- }
246
- /**
247
- * Checks if the given object is a {@link Slice} instance.
248
- *
249
- * @public
250
- */
251
- function isSlice(value) {
252
- return value instanceof Slice;
253
- }
254
- /**
255
- * Checks if the given object is a {@link Selection} instance.
256
- *
257
- * @public
258
- */
259
- function isSelection(value) {
260
- return value instanceof Selection;
261
- }
262
- /**
263
- * Checks if the given object is a {@link TextSelection} instance.
264
- *
265
- * @public
266
- */
267
- function isTextSelection(value) {
268
- return value instanceof TextSelection;
269
- }
270
- /**
271
- * Checks if the given object is a {@link NodeSelection} instance.
272
- *
273
- * @public
274
- */
275
- function isNodeSelection(value) {
276
- return value instanceof NodeSelection;
277
- }
278
- /**
279
- * Checks if the given object is a {@link AllSelection} instance.
280
- *
281
- * @public
282
- */
283
- function isAllSelection(value) {
284
- return value instanceof AllSelection;
285
- }
286
- /**
287
- * @internal
288
- */
289
- function isNotNullish(value) {
290
- return value != null;
291
- }
292
287
 
293
288
  //#endregion
294
289
  //#region src/facets/facet-node.ts
@@ -475,7 +470,7 @@ const stateFacet = defineFacet({
475
470
  let schema = ctx.schema;
476
471
  const markSet = /* @__PURE__ */ new Set();
477
472
  const pluginSet = /* @__PURE__ */ new Set();
478
- const reversedCallbacks = toReversed(callbacks);
473
+ const reversedCallbacks = [...callbacks].reverse();
479
474
  for (const callback of reversedCallbacks) {
480
475
  const config = callback(ctx);
481
476
  doc ||= config.doc;
@@ -593,7 +588,7 @@ function nodeFromJSON(json, options) {
593
588
  return options.schema.nodeFromJSON(json);
594
589
  }
595
590
  /**
596
- * Parse a HTML element to a ProseMirror node.
591
+ * Parse a DOM node to a ProseMirror node.
597
592
  *
598
593
  * @public
599
594
  *
@@ -605,11 +600,11 @@ function nodeFromJSON(json, options) {
605
600
  * ```
606
601
  */
607
602
  function nodeFromElement(element, options) {
608
- const { DOMParser: CustomDOMParser, schema,...parseOptions } = options;
603
+ const { DOMParser: CustomDOMParser, schema, ...parseOptions } = options;
609
604
  return (CustomDOMParser || DOMParser).fromSchema(schema).parse(element, parseOptions);
610
605
  }
611
606
  /**
612
- * Serialize a ProseMirror node to a HTML element.
607
+ * Serialize a ProseMirror node to an HTML element.
613
608
  *
614
609
  * @public
615
610
  *
@@ -629,7 +624,7 @@ function elementFromNode(node, options) {
629
624
  else return serializer.serializeFragment(node.content, { document: document$1 }, document$1.createElement("div"));
630
625
  }
631
626
  /**
632
- * Parse a HTML string to a HTML element.
627
+ * Parse an HTML string to an HTML element.
633
628
  *
634
629
  * @internal
635
630
  */
@@ -643,7 +638,7 @@ function htmlFromElement(element) {
643
638
  return element.outerHTML;
644
639
  }
645
640
  /**
646
- * Parse a HTML string to a ProseMirror node.
641
+ * Parse an HTML string to a ProseMirror node.
647
642
  *
648
643
  * @public
649
644
  *
@@ -658,7 +653,7 @@ function nodeFromHTML(html, options) {
658
653
  return nodeFromElement(elementFromHTML(html, options), options);
659
654
  }
660
655
  /**
661
- * Serialize a ProseMirror node to a HTML string
656
+ * Serialize a ProseMirror node to an HTML string
662
657
  *
663
658
  * @public
664
659
  *
@@ -673,7 +668,7 @@ function htmlFromNode(node, options) {
673
668
  return elementFromNode(node, options).outerHTML;
674
669
  }
675
670
  /**
676
- * Serialize a HTML element to a ProseMirror document JSON object.
671
+ * Serialize an HTML element to a ProseMirror document JSON object.
677
672
  *
678
673
  * @public
679
674
  *
@@ -688,7 +683,7 @@ function jsonFromElement(element, options) {
688
683
  return jsonFromNode(nodeFromElement(element, options));
689
684
  }
690
685
  /**
691
- * Parse a ProseMirror document JSON object to a HTML element.
686
+ * Parse a ProseMirror document JSON object to an HTML element.
692
687
  *
693
688
  * @public
694
689
  *
@@ -703,7 +698,7 @@ function elementFromJSON(json, options) {
703
698
  return elementFromNode(nodeFromJSON(json, options), options);
704
699
  }
705
700
  /**
706
- * Parse a HTML string to a ProseMirror document JSON object.
701
+ * Parse an HTML string to a ProseMirror document JSON object.
707
702
  *
708
703
  * @public
709
704
  *
@@ -718,7 +713,7 @@ function jsonFromHTML(html, options) {
718
713
  return jsonFromElement(elementFromHTML(html, options), options);
719
714
  }
720
715
  /**
721
- * Parse a ProseMirror document JSON object to a HTML string.
716
+ * Parse a ProseMirror document JSON object to an HTML string.
722
717
  *
723
718
  * @public
724
719
  *
@@ -769,12 +764,11 @@ function getEditorSelection(doc, selection) {
769
764
  *
770
765
  * @public
771
766
  */
772
- function defineDefaultState({ defaultSelection, defaultContent, defaultDoc, defaultHTML }) {
773
- const defaultDocContent = defaultContent || defaultDoc || defaultHTML;
767
+ function defineDefaultState({ defaultSelection, defaultContent }) {
774
768
  return defineFacetPayload(stateFacet, [({ schema }) => {
775
769
  const config = {};
776
- if (defaultDocContent) {
777
- const json = getEditorContentJSON(schema, defaultDocContent);
770
+ if (defaultContent) {
771
+ const json = getEditorContentJSON(schema, defaultContent);
778
772
  config.doc = schema.nodeFromJSON(json);
779
773
  if (defaultSelection) config.selection = Selection.fromJSON(config.doc, defaultSelection);
780
774
  }
@@ -782,21 +776,6 @@ function defineDefaultState({ defaultSelection, defaultContent, defaultDoc, defa
782
776
  }]);
783
777
  }
784
778
 
785
- //#endregion
786
- //#region src/utils/deep-equals.ts
787
- function deepEquals(a, b) {
788
- if (a === b) return true;
789
- if (!a || !b) return false;
790
- if (Array.isArray(a) && Array.isArray(b)) return a.length === b.length && a.every((x, i) => deepEquals(x, b[i]));
791
- if (a instanceof OrderedMap && b instanceof OrderedMap) return a.size === b.size && deepEquals(a.toObject(), b.toObject());
792
- if (typeof a === "object" && typeof b === "object") {
793
- const aKeys = Object.keys(a);
794
- const bKeys = Object.keys(b);
795
- return aKeys.length === bKeys.length && aKeys.every((key) => deepEquals(a[key], b[key]));
796
- }
797
- return false;
798
- }
799
-
800
779
  //#endregion
801
780
  //#region src/utils/is-subset.ts
802
781
  /**
@@ -958,7 +937,7 @@ function union(...exts) {
958
937
  * @internal
959
938
  */
960
939
  function setupEditorExtension(options) {
961
- if (options.defaultContent || options.defaultDoc || options.defaultHTML) return union(options.extension, defineDefaultState(options));
940
+ if (options.defaultContent) return union(options.extension, defineDefaultState(options));
962
941
  return options.extension;
963
942
  }
964
943
  /**
@@ -1045,11 +1024,11 @@ var EditorInstance = class {
1045
1024
  this.tree = add ? unionFacetNode(this.tree, tree) : subtractFacetNode(this.tree, tree);
1046
1025
  const newPayload = this.tree.getRootOutput();
1047
1026
  const newPlugins = [...newPayload?.state?.plugins ?? []];
1048
- if (!deepEquals(oldPlugins, newPlugins)) {
1027
+ if (!isDeepEqual(oldPlugins, newPlugins)) {
1049
1028
  const state = view.state.reconfigure({ plugins: newPlugins });
1050
1029
  view.updateState(state);
1051
1030
  }
1052
- if (newPayload?.commands && !deepEquals(oldPayload?.commands, newPayload?.commands)) {
1031
+ if (newPayload?.commands && !isDeepEqual(oldPayload?.commands, newPayload?.commands)) {
1053
1032
  const commands = newPayload.commands;
1054
1033
  const names = Object.keys(commands);
1055
1034
  for (const name of names) this.defineCommand(name, commands[name]);
@@ -1072,7 +1051,10 @@ var EditorInstance = class {
1072
1051
  return () => this.updateExtension(extension, false);
1073
1052
  }
1074
1053
  mount(place) {
1075
- if (this.view) throw new ProseKitError("Editor is already mounted");
1054
+ if (this.view) {
1055
+ if (this.view.dom === place) return;
1056
+ throw new ProseKitError("Editor is already mounted");
1057
+ }
1076
1058
  this.view = new EditorView({ mount: place }, this.directEditorProps);
1077
1059
  this.afterMounted.forEach((callback) => callback());
1078
1060
  }
@@ -1119,7 +1101,6 @@ var EditorInstance = class {
1119
1101
  const command = commandCreator(...args);
1120
1102
  return this.canExec(command);
1121
1103
  };
1122
- action.canApply = canExec;
1123
1104
  action.canExec = canExec;
1124
1105
  this.commands[name] = action;
1125
1106
  }
@@ -1136,8 +1117,10 @@ var Editor = class {
1136
1117
  */
1137
1118
  constructor(instance) {
1138
1119
  this.mount = (place) => {
1139
- if (place) this.instance.mount(place);
1140
- else this.instance.unmount();
1120
+ if (place) {
1121
+ this.instance.mount(place);
1122
+ return this.unmount;
1123
+ } else this.instance.unmount();
1141
1124
  };
1142
1125
  this.unmount = () => {
1143
1126
  this.instance.unmount();
@@ -1223,5 +1206,5 @@ var Editor = class {
1223
1206
  };
1224
1207
 
1225
1208
  //#endregion
1226
- export { isSelection as A, assert as B, defineFacetPayload as C, isNodeSelection as D, isMark as E, rootFacet as F, EditorNotFoundError as H, defineFacet as I, Priority as L, isTextSelection as M, toReversed as N, isNotNullish as O, schemaFacet as P, isNodeActive as R, stateFacet as S, isFragment as T, ProseKitError as U, getMarkType as V, jsonFromState as _, union as a, nodeFromJSON as b, isMarkActive as c, elementFromJSON as d, elementFromNode as f, jsonFromNode as g, jsonFromHTML as h, setupEditorExtension as i, isSlice as j, isProseMirrorNode as k, isMarkAbsent as l, htmlFromNode as m, EditorInstance as n, createMarkActions as o, htmlFromJSON as p, createEditor as r, createNodeActions as s, Editor as t, defineDefaultState as u, nodeFromElement as v, isAllSelection as w, stateFromJSON as x, nodeFromHTML as y, getNodeType as z };
1227
- //# sourceMappingURL=editor-D2iEkgO8.js.map
1209
+ export { isFragment as A, getMarkType as B, defineFacetPayload as C, Priority as D, defineFacet as E, isSelection as F, ProseKitError as H, isSlice as I, isTextSelection as L, isNodeSelection as M, isNotNullish as N, isNodeActive as O, isProseMirrorNode as P, getNodeType as R, stateFacet as S, rootFacet as T, EditorNotFoundError as V, jsonFromState as _, union as a, nodeFromJSON as b, isMarkActive as c, elementFromJSON as d, elementFromNode as f, jsonFromNode as g, jsonFromHTML as h, setupEditorExtension as i, isMark as j, isAllSelection as k, isMarkAbsent as l, htmlFromNode as m, EditorInstance as n, createMarkActions as o, htmlFromJSON as p, createEditor as r, createNodeActions as s, Editor as t, defineDefaultState as u, nodeFromElement as v, schemaFacet as w, stateFromJSON as x, nodeFromHTML as y, assert as z };
1210
+ //# sourceMappingURL=editor-DGNUXn-u.js.map