@prosekit/vue 0.3.8 → 0.3.10
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.
- package/dist/_tsup-dts-rollup.d.ts +14 -67
- package/dist/prosekit-vue.d.ts +3 -3
- package/dist/prosekit-vue.js +56 -181
- package/package.json +7 -7
@@ -8,11 +8,9 @@ import { BlockDragHandleProps } from '@prosekit/web/block-handle';
|
|
8
8
|
import { BlockPopoverProps } from '@prosekit/web/block-handle';
|
9
9
|
import { ComponentOptionsMixin } from 'vue';
|
10
10
|
import { ComputedRef } from 'vue';
|
11
|
-
import { CoreNodeView } from '@prosemirror-adapter/core';
|
12
|
-
import type { CoreNodeViewSpec } from '@prosemirror-adapter/core';
|
13
|
-
import type { CoreNodeViewUserOptions } from '@prosemirror-adapter/core';
|
14
11
|
import type { Decoration } from '@prosekit/pm/view';
|
15
12
|
import type { DecorationSource } from '@prosekit/pm/view';
|
13
|
+
import { config as default_alias_1 } from '@prosekit/dev/config-vitest';
|
16
14
|
import { DefineComponent } from 'vue';
|
17
15
|
import { DefineSetupFnComponent } from 'vue';
|
18
16
|
import { Editor } from '@prosekit/core';
|
@@ -20,12 +18,9 @@ import type { EditorState } from '@prosekit/pm/state';
|
|
20
18
|
import type { EditorView } from '@prosekit/pm/view';
|
21
19
|
import { Extension } from '@prosekit/core';
|
22
20
|
import { ExtractPropTypes } from 'vue';
|
23
|
-
import type { InjectionKey } from 'vue';
|
24
21
|
import { InlinePopoverProps } from '@prosekit/web/inline-popover';
|
25
22
|
import { Keymap } from '@prosekit/core';
|
26
23
|
import { MaybeRefOrGetter } from 'vue';
|
27
|
-
import type { Node as Node_2 } from '@prosekit/pm/model';
|
28
|
-
import type { NodeViewConstructor } from '@prosekit/pm/view';
|
29
24
|
import { Options } from 'tsup';
|
30
25
|
import { PopoverContentProps } from '@prosekit/web/popover';
|
31
26
|
import { PopoverRootProps } from '@prosekit/web/popover';
|
@@ -33,17 +28,13 @@ import { PopoverTriggerProps } from '@prosekit/web/popover';
|
|
33
28
|
import { Priority } from '@prosekit/core';
|
34
29
|
import type { ProseMirrorNode } from '@prosekit/pm/model';
|
35
30
|
import { PublicProps } from 'vue';
|
36
|
-
import type { Ref } from 'vue';
|
37
|
-
import { RendererElement } from 'vue';
|
38
|
-
import { RendererNode } from 'vue';
|
39
31
|
import { ResizableHandleProps } from '@prosekit/web/resizable';
|
40
32
|
import { ResizableRootProps } from '@prosekit/web/resizable';
|
41
33
|
import { ShallowRef } from 'vue';
|
42
34
|
import { TooltipContentProps } from '@prosekit/web/tooltip';
|
43
35
|
import { TooltipRootProps } from '@prosekit/web/tooltip';
|
44
36
|
import { TooltipTriggerProps } from '@prosekit/web/tooltip';
|
45
|
-
import {
|
46
|
-
import type { VNodeRef } from 'vue';
|
37
|
+
import { VNodeRef } from 'vue';
|
47
38
|
|
48
39
|
declare const AutocompleteEmpty: DefineSetupFnComponent<Partial<AutocompleteEmptyProps> & {
|
49
40
|
class?: string;
|
@@ -85,15 +76,9 @@ export declare function createComponent<Props extends object>(tagName: string, d
|
|
85
76
|
class?: string;
|
86
77
|
}>;
|
87
78
|
|
88
|
-
export declare type CreateVueNodeView = ReturnType<typeof useVueNodeViewCreator>;
|
89
|
-
|
90
79
|
export declare const default_alias: Options | Options[] | ((overrideOptions: Options) => Options | Options[] | Promise<Options | Options[]>);
|
91
80
|
|
92
|
-
export
|
93
|
-
test: {
|
94
|
-
environment: "jsdom";
|
95
|
-
};
|
96
|
-
};
|
81
|
+
export { default_alias_1 }
|
97
82
|
|
98
83
|
/**
|
99
84
|
* Defines a node view using a Vue component.
|
@@ -104,21 +89,12 @@ declare function defineVueNodeView(options: VueNodeViewOptions): Extension;
|
|
104
89
|
export { defineVueNodeView }
|
105
90
|
export { defineVueNodeView as defineVueNodeView_alias_1 }
|
106
91
|
|
107
|
-
/**
|
108
|
-
* @internal
|
109
|
-
*/
|
110
|
-
export declare function defineVueNodeViewFactory(nodeViewFactory: NodeViewFactory): Extension<any>;
|
111
|
-
|
112
92
|
declare const InlinePopover: DefineSetupFnComponent<Partial<InlinePopoverProps> & {
|
113
93
|
class?: string;
|
114
94
|
}>;
|
115
95
|
export { InlinePopover }
|
116
96
|
export { InlinePopover as InlinePopover_alias_1 }
|
117
97
|
|
118
|
-
export declare type NodeViewFactory = (options: VueNodeViewUserOptions) => NodeViewConstructor;
|
119
|
-
|
120
|
-
export declare const nodeViewFactoryKey: InjectionKey<NodeViewFactory>;
|
121
|
-
|
122
98
|
declare const PopoverContent: DefineSetupFnComponent<Partial<PopoverContentProps> & {
|
123
99
|
class?: string;
|
124
100
|
}>;
|
@@ -262,8 +238,6 @@ declare function useKeymap(keymap: MaybeRefOrGetter<Keymap>, options?: UseExtens
|
|
262
238
|
export { useKeymap }
|
263
239
|
export { useKeymap as useKeymap_alias_1 }
|
264
240
|
|
265
|
-
export declare function useNodeViewFactory(): NodeViewFactory;
|
266
|
-
|
267
241
|
/**
|
268
242
|
* @internal
|
269
243
|
*/
|
@@ -278,17 +252,9 @@ declare function useStateUpdate(handler: (state: EditorState) => void, options?:
|
|
278
252
|
export { useStateUpdate }
|
279
253
|
export { useStateUpdate as useStateUpdate_alias_1 }
|
280
254
|
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
export declare class VueNodeView extends CoreNodeView<VueNodeViewComponent> implements VueRenderer<VueNodeViewProps> {
|
286
|
-
key: string;
|
287
|
-
context: VueNodeViewProps;
|
288
|
-
updateContext: () => void;
|
289
|
-
render: () => VueRendererComponent;
|
290
|
-
}
|
291
|
-
|
255
|
+
/**
|
256
|
+
* @public
|
257
|
+
*/
|
292
258
|
declare type VueNodeViewComponent = DefineComponent<VueNodeViewProps, any, any>;
|
293
259
|
export { VueNodeViewComponent }
|
294
260
|
export { VueNodeViewComponent as VueNodeViewComponent_alias_1 }
|
@@ -311,12 +277,15 @@ declare interface VueNodeViewOptions extends BaseNodeViewOptions {
|
|
311
277
|
export { VueNodeViewOptions }
|
312
278
|
export { VueNodeViewOptions as VueNodeViewOptions_alias_1 }
|
313
279
|
|
280
|
+
/**
|
281
|
+
* @public
|
282
|
+
*/
|
314
283
|
declare interface VueNodeViewProps {
|
315
284
|
contentRef: VNodeRef;
|
316
285
|
view: EditorView;
|
317
286
|
getPos: () => number | undefined;
|
318
287
|
setAttrs: (attrs: Attrs) => void;
|
319
|
-
node: ShallowRef<
|
288
|
+
node: ShallowRef<ProseMirrorNode>;
|
320
289
|
selected: ShallowRef<boolean>;
|
321
290
|
decorations: ShallowRef<readonly Decoration[]>;
|
322
291
|
innerDecorations: ShallowRef<DecorationSource>;
|
@@ -324,31 +293,9 @@ declare interface VueNodeViewProps {
|
|
324
293
|
export { VueNodeViewProps }
|
325
294
|
export { VueNodeViewProps as VueNodeViewProps_alias_1 }
|
326
295
|
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
export declare interface VueRenderer<Context> {
|
332
|
-
key: string;
|
333
|
-
context: Context;
|
334
|
-
render: () => VueRendererComponent;
|
335
|
-
updateContext: () => void;
|
336
|
-
}
|
337
|
-
|
338
|
-
export declare type VueRendererComponent = DefineComponent<any, any, any>;
|
339
|
-
|
340
|
-
export declare interface VueRendererResult {
|
341
|
-
readonly portals: Ref<Record<string, VueRendererComponent>>;
|
342
|
-
readonly renderVueRenderer: (renderer: VueRenderer<unknown>) => void;
|
343
|
-
readonly removeVueRenderer: (renderer: VueRenderer<unknown>) => void;
|
344
|
-
}
|
345
|
-
|
346
|
-
export declare const VueViewsConsumer: DefineComponent< {}, () => null, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {}>>, {}, {}>;
|
347
|
-
|
348
|
-
declare const VueViewsProvider: DefineComponent< {}, () => VNode<RendererNode, RendererElement, {
|
349
|
-
[key: string]: any;
|
350
|
-
}>, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {}>>, {}, {}>;
|
351
|
-
export { VueViewsProvider }
|
352
|
-
export { VueViewsProvider as VueViewsProvider_alias_1 }
|
296
|
+
/**
|
297
|
+
* @internal
|
298
|
+
*/
|
299
|
+
export declare const VueViewsConsumer: DefineComponent<{}, () => null, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {}>>, {}, {}>;
|
353
300
|
|
354
301
|
export { }
|
package/dist/prosekit-vue.d.ts
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
export { ProseKit } from './_tsup-dts-rollup';
|
2
2
|
export { ProseKitProps } from './_tsup-dts-rollup';
|
3
3
|
export { defineVueNodeView } from './_tsup-dts-rollup';
|
4
|
+
export { VueNodeViewComponent } from './_tsup-dts-rollup';
|
4
5
|
export { VueNodeViewOptions } from './_tsup-dts-rollup';
|
6
|
+
export { VueNodeViewProps } from './_tsup-dts-rollup';
|
7
|
+
export { useDocChange } from './_tsup-dts-rollup';
|
5
8
|
export { useEditor } from './_tsup-dts-rollup';
|
6
9
|
export { useExtension } from './_tsup-dts-rollup';
|
7
10
|
export { UseExtensionOptions } from './_tsup-dts-rollup';
|
8
11
|
export { useKeymap } from './_tsup-dts-rollup';
|
9
12
|
export { useStateUpdate } from './_tsup-dts-rollup';
|
10
|
-
export { useDocChange } from './_tsup-dts-rollup';
|
11
|
-
export { VueNodeViewComponent } from './_tsup-dts-rollup';
|
12
|
-
export { VueNodeViewProps } from './_tsup-dts-rollup';
|
package/dist/prosekit-vue.js
CHANGED
@@ -5,174 +5,23 @@ import {
|
|
5
5
|
|
6
6
|
// src/components/prosekit.ts
|
7
7
|
import "@prosekit/core";
|
8
|
-
import {
|
9
|
-
|
10
|
-
// src/views/vue-views-provider.ts
|
11
|
-
import { Fragment, defineComponent as defineComponent2, h as h2, provide } from "vue";
|
12
|
-
|
13
|
-
// src/views/node-view/node-view-context.ts
|
14
|
-
import { ProseKitError } from "@prosekit/core";
|
15
|
-
import { inject } from "vue";
|
16
|
-
var nodeViewFactoryKey = Symbol(
|
17
|
-
"[ProseKit]useNodeViewFactory"
|
18
|
-
);
|
19
|
-
function useNodeViewFactory() {
|
20
|
-
let nodeViewFactory = inject(nodeViewFactoryKey);
|
21
|
-
if (!nodeViewFactory)
|
22
|
-
throw new ProseKitError("Cannot find node view factory context.");
|
23
|
-
return nodeViewFactory;
|
24
|
-
}
|
25
|
-
|
26
|
-
// src/views/node-view/vue-node-view.ts
|
27
|
-
import { _getId } from "@prosekit/core";
|
28
|
-
import { CoreNodeView } from "@prosemirror-adapter/core";
|
29
|
-
import { Teleport, defineComponent, h, markRaw, shallowRef } from "vue";
|
30
|
-
var VueNodeView = class extends CoreNodeView {
|
31
|
-
constructor() {
|
32
|
-
super(...arguments);
|
33
|
-
this.key = _getId();
|
34
|
-
this.context = {
|
35
|
-
contentRef: (element) => {
|
36
|
-
element && element instanceof HTMLElement && this.contentDOM && element.firstChild !== this.contentDOM && element.appendChild(this.contentDOM);
|
37
|
-
},
|
38
|
-
view: this.view,
|
39
|
-
getPos: this.getPos,
|
40
|
-
setAttrs: this.setAttrs,
|
41
|
-
node: shallowRef(this.node),
|
42
|
-
selected: shallowRef(this.selected),
|
43
|
-
decorations: shallowRef(this.decorations),
|
44
|
-
innerDecorations: shallowRef(this.innerDecorations)
|
45
|
-
};
|
46
|
-
this.updateContext = () => {
|
47
|
-
Object.entries({
|
48
|
-
node: this.node,
|
49
|
-
selected: this.selected,
|
50
|
-
decorations: this.decorations,
|
51
|
-
innerDecorations: this.innerDecorations
|
52
|
-
}).forEach(([key, value]) => {
|
53
|
-
let prev = this.context[key];
|
54
|
-
prev.value !== value && (prev.value = value);
|
55
|
-
});
|
56
|
-
};
|
57
|
-
this.render = () => {
|
58
|
-
let UserComponent = this.component;
|
59
|
-
return markRaw(
|
60
|
-
defineComponent({
|
61
|
-
name: "ProsemirrorNodeView",
|
62
|
-
setup: () => () => h(
|
63
|
-
Teleport,
|
64
|
-
{
|
65
|
-
key: this.key,
|
66
|
-
to: this.dom
|
67
|
-
},
|
68
|
-
h(UserComponent, this.context)
|
69
|
-
)
|
70
|
-
})
|
71
|
-
);
|
72
|
-
};
|
73
|
-
}
|
74
|
-
};
|
75
|
-
|
76
|
-
// src/views/node-view/use-vue-node-view-creator.ts
|
77
|
-
function useVueNodeViewCreator(renderVueRenderer, removeVueRenderer) {
|
78
|
-
return (options) => (node, view, getPos, decorations, innerDecorations) => {
|
79
|
-
let nodeView = new VueNodeView({
|
80
|
-
node,
|
81
|
-
view,
|
82
|
-
getPos,
|
83
|
-
decorations,
|
84
|
-
innerDecorations,
|
85
|
-
options: {
|
86
|
-
...options,
|
87
|
-
onUpdate() {
|
88
|
-
var _a;
|
89
|
-
(_a = options.onUpdate) == null || _a.call(options), nodeView.updateContext();
|
90
|
-
},
|
91
|
-
selectNode() {
|
92
|
-
var _a;
|
93
|
-
(_a = options.selectNode) == null || _a.call(options), nodeView.updateContext();
|
94
|
-
},
|
95
|
-
deselectNode() {
|
96
|
-
var _a;
|
97
|
-
(_a = options.deselectNode) == null || _a.call(options), nodeView.updateContext();
|
98
|
-
},
|
99
|
-
destroy() {
|
100
|
-
var _a;
|
101
|
-
(_a = options.destroy) == null || _a.call(options), removeVueRenderer(nodeView);
|
102
|
-
}
|
103
|
-
}
|
104
|
-
});
|
105
|
-
return renderVueRenderer(nodeView), nodeView;
|
106
|
-
};
|
107
|
-
}
|
108
|
-
|
109
|
-
// src/views/vue-renderer.ts
|
110
|
-
import {
|
111
|
-
getCurrentInstance,
|
112
|
-
markRaw as markRaw2,
|
113
|
-
onBeforeMount,
|
114
|
-
onUnmounted,
|
115
|
-
ref
|
116
|
-
} from "vue";
|
117
|
-
function useVueRenderer() {
|
118
|
-
let portals = ref({}), instance = getCurrentInstance(), update = markRaw2({});
|
119
|
-
return onBeforeMount(() => {
|
120
|
-
update.updater = () => {
|
121
|
-
instance == null || instance.update();
|
122
|
-
};
|
123
|
-
}), onUnmounted(() => {
|
124
|
-
update.updater = void 0;
|
125
|
-
}), {
|
126
|
-
portals,
|
127
|
-
renderVueRenderer: (renderer) => {
|
128
|
-
var _a;
|
129
|
-
portals.value[renderer.key] = renderer.render(), (_a = update.updater) == null || _a.call(update);
|
130
|
-
},
|
131
|
-
removeVueRenderer: (renderer) => {
|
132
|
-
delete portals.value[renderer.key];
|
133
|
-
}
|
134
|
-
};
|
135
|
-
}
|
136
|
-
|
137
|
-
// src/views/vue-views-provider.ts
|
138
|
-
var VueViewsProvider = defineComponent2({
|
139
|
-
name: "VueViewsProvider",
|
140
|
-
setup: (_, { slots }) => {
|
141
|
-
let { portals, renderVueRenderer, removeVueRenderer } = useVueRenderer(), createVueNodeView = useVueNodeViewCreator(
|
142
|
-
renderVueRenderer,
|
143
|
-
removeVueRenderer
|
144
|
-
);
|
145
|
-
return provide(nodeViewFactoryKey, createVueNodeView), () => {
|
146
|
-
var _a;
|
147
|
-
return h2(Fragment, null, [
|
148
|
-
(_a = slots.default) == null ? void 0 : _a.call(slots),
|
149
|
-
Object.values(portals.value).map((x) => h2(x))
|
150
|
-
]);
|
151
|
-
};
|
152
|
-
}
|
153
|
-
});
|
154
|
-
|
155
|
-
// src/views/vue-views-comsumer.ts
|
156
|
-
import { computed as computed2, defineComponent as defineComponent3 } from "vue";
|
8
|
+
import { ProsemirrorAdapterProvider } from "@prosemirror-adapter/vue";
|
9
|
+
import { defineComponent as defineComponent2, h as h2 } from "vue";
|
157
10
|
|
158
11
|
// src/extensions/vue-node-view.ts
|
159
12
|
import {
|
13
|
+
defineNodeViewComponent,
|
160
14
|
defineNodeViewFactory
|
161
15
|
} from "@prosekit/core";
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
return defineNodeViewFactory({
|
172
|
-
group: "vue",
|
173
|
-
factory: nodeViewFactory
|
174
|
-
});
|
175
|
-
}
|
16
|
+
import {
|
17
|
+
useNodeViewContext,
|
18
|
+
useNodeViewFactory
|
19
|
+
} from "@prosemirror-adapter/vue";
|
20
|
+
import {
|
21
|
+
computed as computed2,
|
22
|
+
defineComponent,
|
23
|
+
h
|
24
|
+
} from "vue";
|
176
25
|
|
177
26
|
// src/hooks/use-extension.ts
|
178
27
|
import "@prosekit/core";
|
@@ -209,54 +58,87 @@ function useExtension(extension, options) {
|
|
209
58
|
);
|
210
59
|
}
|
211
60
|
|
212
|
-
// src/
|
213
|
-
|
61
|
+
// src/extensions/vue-node-view.ts
|
62
|
+
function withNodeViewProps(component) {
|
63
|
+
return defineComponent({
|
64
|
+
name: "NodeViewPropsWrapper",
|
65
|
+
setup: () => {
|
66
|
+
let props = useNodeViewContext();
|
67
|
+
return () => h(component, props);
|
68
|
+
}
|
69
|
+
});
|
70
|
+
}
|
71
|
+
var VueViewsConsumer = /* @__PURE__ */ defineComponent({
|
214
72
|
name: "VueViewsConsumer",
|
215
73
|
setup: () => {
|
216
74
|
let nodeViewFactory = useNodeViewFactory(), extension = computed2(() => defineVueNodeViewFactory(nodeViewFactory));
|
217
75
|
return useExtension(extension), () => null;
|
218
76
|
}
|
219
77
|
});
|
78
|
+
function defineVueNodeView(options) {
|
79
|
+
let { name, component, ...userOptions } = options, args = {
|
80
|
+
...userOptions,
|
81
|
+
component: withNodeViewProps(component)
|
82
|
+
};
|
83
|
+
return defineNodeViewComponent({
|
84
|
+
group: "vue",
|
85
|
+
name,
|
86
|
+
args
|
87
|
+
});
|
88
|
+
}
|
89
|
+
function defineVueNodeViewFactory(factory) {
|
90
|
+
return defineNodeViewFactory({
|
91
|
+
group: "vue",
|
92
|
+
factory
|
93
|
+
});
|
94
|
+
}
|
220
95
|
|
221
96
|
// src/components/prosekit.ts
|
222
|
-
var ProseKit =
|
223
|
-
(props, { slots }) => (provideEditor(props.editor), () =>
|
97
|
+
var ProseKit = defineComponent2(
|
98
|
+
(props, { slots }) => (provideEditor(props.editor), () => h2(ProsemirrorAdapterProvider, null, () => {
|
224
99
|
var _a;
|
225
100
|
return [
|
226
|
-
|
101
|
+
h2(VueViewsConsumer),
|
227
102
|
(_a = slots.default) == null ? void 0 : _a.call(slots)
|
228
103
|
];
|
229
104
|
})),
|
230
105
|
{ props: ["editor"] }
|
231
106
|
);
|
232
107
|
|
108
|
+
// src/hooks/use-doc-change.ts
|
109
|
+
import { defineDocChangeHandler } from "@prosekit/core";
|
110
|
+
function useDocChange(handler, options) {
|
111
|
+
let extension = defineDocChangeHandler((view) => handler(view.state.doc));
|
112
|
+
return useExtension(extension, options);
|
113
|
+
}
|
114
|
+
|
233
115
|
// src/hooks/use-editor.ts
|
234
116
|
import {
|
235
|
-
ProseKitError
|
117
|
+
ProseKitError,
|
236
118
|
defineMountHandler,
|
237
119
|
defineUpdateHandler,
|
238
120
|
union
|
239
121
|
} from "@prosekit/core";
|
240
122
|
import {
|
241
123
|
onMounted,
|
242
|
-
onUnmounted
|
243
|
-
shallowRef
|
124
|
+
onUnmounted,
|
125
|
+
shallowRef,
|
244
126
|
triggerRef
|
245
127
|
} from "vue";
|
246
128
|
function useEditor(options) {
|
247
129
|
var _a;
|
248
130
|
let update = (_a = options == null ? void 0 : options.update) != null ? _a : !1, editor = useEditorContext();
|
249
131
|
if (!editor)
|
250
|
-
throw new
|
132
|
+
throw new ProseKitError(
|
251
133
|
"useEditor must be used within the ProseKit component"
|
252
134
|
);
|
253
|
-
let editorRef =
|
135
|
+
let editorRef = shallowRef(editor);
|
254
136
|
return update && onMounted(() => {
|
255
137
|
let forceUpdate = () => triggerRef(editorRef), extension = union([
|
256
138
|
defineMountHandler(forceUpdate),
|
257
139
|
defineUpdateHandler(forceUpdate)
|
258
140
|
]), dispose = editor.use(extension);
|
259
|
-
|
141
|
+
onUnmounted(dispose);
|
260
142
|
}), editorRef;
|
261
143
|
}
|
262
144
|
|
@@ -274,13 +156,6 @@ function useStateUpdate(handler, options) {
|
|
274
156
|
let extension = defineUpdateHandler2((view) => handler(view.state));
|
275
157
|
return useExtension(extension, options);
|
276
158
|
}
|
277
|
-
|
278
|
-
// src/hooks/use-doc-change.ts
|
279
|
-
import { defineDocChangeHandler } from "@prosekit/core";
|
280
|
-
function useDocChange(handler, options) {
|
281
|
-
let extension = defineDocChangeHandler((view) => handler(view.state.doc));
|
282
|
-
return useExtension(extension, options);
|
283
|
-
}
|
284
159
|
export {
|
285
160
|
ProseKit,
|
286
161
|
defineVueNodeView,
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@prosekit/vue",
|
3
3
|
"type": "module",
|
4
|
-
"version": "0.3.
|
4
|
+
"version": "0.3.10",
|
5
5
|
"private": false,
|
6
6
|
"author": {
|
7
7
|
"name": "ocavue",
|
@@ -65,10 +65,10 @@
|
|
65
65
|
"dist"
|
66
66
|
],
|
67
67
|
"dependencies": {
|
68
|
-
"@prosemirror-adapter/
|
69
|
-
"@prosekit/core": "^0.
|
68
|
+
"@prosemirror-adapter/vue": "^0.2.6",
|
69
|
+
"@prosekit/core": "^0.7.1",
|
70
70
|
"@prosekit/pm": "^0.1.5",
|
71
|
-
"@prosekit/web": "^0.2.
|
71
|
+
"@prosekit/web": "^0.2.3"
|
72
72
|
},
|
73
73
|
"peerDependencies": {
|
74
74
|
"vue": ">= 3.0.0"
|
@@ -81,9 +81,9 @@
|
|
81
81
|
"devDependencies": {
|
82
82
|
"@vue/test-utils": "^2.4.6",
|
83
83
|
"tsup": "^8.1.0",
|
84
|
-
"typescript": "^5.5.
|
85
|
-
"vitest": "^
|
86
|
-
"vue": "^3.4.
|
84
|
+
"typescript": "^5.5.3",
|
85
|
+
"vitest": "^2.0.0-beta.13",
|
86
|
+
"vue": "^3.4.31",
|
87
87
|
"@prosekit/dev": "0.0.0"
|
88
88
|
},
|
89
89
|
"scripts": {
|