@tiptap/vue-2 3.0.0-next.0 → 3.0.0-next.1

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 (185) hide show
  1. package/dist/index.cjs +395 -356
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +97 -0
  4. package/dist/index.d.ts +97 -0
  5. package/dist/index.js +353 -340
  6. package/dist/index.js.map +1 -1
  7. package/package.json +10 -12
  8. package/dist/index.umd.js +0 -389
  9. package/dist/index.umd.js.map +0 -1
  10. package/dist/packages/core/src/CommandManager.d.ts +0 -20
  11. package/dist/packages/core/src/Editor.d.ts +0 -159
  12. package/dist/packages/core/src/EventEmitter.d.ts +0 -11
  13. package/dist/packages/core/src/Extension.d.ts +0 -343
  14. package/dist/packages/core/src/ExtensionManager.d.ts +0 -55
  15. package/dist/packages/core/src/InputRule.d.ts +0 -42
  16. package/dist/packages/core/src/Mark.d.ts +0 -451
  17. package/dist/packages/core/src/Node.d.ts +0 -611
  18. package/dist/packages/core/src/NodePos.d.ts +0 -44
  19. package/dist/packages/core/src/NodeView.d.ts +0 -31
  20. package/dist/packages/core/src/PasteRule.d.ts +0 -50
  21. package/dist/packages/core/src/Tracker.d.ts +0 -11
  22. package/dist/packages/core/src/commands/blur.d.ts +0 -13
  23. package/dist/packages/core/src/commands/clearContent.d.ts +0 -14
  24. package/dist/packages/core/src/commands/clearNodes.d.ts +0 -13
  25. package/dist/packages/core/src/commands/command.d.ts +0 -18
  26. package/dist/packages/core/src/commands/createParagraphNear.d.ts +0 -13
  27. package/dist/packages/core/src/commands/cut.d.ts +0 -20
  28. package/dist/packages/core/src/commands/deleteCurrentNode.d.ts +0 -13
  29. package/dist/packages/core/src/commands/deleteNode.d.ts +0 -15
  30. package/dist/packages/core/src/commands/deleteRange.d.ts +0 -14
  31. package/dist/packages/core/src/commands/deleteSelection.d.ts +0 -13
  32. package/dist/packages/core/src/commands/enter.d.ts +0 -13
  33. package/dist/packages/core/src/commands/exitCode.d.ts +0 -13
  34. package/dist/packages/core/src/commands/extendMarkRange.d.ts +0 -25
  35. package/dist/packages/core/src/commands/first.d.ts +0 -14
  36. package/dist/packages/core/src/commands/focus.d.ts +0 -27
  37. package/dist/packages/core/src/commands/forEach.d.ts +0 -14
  38. package/dist/packages/core/src/commands/index.d.ts +0 -55
  39. package/dist/packages/core/src/commands/insertContent.d.ts +0 -34
  40. package/dist/packages/core/src/commands/insertContentAt.d.ts +0 -47
  41. package/dist/packages/core/src/commands/join.d.ts +0 -41
  42. package/dist/packages/core/src/commands/joinItemBackward.d.ts +0 -13
  43. package/dist/packages/core/src/commands/joinItemForward.d.ts +0 -13
  44. package/dist/packages/core/src/commands/joinTextblockBackward.d.ts +0 -12
  45. package/dist/packages/core/src/commands/joinTextblockForward.d.ts +0 -12
  46. package/dist/packages/core/src/commands/keyboardShortcut.d.ts +0 -14
  47. package/dist/packages/core/src/commands/lift.d.ts +0 -17
  48. package/dist/packages/core/src/commands/liftEmptyBlock.d.ts +0 -13
  49. package/dist/packages/core/src/commands/liftListItem.d.ts +0 -15
  50. package/dist/packages/core/src/commands/newlineInCode.d.ts +0 -13
  51. package/dist/packages/core/src/commands/resetAttributes.d.ts +0 -16
  52. package/dist/packages/core/src/commands/scrollIntoView.d.ts +0 -13
  53. package/dist/packages/core/src/commands/selectAll.d.ts +0 -13
  54. package/dist/packages/core/src/commands/selectNodeBackward.d.ts +0 -13
  55. package/dist/packages/core/src/commands/selectNodeForward.d.ts +0 -13
  56. package/dist/packages/core/src/commands/selectParentNode.d.ts +0 -13
  57. package/dist/packages/core/src/commands/selectTextblockEnd.d.ts +0 -13
  58. package/dist/packages/core/src/commands/selectTextblockStart.d.ts +0 -13
  59. package/dist/packages/core/src/commands/setContent.d.ts +0 -40
  60. package/dist/packages/core/src/commands/setMark.d.ts +0 -15
  61. package/dist/packages/core/src/commands/setMeta.d.ts +0 -15
  62. package/dist/packages/core/src/commands/setNode.d.ts +0 -16
  63. package/dist/packages/core/src/commands/setNodeSelection.d.ts +0 -14
  64. package/dist/packages/core/src/commands/setTextSelection.d.ts +0 -14
  65. package/dist/packages/core/src/commands/sinkListItem.d.ts +0 -15
  66. package/dist/packages/core/src/commands/splitBlock.d.ts +0 -17
  67. package/dist/packages/core/src/commands/splitListItem.d.ts +0 -15
  68. package/dist/packages/core/src/commands/toggleList.d.ts +0 -18
  69. package/dist/packages/core/src/commands/toggleMark.d.ts +0 -30
  70. package/dist/packages/core/src/commands/toggleNode.d.ts +0 -17
  71. package/dist/packages/core/src/commands/toggleWrap.d.ts +0 -16
  72. package/dist/packages/core/src/commands/undoInputRule.d.ts +0 -13
  73. package/dist/packages/core/src/commands/unsetAllMarks.d.ts +0 -13
  74. package/dist/packages/core/src/commands/unsetMark.d.ts +0 -25
  75. package/dist/packages/core/src/commands/updateAttributes.d.ts +0 -24
  76. package/dist/packages/core/src/commands/wrapIn.d.ts +0 -16
  77. package/dist/packages/core/src/commands/wrapInList.d.ts +0 -16
  78. package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +0 -5
  79. package/dist/packages/core/src/extensions/commands.d.ts +0 -3
  80. package/dist/packages/core/src/extensions/editable.d.ts +0 -2
  81. package/dist/packages/core/src/extensions/focusEvents.d.ts +0 -2
  82. package/dist/packages/core/src/extensions/index.d.ts +0 -6
  83. package/dist/packages/core/src/extensions/keymap.d.ts +0 -2
  84. package/dist/packages/core/src/extensions/tabindex.d.ts +0 -2
  85. package/dist/packages/core/src/helpers/combineTransactionSteps.d.ts +0 -10
  86. package/dist/packages/core/src/helpers/createChainableState.d.ts +0 -10
  87. package/dist/packages/core/src/helpers/createDocument.d.ts +0 -12
  88. package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +0 -15
  89. package/dist/packages/core/src/helpers/defaultBlockAt.d.ts +0 -7
  90. package/dist/packages/core/src/helpers/findChildren.d.ts +0 -9
  91. package/dist/packages/core/src/helpers/findChildrenInRange.d.ts +0 -10
  92. package/dist/packages/core/src/helpers/findParentNode.d.ts +0 -16
  93. package/dist/packages/core/src/helpers/findParentNodeClosestToPos.d.ts +0 -17
  94. package/dist/packages/core/src/helpers/generateHTML.d.ts +0 -8
  95. package/dist/packages/core/src/helpers/generateJSON.d.ts +0 -8
  96. package/dist/packages/core/src/helpers/generateText.d.ts +0 -12
  97. package/dist/packages/core/src/helpers/getAttributes.d.ts +0 -9
  98. package/dist/packages/core/src/helpers/getAttributesFromExtensions.d.ts +0 -6
  99. package/dist/packages/core/src/helpers/getChangedRanges.d.ts +0 -11
  100. package/dist/packages/core/src/helpers/getDebugJSON.d.ts +0 -8
  101. package/dist/packages/core/src/helpers/getExtensionField.d.ts +0 -9
  102. package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +0 -2
  103. package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +0 -3
  104. package/dist/packages/core/src/helpers/getMarkRange.d.ts +0 -3
  105. package/dist/packages/core/src/helpers/getMarkType.d.ts +0 -2
  106. package/dist/packages/core/src/helpers/getMarksBetween.d.ts +0 -3
  107. package/dist/packages/core/src/helpers/getNodeAtPosition.d.ts +0 -11
  108. package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +0 -3
  109. package/dist/packages/core/src/helpers/getNodeType.d.ts +0 -2
  110. package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +0 -3
  111. package/dist/packages/core/src/helpers/getSchema.d.ts +0 -4
  112. package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +0 -10
  113. package/dist/packages/core/src/helpers/getSchemaTypeByName.d.ts +0 -8
  114. package/dist/packages/core/src/helpers/getSchemaTypeNameByName.d.ts +0 -8
  115. package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +0 -9
  116. package/dist/packages/core/src/helpers/getText.d.ts +0 -15
  117. package/dist/packages/core/src/helpers/getTextBetween.d.ts +0 -14
  118. package/dist/packages/core/src/helpers/getTextContentFromNodes.d.ts +0 -8
  119. package/dist/packages/core/src/helpers/getTextSerializersFromSchema.d.ts +0 -8
  120. package/dist/packages/core/src/helpers/index.d.ts +0 -50
  121. package/dist/packages/core/src/helpers/injectExtensionAttributesToParseRule.d.ts +0 -9
  122. package/dist/packages/core/src/helpers/isActive.d.ts +0 -2
  123. package/dist/packages/core/src/helpers/isAtEndOfNode.d.ts +0 -2
  124. package/dist/packages/core/src/helpers/isAtStartOfNode.d.ts +0 -2
  125. package/dist/packages/core/src/helpers/isExtensionRulesEnabled.d.ts +0 -2
  126. package/dist/packages/core/src/helpers/isList.d.ts +0 -2
  127. package/dist/packages/core/src/helpers/isMarkActive.d.ts +0 -3
  128. package/dist/packages/core/src/helpers/isNodeActive.d.ts +0 -3
  129. package/dist/packages/core/src/helpers/isNodeEmpty.d.ts +0 -8
  130. package/dist/packages/core/src/helpers/isNodeSelection.d.ts +0 -2
  131. package/dist/packages/core/src/helpers/isTextSelection.d.ts +0 -2
  132. package/dist/packages/core/src/helpers/posToDOMRect.d.ts +0 -2
  133. package/dist/packages/core/src/helpers/resolveFocusPosition.d.ts +0 -4
  134. package/dist/packages/core/src/helpers/selectionToInsertionEnd.d.ts +0 -2
  135. package/dist/packages/core/src/helpers/splitExtensions.d.ts +0 -9
  136. package/dist/packages/core/src/index.d.ts +0 -24
  137. package/dist/packages/core/src/inputRules/index.d.ts +0 -5
  138. package/dist/packages/core/src/inputRules/markInputRule.d.ts +0 -13
  139. package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +0 -23
  140. package/dist/packages/core/src/inputRules/textInputRule.d.ts +0 -10
  141. package/dist/packages/core/src/inputRules/textblockTypeInputRule.d.ts +0 -15
  142. package/dist/packages/core/src/inputRules/wrappingInputRule.d.ts +0 -28
  143. package/dist/packages/core/src/pasteRules/index.d.ts +0 -3
  144. package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +0 -13
  145. package/dist/packages/core/src/pasteRules/nodePasteRule.d.ts +0 -13
  146. package/dist/packages/core/src/pasteRules/textPasteRule.d.ts +0 -10
  147. package/dist/packages/core/src/style.d.ts +0 -1
  148. package/dist/packages/core/src/types.d.ts +0 -253
  149. package/dist/packages/core/src/utilities/callOrReturn.d.ts +0 -9
  150. package/dist/packages/core/src/utilities/createStyleTag.d.ts +0 -1
  151. package/dist/packages/core/src/utilities/deleteProps.d.ts +0 -6
  152. package/dist/packages/core/src/utilities/elementFromString.d.ts +0 -1
  153. package/dist/packages/core/src/utilities/escapeForRegEx.d.ts +0 -1
  154. package/dist/packages/core/src/utilities/findDuplicates.d.ts +0 -1
  155. package/dist/packages/core/src/utilities/fromString.d.ts +0 -1
  156. package/dist/packages/core/src/utilities/index.d.ts +0 -20
  157. package/dist/packages/core/src/utilities/isAndroid.d.ts +0 -1
  158. package/dist/packages/core/src/utilities/isEmptyObject.d.ts +0 -1
  159. package/dist/packages/core/src/utilities/isFunction.d.ts +0 -1
  160. package/dist/packages/core/src/utilities/isMacOS.d.ts +0 -1
  161. package/dist/packages/core/src/utilities/isNumber.d.ts +0 -1
  162. package/dist/packages/core/src/utilities/isPlainObject.d.ts +0 -1
  163. package/dist/packages/core/src/utilities/isRegExp.d.ts +0 -1
  164. package/dist/packages/core/src/utilities/isString.d.ts +0 -1
  165. package/dist/packages/core/src/utilities/isiOS.d.ts +0 -1
  166. package/dist/packages/core/src/utilities/mergeAttributes.d.ts +0 -1
  167. package/dist/packages/core/src/utilities/mergeDeep.d.ts +0 -1
  168. package/dist/packages/core/src/utilities/minMax.d.ts +0 -1
  169. package/dist/packages/core/src/utilities/objectIncludes.d.ts +0 -8
  170. package/dist/packages/core/src/utilities/removeDuplicates.d.ts +0 -8
  171. package/dist/packages/extension-bubble-menu/src/bubble-menu-plugin.d.ts +0 -99
  172. package/dist/packages/extension-bubble-menu/src/bubble-menu.d.ts +0 -15
  173. package/dist/packages/extension-bubble-menu/src/index.d.ts +0 -4
  174. package/dist/packages/extension-floating-menu/src/floating-menu-plugin.d.ts +0 -81
  175. package/dist/packages/extension-floating-menu/src/floating-menu.d.ts +0 -15
  176. package/dist/packages/extension-floating-menu/src/index.d.ts +0 -4
  177. package/dist/packages/vue-2/src/BubbleMenu.d.ts +0 -11
  178. package/dist/packages/vue-2/src/Editor.d.ts +0 -5
  179. package/dist/packages/vue-2/src/EditorContent.d.ts +0 -6
  180. package/dist/packages/vue-2/src/FloatingMenu.d.ts +0 -9
  181. package/dist/packages/vue-2/src/NodeViewContent.d.ts +0 -5
  182. package/dist/packages/vue-2/src/NodeViewWrapper.d.ts +0 -9
  183. package/dist/packages/vue-2/src/VueNodeViewRenderer.d.ts +0 -37
  184. package/dist/packages/vue-2/src/VueRenderer.d.ts +0 -12
  185. package/dist/packages/vue-2/src/index.d.ts +0 -9
