@prosekit/react 0.3.9 → 0.3.11
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 +6 -62
- package/dist/prosekit-react.d.ts +3 -3
- package/dist/prosekit-react.js +48 -184
- package/package.json +6 -6
@@ -13,12 +13,9 @@ import { BlockDragHandleProps } from '@prosekit/web/block-handle';
|
|
13
13
|
import { BlockPopoverElement } from '@prosekit/web/block-handle';
|
14
14
|
import { BlockPopoverProps } from '@prosekit/web/block-handle';
|
15
15
|
import { ComponentType } from 'react';
|
16
|
-
import { Context } from 'react';
|
17
|
-
import { CoreNodeView } from '@prosemirror-adapter/core';
|
18
|
-
import type { CoreNodeViewSpec } from '@prosemirror-adapter/core';
|
19
|
-
import type { CoreNodeViewUserOptions } from '@prosemirror-adapter/core';
|
20
16
|
import type { Decoration } from '@prosekit/pm/view';
|
21
17
|
import type { DecorationSource } from '@prosekit/pm/view';
|
18
|
+
import { config as default_alias_1 } from '@prosekit/dev/config-vitest';
|
22
19
|
import { Editor } from '@prosekit/core';
|
23
20
|
import type { EditorState } from '@prosekit/pm/state';
|
24
21
|
import type { EditorView } from '@prosekit/pm/view';
|
@@ -29,8 +26,6 @@ import { HTMLAttributes } from 'react';
|
|
29
26
|
import { InlinePopoverElement } from '@prosekit/web/inline-popover';
|
30
27
|
import { InlinePopoverProps } from '@prosekit/web/inline-popover';
|
31
28
|
import { Keymap } from '@prosekit/core';
|
32
|
-
import type { Node as Node_2 } from '@prosekit/pm/model';
|
33
|
-
import type { NodeViewConstructor } from '@prosekit/pm/view';
|
34
29
|
import { Options } from 'tsup';
|
35
30
|
import { PopoverContentElement } from '@prosekit/web/popover';
|
36
31
|
import { PopoverContentProps } from '@prosekit/web/popover';
|
@@ -42,7 +37,6 @@ import { Priority } from '@prosekit/core';
|
|
42
37
|
import type { ProseMirrorNode } from '@prosekit/pm/model';
|
43
38
|
import { Provider } from 'react';
|
44
39
|
import { ReactNode } from 'react';
|
45
|
-
import { ReactPortal } from 'react';
|
46
40
|
import { RefAttributes } from 'react';
|
47
41
|
import { ResizableHandleElement } from '@prosekit/web/resizable';
|
48
42
|
import { ResizableHandleProps } from '@prosekit/web/resizable';
|
@@ -81,19 +75,9 @@ export { BlockPopover as BlockPopover_alias_1 }
|
|
81
75
|
|
82
76
|
export declare function createComponent<Props extends object, CustomElement extends HTMLElement>(tagName: string, displayName: string, defaultProps: Props): ForwardRefExoticComponent<Partial<Props> & RefAttributes<CustomElement> & HTMLAttributes<CustomElement>>;
|
83
77
|
|
84
|
-
export declare const createNodeViewContext: Context<NodeViewFactory | null>;
|
85
|
-
|
86
|
-
declare type CreateReactNodeView = ReturnType<typeof useReactNodeViewCreator>;
|
87
|
-
export { CreateReactNodeView }
|
88
|
-
export { CreateReactNodeView as CreateReactNodeView_alias_1 }
|
89
|
-
|
90
78
|
export declare const default_alias: Options | Options[] | ((overrideOptions: Options) => Options | Options[] | Promise<Options | Options[]>);
|
91
79
|
|
92
|
-
export
|
93
|
-
test: {
|
94
|
-
environment: "jsdom";
|
95
|
-
};
|
96
|
-
};
|
80
|
+
export { default_alias_1 }
|
97
81
|
|
98
82
|
/**
|
99
83
|
* Defines a node view using a React component.
|
@@ -104,11 +88,6 @@ declare function defineReactNodeView(options: ReactNodeViewOptions): Extension;
|
|
104
88
|
export { defineReactNodeView }
|
105
89
|
export { defineReactNodeView as defineReactNodeView_alias_1 }
|
106
90
|
|
107
|
-
/**
|
108
|
-
* @internal
|
109
|
-
*/
|
110
|
-
export declare function defineReactNodeViewFactory(nodeViewFactory: NodeViewFactory): Extension<any>;
|
111
|
-
|
112
91
|
/**
|
113
92
|
* @internal
|
114
93
|
*/
|
@@ -118,8 +97,6 @@ declare const InlinePopover: ForwardRefExoticComponent<Partial<InlinePopoverProp
|
|
118
97
|
export { InlinePopover }
|
119
98
|
export { InlinePopover as InlinePopover_alias_1 }
|
120
99
|
|
121
|
-
export declare type NodeViewFactory = (options: ReactNodeViewUserOptions) => NodeViewConstructor;
|
122
|
-
|
123
100
|
declare const PopoverContent: ForwardRefExoticComponent<Partial<PopoverContentProps> & RefAttributes<PopoverContentElement> & HTMLAttributes<PopoverContentElement>>;
|
124
101
|
export { PopoverContent }
|
125
102
|
export { PopoverContent as PopoverContent_alias_1 }
|
@@ -157,13 +134,6 @@ declare interface ProseKitProps {
|
|
157
134
|
export { ProseKitProps }
|
158
135
|
export { ProseKitProps as ProseKitProps_alias_1 }
|
159
136
|
|
160
|
-
export declare class ReactNodeView extends CoreNodeView<ReactNodeViewComponent> implements ReactRenderer<ReactNodeViewProps> {
|
161
|
-
key: string;
|
162
|
-
context: ReactNodeViewProps;
|
163
|
-
updateContext: () => void;
|
164
|
-
render: () => ReactPortal;
|
165
|
-
}
|
166
|
-
|
167
137
|
/**
|
168
138
|
* @public
|
169
139
|
*/
|
@@ -197,7 +167,7 @@ declare interface ReactNodeViewProps {
|
|
197
167
|
view: EditorView;
|
198
168
|
getPos: () => number | undefined;
|
199
169
|
setAttrs: (attrs: Attrs) => void;
|
200
|
-
node:
|
170
|
+
node: ProseMirrorNode;
|
201
171
|
selected: boolean;
|
202
172
|
decorations: readonly Decoration[];
|
203
173
|
innerDecorations: DecorationSource;
|
@@ -205,31 +175,11 @@ declare interface ReactNodeViewProps {
|
|
205
175
|
export { ReactNodeViewProps }
|
206
176
|
export { ReactNodeViewProps as ReactNodeViewProps_alias_1 }
|
207
177
|
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
export declare interface ReactRenderer<Context> {
|
213
|
-
key: string;
|
214
|
-
context: Context;
|
215
|
-
render: () => ReactPortal;
|
216
|
-
updateContext: () => void;
|
217
|
-
}
|
218
|
-
|
219
|
-
export declare interface ReactRendererResult {
|
220
|
-
readonly portals: Record<string, ReactPortal>;
|
221
|
-
readonly renderReactRenderer: (nodeView: ReactRenderer<unknown>, update?: boolean) => void;
|
222
|
-
readonly removeReactRenderer: (nodeView: ReactRenderer<unknown>) => void;
|
223
|
-
}
|
224
|
-
|
178
|
+
/**
|
179
|
+
* @internal
|
180
|
+
*/
|
225
181
|
export declare const ReactViewsConsumer: FC;
|
226
182
|
|
227
|
-
declare const ReactViewsProvider: FC<{
|
228
|
-
children: ReactNode;
|
229
|
-
}>;
|
230
|
-
export { ReactViewsProvider }
|
231
|
-
export { ReactViewsProvider as ReactViewsProvider_alias_1 }
|
232
|
-
|
233
183
|
declare const ResizableHandle: ForwardRefExoticComponent<Partial<ResizableHandleProps> & RefAttributes<ResizableHandleElement> & HTMLAttributes<ResizableHandleElement>>;
|
234
184
|
export { ResizableHandle }
|
235
185
|
export { ResizableHandle as ResizableHandle_alias_1 }
|
@@ -316,17 +266,11 @@ declare function useKeymap(keymap: Keymap, options?: UseExtensionOptions): void;
|
|
316
266
|
export { useKeymap }
|
317
267
|
export { useKeymap as useKeymap_alias_1 }
|
318
268
|
|
319
|
-
export declare function useNodeViewFactory(): NodeViewFactory;
|
320
|
-
|
321
269
|
/**
|
322
270
|
* @internal
|
323
271
|
*/
|
324
272
|
export declare function usePriorityExtension<T extends Extension = Extension>(extension: T | null, priority?: Priority | null): T | null;
|
325
273
|
|
326
|
-
export declare function useReactNodeViewCreator(renderReactRenderer: ReactRendererResult['renderReactRenderer'], removeReactRenderer: ReactRendererResult['removeReactRenderer']): (options: ReactNodeViewUserOptions) => NodeViewConstructor;
|
327
|
-
|
328
|
-
export declare function useReactRenderer(): ReactRendererResult;
|
329
|
-
|
330
274
|
/**
|
331
275
|
* Calls the given handler whenever the editor state changes.
|
332
276
|
*
|
package/dist/prosekit-react.d.ts
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
export { ProseKit } from './_tsup-dts-rollup';
|
2
2
|
export { ProseKitProps } from './_tsup-dts-rollup';
|
3
3
|
export { defineReactNodeView } from './_tsup-dts-rollup';
|
4
|
+
export { ReactNodeViewComponent } from './_tsup-dts-rollup';
|
4
5
|
export { ReactNodeViewOptions } from './_tsup-dts-rollup';
|
6
|
+
export { ReactNodeViewProps } 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
13
|
export { PropsWithClassName } from './_tsup-dts-rollup';
|
12
|
-
export { ReactNodeViewComponent } from './_tsup-dts-rollup';
|
13
|
-
export { ReactNodeViewProps } from './_tsup-dts-rollup';
|
package/dist/prosekit-react.js
CHANGED
@@ -5,29 +5,19 @@ import {
|
|
5
5
|
|
6
6
|
// src/components/prosekit.ts
|
7
7
|
import "@prosekit/core";
|
8
|
-
import {
|
9
|
-
|
10
|
-
// src/views/react-views-consumer.ts
|
11
|
-
import { useMemo as useMemo2 } from "react";
|
8
|
+
import { ProsemirrorAdapterProvider } from "@prosemirror-adapter/react";
|
9
|
+
import { createElement as createElement2 } from "react";
|
12
10
|
|
13
11
|
// src/extensions/react-node-view.ts
|
14
12
|
import {
|
13
|
+
defineNodeViewComponent,
|
15
14
|
defineNodeViewFactory
|
16
15
|
} from "@prosekit/core";
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
args: userOptions
|
23
|
-
});
|
24
|
-
}
|
25
|
-
function defineReactNodeViewFactory(nodeViewFactory) {
|
26
|
-
return defineNodeViewFactory({
|
27
|
-
group: "react",
|
28
|
-
factory: nodeViewFactory
|
29
|
-
});
|
30
|
-
}
|
16
|
+
import {
|
17
|
+
useNodeViewContext,
|
18
|
+
useNodeViewFactory
|
19
|
+
} from "@prosemirror-adapter/react";
|
20
|
+
import { createElement, useMemo as useMemo2 } from "react";
|
31
21
|
|
32
22
|
// src/hooks/use-extension.ts
|
33
23
|
import "@prosekit/core";
|
@@ -60,18 +50,13 @@ function useExtension(extension, options) {
|
|
60
50
|
);
|
61
51
|
}
|
62
52
|
|
63
|
-
// src/
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
if (!nodeViewFactory)
|
70
|
-
throw new ProseKitError("Cannot find node view factory context.");
|
71
|
-
return nodeViewFactory;
|
53
|
+
// src/extensions/react-node-view.ts
|
54
|
+
function withNodeViewProps(component) {
|
55
|
+
return function() {
|
56
|
+
let props = useNodeViewContext();
|
57
|
+
return createElement(component, props);
|
58
|
+
};
|
72
59
|
}
|
73
|
-
|
74
|
-
// src/views/react-views-consumer.ts
|
75
60
|
var ReactViewsConsumer = () => {
|
76
61
|
let nodeViewFactory = useNodeViewFactory(), extension = useMemo2(
|
77
62
|
() => defineReactNodeViewFactory(nodeViewFactory),
|
@@ -79,177 +64,67 @@ var ReactViewsConsumer = () => {
|
|
79
64
|
);
|
80
65
|
return useExtension(extension), null;
|
81
66
|
};
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
// src/views/node-view/use-react-node-view-creator.ts
|
87
|
-
import { useCallback } from "react";
|
88
|
-
|
89
|
-
// src/views/node-view/react-node-view.ts
|
90
|
-
import { _getId } from "@prosekit/core";
|
91
|
-
import { CoreNodeView } from "@prosemirror-adapter/core";
|
92
|
-
import { createElement } from "react";
|
93
|
-
import { createPortal } from "react-dom";
|
94
|
-
var ReactNodeView = class extends CoreNodeView {
|
95
|
-
constructor() {
|
96
|
-
super(...arguments);
|
97
|
-
this.key = _getId();
|
98
|
-
this.context = {
|
99
|
-
contentRef: (element) => {
|
100
|
-
element && this.contentDOM && element.firstChild !== this.contentDOM && element.appendChild(this.contentDOM);
|
101
|
-
},
|
102
|
-
view: this.view,
|
103
|
-
getPos: this.getPos,
|
104
|
-
setAttrs: this.setAttrs,
|
105
|
-
node: this.node,
|
106
|
-
selected: this.selected,
|
107
|
-
decorations: this.decorations,
|
108
|
-
innerDecorations: this.innerDecorations
|
109
|
-
};
|
110
|
-
this.updateContext = () => {
|
111
|
-
Object.assign(this.context, {
|
112
|
-
node: this.node,
|
113
|
-
selected: this.selected,
|
114
|
-
decorations: this.decorations,
|
115
|
-
innerDecorations: this.innerDecorations
|
116
|
-
});
|
117
|
-
};
|
118
|
-
this.render = () => {
|
119
|
-
let UserComponent = this.component;
|
120
|
-
return createPortal(
|
121
|
-
createElement(UserComponent, this.context),
|
122
|
-
this.dom,
|
123
|
-
this.key
|
124
|
-
);
|
125
|
-
};
|
126
|
-
}
|
127
|
-
};
|
128
|
-
|
129
|
-
// src/views/node-view/use-react-node-view-creator.ts
|
130
|
-
function useReactNodeViewCreator(renderReactRenderer, removeReactRenderer) {
|
131
|
-
return useCallback(
|
132
|
-
(options) => (node, view, getPos, decorations, innerDecorations) => {
|
133
|
-
let nodeView = new ReactNodeView({
|
134
|
-
node,
|
135
|
-
view,
|
136
|
-
getPos,
|
137
|
-
decorations,
|
138
|
-
innerDecorations,
|
139
|
-
options: {
|
140
|
-
...options,
|
141
|
-
onUpdate() {
|
142
|
-
var _a;
|
143
|
-
(_a = options.onUpdate) == null || _a.call(options), renderReactRenderer(nodeView);
|
144
|
-
},
|
145
|
-
selectNode() {
|
146
|
-
var _a;
|
147
|
-
(_a = options.selectNode) == null || _a.call(options), renderReactRenderer(nodeView);
|
148
|
-
},
|
149
|
-
deselectNode() {
|
150
|
-
var _a;
|
151
|
-
(_a = options.deselectNode) == null || _a.call(options), renderReactRenderer(nodeView);
|
152
|
-
},
|
153
|
-
destroy() {
|
154
|
-
var _a;
|
155
|
-
(_a = options.destroy) == null || _a.call(options), removeReactRenderer(nodeView);
|
156
|
-
}
|
157
|
-
}
|
158
|
-
});
|
159
|
-
return renderReactRenderer(nodeView, !1), nodeView;
|
160
|
-
},
|
161
|
-
[removeReactRenderer, renderReactRenderer]
|
162
|
-
);
|
163
|
-
}
|
164
|
-
|
165
|
-
// src/views/react-renderer.ts
|
166
|
-
import { useCallback as useCallback2, useEffect as useEffect2, useRef, useState } from "react";
|
167
|
-
import { flushSync } from "react-dom";
|
168
|
-
function useReactRenderer() {
|
169
|
-
let [portals, setPortals] = useState({}), mountedRef = useRef(!1);
|
170
|
-
useEffect2(() => (requestAnimationFrame(() => {
|
171
|
-
mountedRef.current = !0;
|
172
|
-
}), () => {
|
173
|
-
mountedRef.current = !1;
|
174
|
-
}), []);
|
175
|
-
let maybeFlushSync = useCallback2((fn) => {
|
176
|
-
mountedRef.current ? flushSync(fn) : fn();
|
177
|
-
}, []), renderReactRenderer = useCallback2(
|
178
|
-
(nodeView, update = !0) => {
|
179
|
-
maybeFlushSync(() => {
|
180
|
-
update && nodeView.updateContext(), setPortals((prev) => ({
|
181
|
-
...prev,
|
182
|
-
[nodeView.key]: nodeView.render()
|
183
|
-
}));
|
184
|
-
});
|
185
|
-
},
|
186
|
-
[maybeFlushSync]
|
187
|
-
), removeReactRenderer = useCallback2(
|
188
|
-
(nodeView) => {
|
189
|
-
maybeFlushSync(() => {
|
190
|
-
setPortals((prev) => {
|
191
|
-
let next = { ...prev };
|
192
|
-
return delete next[nodeView.key], next;
|
193
|
-
});
|
194
|
-
});
|
195
|
-
},
|
196
|
-
[maybeFlushSync]
|
197
|
-
);
|
198
|
-
return {
|
199
|
-
portals,
|
200
|
-
renderReactRenderer,
|
201
|
-
removeReactRenderer
|
67
|
+
function defineReactNodeView(options) {
|
68
|
+
let { name, component, ...userOptions } = options, args = {
|
69
|
+
...userOptions,
|
70
|
+
component: withNodeViewProps(component)
|
202
71
|
};
|
72
|
+
return defineNodeViewComponent({
|
73
|
+
group: "react",
|
74
|
+
name,
|
75
|
+
args
|
76
|
+
});
|
77
|
+
}
|
78
|
+
function defineReactNodeViewFactory(factory) {
|
79
|
+
return defineNodeViewFactory({
|
80
|
+
group: "react",
|
81
|
+
factory
|
82
|
+
});
|
203
83
|
}
|
204
|
-
|
205
|
-
// src/views/react-views-provider.ts
|
206
|
-
var ReactViewsProvider = ({
|
207
|
-
children
|
208
|
-
}) => {
|
209
|
-
let { renderReactRenderer, removeReactRenderer, portals } = useReactRenderer(), createReactNodeView = useReactNodeViewCreator(
|
210
|
-
renderReactRenderer,
|
211
|
-
removeReactRenderer
|
212
|
-
), memoizedPortals = useMemo3(() => Object.values(portals), [portals]);
|
213
|
-
return createElement2(
|
214
|
-
createNodeViewContext.Provider,
|
215
|
-
{ value: createReactNodeView },
|
216
|
-
children,
|
217
|
-
memoizedPortals
|
218
|
-
);
|
219
|
-
};
|
220
84
|
|
221
85
|
// src/components/prosekit.ts
|
222
86
|
var ProseKit = (props) => {
|
223
87
|
let { editor, children } = props;
|
224
|
-
return
|
225
|
-
|
88
|
+
return createElement2(
|
89
|
+
ProsemirrorAdapterProvider,
|
226
90
|
null,
|
227
|
-
|
91
|
+
createElement2(
|
228
92
|
EditorContextProvider,
|
229
93
|
{ value: editor },
|
230
|
-
|
94
|
+
createElement2(ReactViewsConsumer),
|
231
95
|
children
|
232
96
|
)
|
233
97
|
);
|
234
98
|
};
|
235
99
|
|
100
|
+
// src/hooks/use-doc-change.ts
|
101
|
+
import { defineDocChangeHandler } from "@prosekit/core";
|
102
|
+
import { useMemo as useMemo3 } from "react";
|
103
|
+
function useDocChange(handler, options) {
|
104
|
+
let extension = useMemo3(
|
105
|
+
() => defineDocChangeHandler((view) => handler(view.state.doc)),
|
106
|
+
[handler]
|
107
|
+
);
|
108
|
+
return useExtension(extension, options);
|
109
|
+
}
|
110
|
+
|
236
111
|
// src/hooks/use-editor.ts
|
237
112
|
import {
|
238
|
-
ProseKitError
|
113
|
+
ProseKitError,
|
239
114
|
defineMountHandler,
|
240
115
|
defineUpdateHandler,
|
241
116
|
union
|
242
117
|
} from "@prosekit/core";
|
243
|
-
import { useEffect as
|
118
|
+
import { useEffect as useEffect2, useReducer } from "react";
|
244
119
|
function useEditor(options) {
|
245
120
|
var _a;
|
246
121
|
let update = (_a = options == null ? void 0 : options.update) != null ? _a : !1, editor = useEditorContext();
|
247
122
|
if (!editor)
|
248
|
-
throw new
|
123
|
+
throw new ProseKitError(
|
249
124
|
"useEditor must be used within the ProseKit component"
|
250
125
|
);
|
251
126
|
let forceUpdate = useForceUpdate();
|
252
|
-
return
|
127
|
+
return useEffect2(() => {
|
253
128
|
if (update) {
|
254
129
|
let extension = union([
|
255
130
|
defineMountHandler(forceUpdate),
|
@@ -282,17 +157,6 @@ function useStateUpdate(handler, options) {
|
|
282
157
|
);
|
283
158
|
return useExtension(extension, options);
|
284
159
|
}
|
285
|
-
|
286
|
-
// src/hooks/use-doc-change.ts
|
287
|
-
import { defineDocChangeHandler } from "@prosekit/core";
|
288
|
-
import { useMemo as useMemo6 } from "react";
|
289
|
-
function useDocChange(handler, options) {
|
290
|
-
let extension = useMemo6(
|
291
|
-
() => defineDocChangeHandler((view) => handler(view.state.doc)),
|
292
|
-
[handler]
|
293
|
-
);
|
294
|
-
return useExtension(extension, options);
|
295
|
-
}
|
296
160
|
export {
|
297
161
|
ProseKit,
|
298
162
|
defineReactNodeView,
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@prosekit/react",
|
3
3
|
"type": "module",
|
4
|
-
"version": "0.3.
|
4
|
+
"version": "0.3.11",
|
5
5
|
"private": false,
|
6
6
|
"author": {
|
7
7
|
"name": "ocavue",
|
@@ -65,11 +65,11 @@
|
|
65
65
|
"dist"
|
66
66
|
],
|
67
67
|
"dependencies": {
|
68
|
-
"@prosemirror-adapter/
|
68
|
+
"@prosemirror-adapter/react": "^0.2.6",
|
69
69
|
"react-merge-refs": "^2.1.1",
|
70
|
-
"@prosekit/core": "^0.6.1",
|
71
70
|
"@prosekit/pm": "^0.1.5",
|
72
|
-
"@prosekit/
|
71
|
+
"@prosekit/core": "^0.7.1",
|
72
|
+
"@prosekit/web": "^0.2.3"
|
73
73
|
},
|
74
74
|
"peerDependencies": {
|
75
75
|
"react": ">= 18.2.0",
|
@@ -89,8 +89,8 @@
|
|
89
89
|
"react": "^18.3.1",
|
90
90
|
"react-dom": "^18.3.1",
|
91
91
|
"tsup": "^8.1.0",
|
92
|
-
"typescript": "^5.5.
|
93
|
-
"vitest": "^
|
92
|
+
"typescript": "^5.5.3",
|
93
|
+
"vitest": "^2.0.0-beta.13",
|
94
94
|
"@prosekit/dev": "0.0.0"
|
95
95
|
},
|
96
96
|
"scripts": {
|