@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.
@@ -0,0 +1,6 @@
1
+ import * as _lit_labs_react from '@lit-labs/react';
2
+ import { MenuItem as MenuItem$1 } from '@prosekit/lit/elements/menu-item';
3
+
4
+ declare const MenuItem: _lit_labs_react.ReactWebComponent<MenuItem$1, {}>;
5
+
6
+ export { MenuItem };
@@ -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,6 @@
1
+ import * as _lit_labs_react from '@lit-labs/react';
2
+ import { Popover as Popover$1 } from '@prosekit/lit/elements/popover';
3
+
4
+ declare const Popover: _lit_labs_react.ReactWebComponent<Popover$1, {}>;
5
+
6
+ export { Popover };
@@ -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 };
@@ -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 { ProseKitError } from "@prosekit/core";
7
- import { createContext, useContext } from "react";
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 as jsxDEV2 } from "react/jsx-dev-runtime";
6
+ import { jsxDEV } from "react/jsx-dev-runtime";
32
7
  var ProseKit = (props) => {
33
- const place = props.place;
34
- const editor = useEditorMemo(props.editor, props.extension);
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: 26,
11
+ lineNumber: 15,
45
12
  columnNumber: 5
46
13
  }, this);
47
14
  };
48
- function useEditorMemo(editor, extension) {
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
- return useEditorContext().editor;
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 as useEffect2 } from "react";
31
+ import { useEffect } from "react";
76
32
  function useExtension({ extension }) {
77
33
  const editor = useEditor();
78
- useEffect2(() => editor.use(extension), [editor, extension]);
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 as useMemo2 } from "react";
39
+ import { useMemo } from "react";
84
40
  function useKeymap({ keymap }) {
85
- const extension = useMemo2(() => addKeymap(keymap), [keymap]);
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.0-next-20230627094841",
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.0-next-20230627094841",
60
- "@prosekit/lit": "0.0.0-next-20230627094841"
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.3",
81
- "vitest": "^0.32.2",
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
- };