@prosekit/react 0.0.0-next-20230627094841 → 0.0.2
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/prosekit-react-components-menu-item.d.ts +6 -0
- package/dist/prosekit-react-components-menu.d.ts +16 -0
- package/dist/prosekit-react-components-popover-suggestion.d.ts +16 -0
- package/dist/prosekit-react-components-popover.d.ts +6 -0
- package/dist/prosekit-react.d.ts +21 -0
- package/dist/prosekit-react.js +20 -64
- package/package.json +6 -6
- package/dist/prosekit-react-components-popover-slash.js +0 -27
- package/dist/prosekit-react-components-popover-suggestion-consumer.js +0 -13
- package/dist/prosekit-react-components-popover2.js +0 -13
- package/dist/prosekit-react-components-slash-popover.js +0 -13
@@ -0,0 +1,16 @@
|
|
1
|
+
import { Editor } from '@prosekit/core';
|
2
|
+
import { Menu as Menu$1 } from '@prosekit/lit/elements/menu';
|
3
|
+
import { ComponentType, ForwardedRef, ReactNode } from 'react';
|
4
|
+
|
5
|
+
/**
|
6
|
+
* @module @prosekit/react/components/menu
|
7
|
+
*/
|
8
|
+
|
9
|
+
declare const Menu: ComponentType<{
|
10
|
+
editor?: Editor;
|
11
|
+
ref?: ForwardedRef<Menu$1>;
|
12
|
+
children?: ReactNode | undefined;
|
13
|
+
className?: string;
|
14
|
+
}>;
|
15
|
+
|
16
|
+
export { Menu };
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { Editor } from '@prosekit/core';
|
2
|
+
import { PredictionRule, PopoverSuggestionContext } from '@prosekit/lit/elements/popover-suggestion';
|
3
|
+
export { PopoverSuggestionContext, PredictionRule } from '@prosekit/lit/elements/popover-suggestion';
|
4
|
+
import React, { FC } from 'react';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* @module @prosekit/react/components/popover-slash
|
8
|
+
*/
|
9
|
+
|
10
|
+
declare const PopoverSuggestion: FC<{
|
11
|
+
editor: Editor;
|
12
|
+
rules: PredictionRule[];
|
13
|
+
render: (context: PopoverSuggestionContext) => React.ReactNode;
|
14
|
+
}>;
|
15
|
+
|
16
|
+
export { PopoverSuggestion };
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { Editor, Extension, Keymap } from '@prosekit/core';
|
2
|
+
import React, { ComponentType } from 'react';
|
3
|
+
|
4
|
+
interface ProseKitProps {
|
5
|
+
editor: Editor;
|
6
|
+
children?: React.ReactNode;
|
7
|
+
}
|
8
|
+
declare const ProseKit: ComponentType<ProseKitProps>;
|
9
|
+
|
10
|
+
declare function useEditor<E extends Extension = any>(): Editor<E>;
|
11
|
+
|
12
|
+
interface UseExtensionProps<T extends Extension = Extension> {
|
13
|
+
extension: T;
|
14
|
+
}
|
15
|
+
declare function useExtension({ extension }: UseExtensionProps): void;
|
16
|
+
|
17
|
+
declare function useKeymap({ keymap }: {
|
18
|
+
keymap: Keymap;
|
19
|
+
}): void;
|
20
|
+
|
21
|
+
export { ProseKit, ProseKitProps, useEditor, useExtension, useKeymap };
|
package/dist/prosekit-react.js
CHANGED
@@ -1,88 +1,44 @@
|
|
1
|
-
// src/components/prosekit.tsx
|
2
|
-
import { ProseKitError as ProseKitError2, createEditor } from "@prosekit/core";
|
3
|
-
import { useEffect, useMemo } from "react";
|
4
|
-
|
5
1
|
// src/contexts/editor-context.tsx
|
6
|
-
import {
|
7
|
-
|
8
|
-
import { jsxDEV } from "react/jsx-dev-runtime";
|
9
|
-
var context = createContext(null);
|
10
|
-
var EditorContextProvider = ({
|
11
|
-
value,
|
12
|
-
children
|
13
|
-
}) => {
|
14
|
-
return /* @__PURE__ */ jsxDEV(context.Provider, { value, children }, void 0, false, {
|
15
|
-
fileName: "src/contexts/editor-context.tsx",
|
16
|
-
lineNumber: 19,
|
17
|
-
columnNumber: 10
|
18
|
-
}, this);
|
19
|
-
};
|
20
|
-
function useEditorContext() {
|
21
|
-
const value = useContext(context);
|
22
|
-
if (!value) {
|
23
|
-
throw new ProseKitError(
|
24
|
-
"useEditorContext must be used within the ProseKit component"
|
25
|
-
);
|
26
|
-
}
|
27
|
-
return value;
|
28
|
-
}
|
2
|
+
import { createContext } from "react";
|
3
|
+
var editorContext = createContext(null);
|
29
4
|
|
30
5
|
// src/components/prosekit.tsx
|
31
|
-
import { jsxDEV
|
6
|
+
import { jsxDEV } from "react/jsx-dev-runtime";
|
32
7
|
var ProseKit = (props) => {
|
33
|
-
const
|
34
|
-
|
35
|
-
useEffect(() => {
|
36
|
-
if (place) {
|
37
|
-
editor.mount(place);
|
38
|
-
} else if (editor.mounted) {
|
39
|
-
editor.unmount();
|
40
|
-
}
|
41
|
-
}, [editor, place]);
|
42
|
-
return /* @__PURE__ */ jsxDEV2(EditorContextProvider, { value: { editor }, children: props.children }, void 0, false, {
|
8
|
+
const editor = props.editor;
|
9
|
+
return /* @__PURE__ */ jsxDEV(EditorContextProvider, { value: { editor }, children: props.children }, void 0, false, {
|
43
10
|
fileName: "src/components/prosekit.tsx",
|
44
|
-
lineNumber:
|
11
|
+
lineNumber: 15,
|
45
12
|
columnNumber: 5
|
46
13
|
}, this);
|
47
14
|
};
|
48
|
-
|
49
|
-
return useMemo(() => {
|
50
|
-
if (editor) {
|
51
|
-
if (extension) {
|
52
|
-
throw new ProseKitError2(
|
53
|
-
"You can't pass both an editor and an extension to ProseKit"
|
54
|
-
);
|
55
|
-
}
|
56
|
-
return editor;
|
57
|
-
} else {
|
58
|
-
if (extension) {
|
59
|
-
return createEditor({ extension });
|
60
|
-
} else {
|
61
|
-
throw new ProseKitError2(
|
62
|
-
"You must pass either an editor or an extension to ProseKit"
|
63
|
-
);
|
64
|
-
}
|
65
|
-
}
|
66
|
-
}, [editor, extension]);
|
67
|
-
}
|
15
|
+
var EditorContextProvider = editorContext.Provider;
|
68
16
|
|
69
17
|
// src/hooks/use-editor.ts
|
18
|
+
import { ProseKitError } from "@prosekit/core";
|
19
|
+
import { useContext } from "react";
|
70
20
|
function useEditor() {
|
71
|
-
|
21
|
+
const value = useContext(editorContext);
|
22
|
+
if (!value) {
|
23
|
+
throw new ProseKitError(
|
24
|
+
"useEditor must be used within the ProseKit component"
|
25
|
+
);
|
26
|
+
}
|
27
|
+
return value.editor;
|
72
28
|
}
|
73
29
|
|
74
30
|
// src/hooks/use-extension.ts
|
75
|
-
import { useEffect
|
31
|
+
import { useEffect } from "react";
|
76
32
|
function useExtension({ extension }) {
|
77
33
|
const editor = useEditor();
|
78
|
-
|
34
|
+
useEffect(() => editor.use(extension), [editor, extension]);
|
79
35
|
}
|
80
36
|
|
81
37
|
// src/hooks/use-keymap.ts
|
82
38
|
import { addKeymap } from "@prosekit/core";
|
83
|
-
import { useMemo
|
39
|
+
import { useMemo } from "react";
|
84
40
|
function useKeymap({ keymap }) {
|
85
|
-
const extension =
|
41
|
+
const extension = useMemo(() => addKeymap(keymap), [keymap]);
|
86
42
|
useExtension({ extension });
|
87
43
|
}
|
88
44
|
export {
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@prosekit/react",
|
3
3
|
"type": "module",
|
4
|
-
"version": "0.0.
|
4
|
+
"version": "0.0.2",
|
5
5
|
"private": false,
|
6
6
|
"author": {
|
7
7
|
"name": "ocavue",
|
@@ -56,8 +56,8 @@
|
|
56
56
|
],
|
57
57
|
"dependencies": {
|
58
58
|
"@lit-labs/react": "latest",
|
59
|
-
"@prosekit/core": "0.0.
|
60
|
-
"@prosekit/lit": "0.0.
|
59
|
+
"@prosekit/core": "^0.0.2",
|
60
|
+
"@prosekit/lit": "^0.0.2"
|
61
61
|
},
|
62
62
|
"peerDependencies": {
|
63
63
|
"react": ">= 17.0.0",
|
@@ -72,14 +72,14 @@
|
|
72
72
|
}
|
73
73
|
},
|
74
74
|
"devDependencies": {
|
75
|
+
"@prosekit/dev": "*",
|
75
76
|
"@types/react": "^18.2.14",
|
76
77
|
"@types/react-dom": "^18.2.6",
|
77
78
|
"react": "^18.2.0",
|
78
79
|
"react-dom": "^18.2.0",
|
79
80
|
"tsup": "^7.1.0",
|
80
|
-
"typescript": "^5.1.
|
81
|
-
"vitest": "^0.
|
82
|
-
"@prosekit/dev": "0.0.0"
|
81
|
+
"typescript": "^5.1.6",
|
82
|
+
"vitest": "^0.33.0"
|
83
83
|
},
|
84
84
|
"scripts": {
|
85
85
|
"build:tsup": "tsup",
|
@@ -1,27 +0,0 @@
|
|
1
|
-
// src/components/popover-slash.tsx
|
2
|
-
import { useState } from "react";
|
3
|
-
|
4
|
-
// src/components/popover-slash.gen.ts
|
5
|
-
import { createComponent } from "@lit-labs/react";
|
6
|
-
import { PopoverSlash as PopoverSlashElement } from "@prosekit/lit/elements/popover-slash";
|
7
|
-
import React from "react";
|
8
|
-
var PopoverSlash = createComponent({
|
9
|
-
tagName: "prosekit-popover-slash",
|
10
|
-
elementClass: PopoverSlashElement,
|
11
|
-
react: React,
|
12
|
-
displayName: "PopoverSlash"
|
13
|
-
});
|
14
|
-
|
15
|
-
// src/components/popover-slash.tsx
|
16
|
-
import { jsxDEV } from "react/jsx-dev-runtime";
|
17
|
-
var PopoverSlash2 = ({ render, editor }) => {
|
18
|
-
const [context, setContext] = useState(null);
|
19
|
-
return /* @__PURE__ */ jsxDEV(PopoverSlash, { editor, onContext: setContext, children: context ? render(context) : null }, void 0, false, {
|
20
|
-
fileName: "src/components/popover-slash.tsx",
|
21
|
-
lineNumber: 17,
|
22
|
-
columnNumber: 5
|
23
|
-
}, this);
|
24
|
-
};
|
25
|
-
export {
|
26
|
-
PopoverSlash2 as PopoverSlash
|
27
|
-
};
|
@@ -1,13 +0,0 @@
|
|
1
|
-
// src/components/popover-suggestion-consumer.gen.ts
|
2
|
-
import { createComponent } from "@lit-labs/react";
|
3
|
-
import { PopoverSuggestionConsumer as PopoverSuggestionConsumerElement } from "@prosekit/lit/elements/popover-suggestion-consumer";
|
4
|
-
import React from "react";
|
5
|
-
var PopoverSuggestionConsumer = createComponent({
|
6
|
-
tagName: "prosekit-popover-suggestion-consumer",
|
7
|
-
elementClass: PopoverSuggestionConsumerElement,
|
8
|
-
react: React,
|
9
|
-
displayName: "PopoverSuggestionConsumer"
|
10
|
-
});
|
11
|
-
export {
|
12
|
-
PopoverSuggestionConsumer
|
13
|
-
};
|
@@ -1,13 +0,0 @@
|
|
1
|
-
// src/components/popover2.gen.ts
|
2
|
-
import { createComponent } from "@lit-labs/react";
|
3
|
-
import { Popover2 as Popover2Element } from "@prosekit/lit/elements/popover2";
|
4
|
-
import React from "react";
|
5
|
-
var Popover2 = createComponent({
|
6
|
-
tagName: "prosekit-popover2",
|
7
|
-
elementClass: Popover2Element,
|
8
|
-
react: React,
|
9
|
-
displayName: "Popover2"
|
10
|
-
});
|
11
|
-
export {
|
12
|
-
Popover2
|
13
|
-
};
|
@@ -1,13 +0,0 @@
|
|
1
|
-
// src/components/slash-popover.gen.ts
|
2
|
-
import { createComponent } from "@lit-labs/react";
|
3
|
-
import { SlashPopover as SlashPopoverElement } from "@prosekit/lit/elements/slash-popover";
|
4
|
-
import React from "react";
|
5
|
-
var SlashPopover = createComponent({
|
6
|
-
tagName: "prosekit-slash-popover",
|
7
|
-
elementClass: SlashPopoverElement,
|
8
|
-
react: React,
|
9
|
-
displayName: "SlashPopover"
|
10
|
-
});
|
11
|
-
export {
|
12
|
-
SlashPopover
|
13
|
-
};
|