package/dist/index.cjs CHANGED
@@ -1,393 +1,432 @@
1
- 'use strict';
2
-
3
- var extensionBubbleMenu = require('@tiptap/extension-bubble-menu');
4
- var core = require('@tiptap/core');
5
- var extensionFloatingMenu = require('@tiptap/extension-floating-menu');
6
- var Vue = require('vue');
7
- var vueTsTypes = require('vue-ts-types');
8
-
9
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
10
30
 
11
- var Vue__default = /*#__PURE__*/_interopDefaultCompat(Vue);
31
+ // src/index.ts
32
+ var src_exports = {};
33
+ __export(src_exports, {
34
+ BubbleMenu: () => BubbleMenu,
35
+ Editor: () => Editor,
36
+ EditorContent: () => EditorContent,
37
+ FloatingMenu: () => FloatingMenu,
38
+ NodeViewContent: () => NodeViewContent,
39
+ NodeViewWrapper: () => NodeViewWrapper,
40
+ VueNodeViewRenderer: () => VueNodeViewRenderer,
41
+ VueRenderer: () => VueRenderer,
42
+ nodeViewProps: () => nodeViewProps
43
+ });
44
+ module.exports = __toCommonJS(src_exports);
12
45
 
13
- const BubbleMenu = {
14
- name: 'BubbleMenu',
15
- props: {
16
- pluginKey: {
17
- type: [String, Object],
18
- default: 'bubbleMenu',
19
- },
20
- editor: {
21
- type: Object,
22
- required: true,
23
- },
24
- updateDelay: {
25
- type: Number,
26
- },
27
- options: {
28
- type: Object,
29
- default: {},
30
- },
31
- resizeDelay: {
32
- type: Number,
33
- },
34
- shouldShow: {
35
- type: Function,
36
- default: null,
37
- },
46
+ // src/BubbleMenu.ts
47
+ var import_extension_bubble_menu = require("@tiptap/extension-bubble-menu");
48
+ var BubbleMenu = {
49
+ name: "BubbleMenu",
50
+ props: {
51
+ pluginKey: {
52
+ type: [String, Object],
53
+ default: "bubbleMenu"
38
54
  },
39
- watch: {
40
- editor: {
41
- immediate: true,
42
- handler(editor) {
43
- if (!editor) {
44
- return;
45
- }
46
- this.$el.style.visibility = 'hidden';
47
- this.$el.style.position = 'absolute';
48
- this.$el.remove();
49
- this.$nextTick(() => {
50
- editor.registerPlugin(extensionBubbleMenu.BubbleMenuPlugin({
51
- updateDelay: this.updateDelay,
52
- resizeDelay: this.resizeDelay,
53
- options: this.options,
54
- editor,
55
- element: this.$el,
56
- pluginKey: this.pluginKey,
57
- shouldShow: this.shouldShow,
58
- }));
59
- });
60
- },
61
- },
55
+ editor: {
56
+ type: Object,
57
+ required: true
62
58
  },
63
- render(createElement) {
64
- return createElement('div', { style: { visibility: 'hidden' } }, this.$slots.default);
59
+ updateDelay: {
60
+ type: Number
65
61
  },
66
- beforeDestroy() {
67
- this.editor.unregisterPlugin(this.pluginKey);
62
+ options: {
63
+ type: Object,
64
+ default: {}
68
65
  },
69
- };
70
-
71
- class Editor extends core.Editor {
72
- constructor() {
73
- super(...arguments);
74
- this.contentComponent = null;
75
- }
76
- }
77
-
78
- const EditorContent = {
79
- name: 'EditorContent',
80
- props: {
81
- editor: {
82
- default: null,
83
- type: Object,
84
- },
85
- },
86
- watch: {
87
- editor: {
88
- immediate: true,
89
- handler(editor) {
90
- if (editor && editor.options.element) {
91
- this.$nextTick(() => {
92
- const element = this.$el;
93
- if (!element || !editor.options.element.firstChild) {
94
- return;
95
- }
96
- element.append(...editor.options.element.childNodes);
97
- editor.contentComponent = this;
98
- editor.setOptions({
99
- element,
100
- });
101
- editor.createNodeViews();
102
- });
103
- }
104
- },
105
- },
66
+ resizeDelay: {
67
+ type: Number
106
68
  },
107
- render(createElement) {
108
- return createElement('div');
109
- },
110
- beforeDestroy() {
111
- const { editor } = this;
69
+ shouldShow: {
70
+ type: Function,
71
+ default: null
72
+ }
73
+ },
74
+ watch: {
75
+ editor: {
76
+ immediate: true,
77
+ handler(editor) {
112
78
  if (!editor) {
113
- return;
79
+ return;
114
80
  }
115
- if (!editor.isDestroyed) {
116
- editor.view.setProps({
117
- nodeViews: {},
118
- });
119
- }
120
- editor.contentComponent = null;
121
- if (!editor.options.element.firstChild) {
122
- return;
123
- }
124
- const newElement = document.createElement('div');
125
- newElement.append(...editor.options.element.childNodes);
126
- editor.setOptions({
127
- element: newElement,
81
+ this.$el.style.visibility = "hidden";
82
+ this.$el.style.position = "absolute";
83
+ this.$el.remove();
84
+ this.$nextTick(() => {
85
+ editor.registerPlugin((0, import_extension_bubble_menu.BubbleMenuPlugin)({
86
+ updateDelay: this.updateDelay,
87
+ resizeDelay: this.resizeDelay,
88
+ options: this.options,
89
+ editor,
90
+ element: this.$el,
91
+ pluginKey: this.pluginKey,
92
+ shouldShow: this.shouldShow
93
+ }));
128
94
  });
129
- },
95
+ }
96
+ }
97
+ },
98
+ render(createElement) {
99
+ return createElement("div", { style: { visibility: "hidden" } }, this.$slots.default);
100
+ },
101
+ beforeDestroy() {
102
+ this.editor.unregisterPlugin(this.pluginKey);
103
+ }
130
104
  };
131
105
 
132
- const FloatingMenu = {
133
- name: 'FloatingMenu',
134
- props: {
135
- pluginKey: {
136
- type: [String, Object],
137
- default: 'floatingMenu',
138
- },
139
- editor: {
140
- type: Object,
141
- required: true,
142
- },
143
- options: {
144
- type: Object,
145
- default: () => ({}),
146
- },
147
- shouldShow: {
148
- type: Function,
149
- default: null,
150
- },
151
- },
152
- watch: {
153
- editor: {
154
- immediate: true,
155
- handler(editor) {
156
- if (!editor) {
157
- return;
158
- }
159
- this.$el.style.visibility = 'hidden';
160
- this.$el.style.position = 'absolute';
161
- this.$el.remove();
162
- this.$nextTick(() => {
163
- editor.registerPlugin(extensionFloatingMenu.FloatingMenuPlugin({
164
- pluginKey: this.pluginKey,
165
- editor,
166
- element: this.$el,
167
- options: this.options,
168
- shouldShow: this.shouldShow,
169
- }));
170
- });
171
- },
172
- },
173
- },
174
- render(createElement) {
175
- return createElement('div', { style: { visibility: 'hidden' } }, this.$slots.default);
176
- },
177
- beforeDestroy() {
178
- this.editor.unregisterPlugin(this.pluginKey);
179
- },
106
+ // src/Editor.ts
107
+ var import_core = require("@tiptap/core");
108
+ var Editor = class extends import_core.Editor {
109
+ constructor() {
110
+ super(...arguments);
111
+ this.contentComponent = null;
112
+ }
180
113
  };
181
114
 
182
- const NodeViewContent = {
183
- props: {
184
- as: {
185
- type: String,
186
- default: 'div',
187
- },
188
- },
189
- render(createElement) {
190
- return createElement(this.as, {
191
- style: {
192
- whiteSpace: 'pre-wrap',
193
- },
194
- attrs: {
195
- 'data-node-view-content': '',
196
- },
197
- });
198
- },
115
+ // src/EditorContent.ts
116
+ var EditorContent = {
117
+ name: "EditorContent",
118
+ props: {
119
+ editor: {
120
+ default: null,
121
+ type: Object
122
+ }
123
+ },
124
+ watch: {
125
+ editor: {
126
+ immediate: true,
127
+ handler(editor) {
128
+ if (editor && editor.options.element) {
129
+ this.$nextTick(() => {
130
+ const element = this.$el;
131
+ if (!element || !editor.options.element.firstChild) {
132
+ return;
133
+ }
134
+ element.append(...editor.options.element.childNodes);
135
+ editor.contentComponent = this;
136
+ editor.setOptions({
137
+ element
138
+ });
139
+ editor.createNodeViews();
140
+ });
141
+ }
142
+ }
143
+ }
144
+ },
145
+ render(createElement) {
146
+ return createElement("div");
147
+ },
148
+ beforeDestroy() {
149
+ const { editor } = this;
150
+ if (!editor) {
151
+ return;
152
+ }
153
+ if (!editor.isDestroyed) {
154
+ editor.view.setProps({
155
+ nodeViews: {}
156
+ });
157
+ }
158
+ editor.contentComponent = null;
159
+ if (!editor.options.element.firstChild) {
160
+ return;
161
+ }
162
+ const newElement = document.createElement("div");
163
+ newElement.append(...editor.options.element.childNodes);
164
+ editor.setOptions({
165
+ element: newElement
166
+ });
167
+ }
199
168
  };
200
169
 
201
- const NodeViewWrapper = {
202
- props: {
203
- as: {
204
- type: String,
205
- default: 'div',
206
- },
170
+ // src/FloatingMenu.ts
171
+ var import_extension_floating_menu = require("@tiptap/extension-floating-menu");
172
+ var FloatingMenu = {
173
+ name: "FloatingMenu",
174
+ props: {
175
+ pluginKey: {
176
+ type: [String, Object],
177
+ default: "floatingMenu"
207
178
  },
208
- inject: ['onDragStart', 'decorationClasses'],
209
- render(createElement) {
210
- return createElement(this.as, {
211
- class: this.decorationClasses.value,
212
- style: {
213
- whiteSpace: 'normal',
214
- },
215
- attrs: {
216
- 'data-node-view-wrapper': '',
217
- },
218
- on: {
219
- dragstart: this.onDragStart,
220
- },
221
- }, this.$slots.default);
179
+ editor: {
180
+ type: Object,
181
+ required: true
222
182
  },
223
- };
224
-
225
- /**
226
- * The VueRenderer class is responsible for rendering a Vue component as a ProseMirror node view.
227
- */
228
- class VueRenderer {
229
- constructor(component, props) {
230
- const Component = (typeof component === 'function') ? component : Vue__default.default.extend(component);
231
- this.ref = new Component(props).$mount();
232
- }
233
- get element() {
234
- return this.ref.$el;
183
+ options: {
184
+ type: Object,
185
+ default: () => ({})
186
+ },
187
+ shouldShow: {
188
+ type: Function,
189
+ default: null
235
190
  }
236
- updateProps(props = {}) {
237
- var _a, _b, _c;
238
- if (!this.ref.$props) {
239
- return;
191
+ },
192
+ watch: {
193
+ editor: {
194
+ immediate: true,
195
+ handler(editor) {
196
+ if (!editor) {
197
+ return;
240
198
  }
241
- // prevents `Avoid mutating a prop directly` error message
242
- // Fix: `VueNodeViewRenderer` change vue Constructor `config.silent` not working
243
- const currentVueConstructor = (_c = (_b = (_a = this.ref.$props.editor) === null || _a === void 0 ? void 0 : _a.contentComponent) === null || _b === void 0 ? void 0 : _b.$options._base) !== null && _c !== void 0 ? _c : Vue__default.default; // eslint-disable-line
244
- const originalSilent = currentVueConstructor.config.silent;
245
- currentVueConstructor.config.silent = true;
246
- Object
247
- .entries(props)
248
- .forEach(([key, value]) => {
249
- this.ref.$props[key] = value;
199
+ this.$el.style.visibility = "hidden";
200
+ this.$el.style.position = "absolute";
201
+ this.$el.remove();
202
+ this.$nextTick(() => {
203
+ editor.registerPlugin((0, import_extension_floating_menu.FloatingMenuPlugin)({
204
+ pluginKey: this.pluginKey,
205
+ editor,
206
+ element: this.$el,
207
+ options: this.options,
208
+ shouldShow: this.shouldShow
209
+ }));
250
210
  });
251
- currentVueConstructor.config.silent = originalSilent;
252
- }
253
- destroy() {
254
- this.ref.$destroy();
211
+ }
255
212
  }
256
- }
257
-
258
- const nodeViewProps = {
259
- editor: vueTsTypes.objectProp().required,
260
- node: vueTsTypes.objectProp().required,
261
- decorations: vueTsTypes.objectProp().required,
262
- selected: vueTsTypes.booleanProp().required,
263
- extension: vueTsTypes.objectProp().required,
264
- getPos: vueTsTypes.functionProp().required,
265
- updateAttributes: vueTsTypes.functionProp().required,
266
- deleteNode: vueTsTypes.functionProp().required,
213
+ },
214
+ render(createElement) {
215
+ return createElement("div", { style: { visibility: "hidden" } }, this.$slots.default);
216
+ },
217
+ beforeDestroy() {
218
+ this.editor.unregisterPlugin(this.pluginKey);
219
+ }
267
220
  };
268
- class VueNodeView extends core.NodeView {
269
- mount() {
270
- var _a, _b;
271
- const props = {
272
- editor: this.editor,
273
- node: this.node,
274
- decorations: this.decorations,
275
- selected: false,
276
- extension: this.extension,
277
- getPos: () => this.getPos(),
278
- updateAttributes: (attributes = {}) => this.updateAttributes(attributes),
279
- deleteNode: () => this.deleteNode(),
280
- };
281
- const onDragStart = this.onDragStart.bind(this);
282
- this.decorationClasses = Vue__default.default.observable({
283
- value: this.getDecorationClasses(),
284
- });
285
- // @ts-ignore
286
- const vue = (_b = (_a = this.editor.contentComponent) === null || _a === void 0 ? void 0 : _a.$options._base) !== null && _b !== void 0 ? _b : Vue__default.default; // eslint-disable-line
287
- const Component = vue.extend(this.component).extend({
288
- props: Object.keys(props),
289
- provide: () => {
290
- return {
291
- onDragStart,
292
- decorationClasses: this.decorationClasses,
293
- };
294
- },
295
- });
296
- this.renderer = new VueRenderer(Component, {
297
- parent: this.editor.contentComponent,
298
- propsData: props,
299
- });
221
+
222
+ // src/NodeViewContent.ts
223
+ var NodeViewContent = {
224
+ props: {
225
+ as: {
226
+ type: String,
227
+ default: "div"
300
228
  }
301
- get dom() {
302
- if (!this.renderer.element.hasAttribute('data-node-view-wrapper')) {
303
- throw Error('Please use the NodeViewWrapper component for your node view.');
304
- }
305
- return this.renderer.element;
229
+ },
230
+ render(createElement) {
231
+ return createElement(this.as, {
232
+ style: {
233
+ whiteSpace: "pre-wrap"
234
+ },
235
+ attrs: {
236
+ "data-node-view-content": ""
237
+ }
238
+ });
239
+ }
240
+ };
241
+
242
+ // src/NodeViewWrapper.ts
243
+ var NodeViewWrapper = {
244
+ props: {
245
+ as: {
246
+ type: String,
247
+ default: "div"
306
248
  }
307
- get contentDOM() {
308
- if (this.node.isLeaf) {
309
- return null;
249
+ },
250
+ inject: ["onDragStart", "decorationClasses"],
251
+ render(createElement) {
252
+ return createElement(
253
+ this.as,
254
+ {
255
+ class: this.decorationClasses.value,
256
+ style: {
257
+ whiteSpace: "normal"
258
+ },
259
+ attrs: {
260
+ "data-node-view-wrapper": ""
261
+ },
262
+ on: {
263
+ dragstart: this.onDragStart
310
264
  }
311
- const contentElement = this.dom.querySelector('[data-node-view-content]');
312
- return (contentElement || this.dom);
265
+ },
266
+ this.$slots.default
267
+ );
268
+ }
269
+ };
270
+
271
+ // src/VueNodeViewRenderer.ts
272
+ var import_core2 = require("@tiptap/core");
273
+ var import_vue2 = __toESM(require("vue"), 1);
274
+ var import_vue_ts_types = require("vue-ts-types");
275
+
276
+ // src/VueRenderer.ts
277
+ var import_vue = __toESM(require("vue"), 1);
278
+ var VueRenderer = class {
279
+ constructor(component, props) {
280
+ const Component = typeof component === "function" ? component : import_vue.default.extend(component);
281
+ this.ref = new Component(props).$mount();
282
+ }
283
+ get element() {
284
+ return this.ref.$el;
285
+ }
286
+ updateProps(props = {}) {
287
+ var _a, _b, _c;
288
+ if (!this.ref.$props) {
289
+ return;
313
290
  }
314
- update(node, decorations) {
315
- const updateProps = (props) => {
316
- this.decorationClasses.value = this.getDecorationClasses();
317
- this.renderer.updateProps(props);
291
+ const currentVueConstructor = (_c = (_b = (_a = this.ref.$props.editor) == null ? void 0 : _a.contentComponent) == null ? void 0 : _b.$options._base) != null ? _c : import_vue.default;
292
+ const originalSilent = currentVueConstructor.config.silent;
293
+ currentVueConstructor.config.silent = true;
294
+ Object.entries(props).forEach(([key, value]) => {
295
+ this.ref.$props[key] = value;
296
+ });
297
+ currentVueConstructor.config.silent = originalSilent;
298
+ }
299
+ destroy() {
300
+ this.ref.$destroy();
301
+ }
302
+ };
303
+
304
+ // src/VueNodeViewRenderer.ts
305
+ var nodeViewProps = {
306
+ editor: (0, import_vue_ts_types.objectProp)().required,
307
+ node: (0, import_vue_ts_types.objectProp)().required,
308
+ decorations: (0, import_vue_ts_types.objectProp)().required,
309
+ selected: (0, import_vue_ts_types.booleanProp)().required,
310
+ extension: (0, import_vue_ts_types.objectProp)().required,
311
+ getPos: (0, import_vue_ts_types.functionProp)().required,
312
+ updateAttributes: (0, import_vue_ts_types.functionProp)().required,
313
+ deleteNode: (0, import_vue_ts_types.functionProp)().required
314
+ };
315
+ var VueNodeView = class extends import_core2.NodeView {
316
+ mount() {
317
+ var _a, _b;
318
+ const props = {
319
+ editor: this.editor,
320
+ node: this.node,
321
+ decorations: this.decorations,
322
+ selected: false,
323
+ extension: this.extension,
324
+ getPos: () => this.getPos(),
325
+ updateAttributes: (attributes = {}) => this.updateAttributes(attributes),
326
+ deleteNode: () => this.deleteNode()
327
+ };
328
+ const onDragStart = this.onDragStart.bind(this);
329
+ this.decorationClasses = import_vue2.default.observable({
330
+ value: this.getDecorationClasses()
331
+ });
332
+ const vue = (_b = (_a = this.editor.contentComponent) == null ? void 0 : _a.$options._base) != null ? _b : import_vue2.default;
333
+ const Component = vue.extend(this.component).extend({
334
+ props: Object.keys(props),
335
+ provide: () => {
336
+ return {
337
+ onDragStart,
338
+ decorationClasses: this.decorationClasses
318
339
  };
319
- if (typeof this.options.update === 'function') {
320
- const oldNode = this.node;
321
- const oldDecorations = this.decorations;
322
- this.node = node;
323
- this.decorations = decorations;
324
- return this.options.update({
325
- oldNode,
326
- oldDecorations,
327
- newNode: node,
328
- newDecorations: decorations,
329
- updateProps: () => updateProps({ node, decorations }),
330
- });
331
- }
332
- if (node.type !== this.node.type) {
333
- return false;
334
- }
335
- if (node === this.node && this.decorations === decorations) {
336
- return true;
337
- }
338
- this.node = node;
339
- this.decorations = decorations;
340
- updateProps({ node, decorations });
341
- return true;
340
+ }
341
+ });
342
+ this.renderer = new VueRenderer(Component, {
343
+ parent: this.editor.contentComponent,
344
+ propsData: props
345
+ });
346
+ }
347
+ get dom() {
348
+ if (!this.renderer.element.hasAttribute("data-node-view-wrapper")) {
349
+ throw Error("Please use the NodeViewWrapper component for your node view.");
342
350
  }
343
- selectNode() {
344
- this.renderer.updateProps({
345
- selected: true,
346
- });
347
- this.renderer.element.classList.add('ProseMirror-selectednode');
351
+ return this.renderer.element;
352
+ }
353
+ get contentDOM() {
354
+ if (this.node.isLeaf) {
355
+ return null;
348
356
  }
349
- deselectNode() {
350
- this.renderer.updateProps({
351
- selected: false,
352
- });
353
- this.renderer.element.classList.remove('ProseMirror-selectednode');
357
+ const contentElement = this.dom.querySelector("[data-node-view-content]");
358
+ return contentElement || this.dom;
359
+ }
360
+ update(node, decorations) {
361
+ const updateProps = (props) => {
362
+ this.decorationClasses.value = this.getDecorationClasses();
363
+ this.renderer.updateProps(props);
364
+ };
365
+ if (typeof this.options.update === "function") {
366
+ const oldNode = this.node;
367
+ const oldDecorations = this.decorations;
368
+ this.node = node;
369
+ this.decorations = decorations;
370
+ return this.options.update({
371
+ oldNode,
372
+ oldDecorations,
373
+ newNode: node,
374
+ newDecorations: decorations,
375
+ updateProps: () => updateProps({ node, decorations })
376
+ });
354
377
  }
355
- getDecorationClasses() {
356
- return (this.decorations
357
- // @ts-ignore
358
- .map(item => item.type.attrs.class)
359
- .flat()
360
- .join(' '));
378
+ if (node.type !== this.node.type) {
379
+ return false;
361
380
  }
362
- destroy() {
363
- this.renderer.destroy();
381
+ if (node === this.node && this.decorations === decorations) {
382
+ return true;
364
383
  }
365
- }
384
+ this.node = node;
385
+ this.decorations = decorations;
386
+ updateProps({ node, decorations });
387
+ return true;
388
+ }
389
+ selectNode() {
390
+ this.renderer.updateProps({
391
+ selected: true
392
+ });
393
+ this.renderer.element.classList.add("ProseMirror-selectednode");
394
+ }
395
+ deselectNode() {
396
+ this.renderer.updateProps({
397
+ selected: false
398
+ });
399
+ this.renderer.element.classList.remove("ProseMirror-selectednode");
400
+ }
401
+ getDecorationClasses() {
402
+ return this.decorations.map((item) => item.type.attrs.class).flat().join(" ");
403
+ }
404
+ destroy() {
405
+ this.renderer.destroy();
406
+ }
407
+ };
366
408
  function VueNodeViewRenderer(component, options) {
367
- return (props) => {
368
- // try to get the parent component
369
- // this is important for vue devtools to show the component hierarchy correctly
370
- // maybe it’s `undefined` because <editor-content> isn’t rendered yet
371
- if (!props.editor.contentComponent) {
372
- return {};
373
- }
374
- return new VueNodeView(component, props, options);
375
- };
409
+ return (props) => {
410
+ if (!props.editor.contentComponent) {
411
+ return {};
412
+ }
413
+ return new VueNodeView(component, props, options);
414
+ };
376
415
  }
377
416
 
378
- exports.BubbleMenu = BubbleMenu;
379
- exports.Editor = Editor;
380
- exports.EditorContent = EditorContent;
381
- exports.FloatingMenu = FloatingMenu;
382
- exports.NodeViewContent = NodeViewContent;
383
- exports.NodeViewWrapper = NodeViewWrapper;
384
- exports.VueNodeViewRenderer = VueNodeViewRenderer;
385
- exports.VueRenderer = VueRenderer;
386
- exports.nodeViewProps = nodeViewProps;
387
- Object.keys(core).forEach(function (k) {
388
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
389
- enumerable: true,
390
- get: function () { return core[k]; }
391
- });
417
+ // src/index.ts
418
+ __reExport(src_exports, require("@tiptap/core"), module.exports);
419
+ // Annotate the CommonJS export names for ESM import in node:
420
+ 0 && (module.exports = {
421
+ BubbleMenu,
422
+ Editor,
423
+ EditorContent,
424
+ FloatingMenu,
425
+ NodeViewContent,
426
+ NodeViewWrapper,
427
+ VueNodeViewRenderer,
428
+ VueRenderer,
429
+ nodeViewProps,
430
+ ...require("@tiptap/core")
392
431
  });
393
- //# sourceMappingURL=index.cjs.map
432
+ //# sourceMappingURL=index.cjs.map