@handlewithcare/react-prosemirror 3.1.0-tiptap.51 → 3.1.0-tiptap.53

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 (58) hide show
  1. package/dist/cjs/ReactEditorView.js +6 -2
  2. package/dist/cjs/components/ChildNodeViews.js +3 -2
  3. package/dist/cjs/components/CursorWrapper.js +3 -4
  4. package/dist/cjs/components/ProseMirror.js +5 -3
  5. package/dist/cjs/components/TextNodeView.js +176 -34
  6. package/dist/cjs/components/TrailingHackView.js +42 -1
  7. package/dist/cjs/components/WidgetView.js +4 -1
  8. package/dist/cjs/contexts/ChildDescriptionsContext.js +3 -1
  9. package/dist/cjs/decorations/viewDecorations.js +1 -6
  10. package/dist/cjs/hooks/useComponentEventListeners.js +6 -14
  11. package/dist/cjs/hooks/useEditor.js +2 -10
  12. package/dist/cjs/hooks/useMarkViewDescription.js +61 -3
  13. package/dist/cjs/hooks/useNodeViewDescription.js +45 -23
  14. package/dist/cjs/plugins/beforeInputPlugin.js +116 -12
  15. package/dist/cjs/plugins/componentEventListeners.js +2 -9
  16. package/dist/cjs/plugins/reactKeys.js +21 -14
  17. package/dist/cjs/tiptap/utils/ssrJSDOMPatch.js +59 -0
  18. package/dist/cjs/viewdesc.js +43 -2
  19. package/dist/esm/ReactEditorView.js +6 -2
  20. package/dist/esm/components/ChildNodeViews.js +4 -3
  21. package/dist/esm/components/CursorWrapper.js +4 -5
  22. package/dist/esm/components/ProseMirror.js +5 -3
  23. package/dist/esm/components/TextNodeView.js +125 -32
  24. package/dist/esm/components/TrailingHackView.js +42 -1
  25. package/dist/esm/components/WidgetView.js +4 -1
  26. package/dist/esm/contexts/ChildDescriptionsContext.js +3 -1
  27. package/dist/esm/decorations/viewDecorations.js +1 -6
  28. package/dist/esm/hooks/useComponentEventListeners.js +6 -14
  29. package/dist/esm/hooks/useEditor.js +2 -10
  30. package/dist/esm/hooks/useMarkViewDescription.js +62 -4
  31. package/dist/esm/hooks/useNodeViewDescription.js +46 -24
  32. package/dist/esm/plugins/beforeInputPlugin.js +116 -12
  33. package/dist/esm/plugins/componentEventListeners.js +2 -9
  34. package/dist/esm/plugins/reactKeys.js +21 -14
  35. package/dist/esm/tiptap/hooks/useTiptapEditor.js +7 -1
  36. package/dist/esm/tiptap/utils/ssrJSDOMPatch.js +56 -0
  37. package/dist/esm/viewdesc.js +42 -2
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/dist/types/ReactEditorView.d.ts +3 -2
  40. package/dist/types/components/CursorWrapper.d.ts +2 -4
  41. package/dist/types/components/TextNodeView.d.ts +11 -6
  42. package/dist/types/components/WidgetViewComponentProps.d.ts +4 -3
  43. package/dist/types/components/__tests__/ProseMirror.composition.test.d.ts +17 -1
  44. package/dist/types/constants.d.ts +1 -1
  45. package/dist/types/contexts/ChildDescriptionsContext.d.ts +5 -3
  46. package/dist/types/decorations/viewDecorations.d.ts +2 -2
  47. package/dist/types/hooks/useComponentEventListeners.d.ts +1 -1
  48. package/dist/types/hooks/useEditor.d.ts +1 -2
  49. package/dist/types/hooks/useMarkViewDescription.d.ts +2 -1
  50. package/dist/types/hooks/useNodeViewDescription.d.ts +2 -1
  51. package/dist/types/plugins/beforeInputPlugin.d.ts +1 -2
  52. package/dist/types/plugins/componentEventListeners.d.ts +2 -3
  53. package/dist/types/plugins/reactKeys.d.ts +9 -8
  54. package/dist/types/props.d.ts +26 -26
  55. package/dist/types/tiptap/hooks/useTiptapEditor.d.ts +7 -0
  56. package/dist/types/tiptap/utils/ssrJSDOMPatch.d.ts +1 -0
  57. package/dist/types/viewdesc.d.ts +3 -2
  58. package/package.json +2 -1
@@ -2,7 +2,7 @@ import { EditorState } from "prosemirror-state";
2
2
  import { Decoration, DirectEditorProps, EditorProps, EditorView } from "prosemirror-view";
3
3
  import { AbstractEditorView, NodeViewSet } from "./AbstractEditorView.js";
4
4
  import { DOMNode, DOMSelection, DOMSelectionRange } from "./dom.js";
5
- import { NodeViewDesc, ViewDesc } from "./viewdesc.js";
5
+ import { NodeViewDesc, TextViewDesc, ViewDesc } from "./viewdesc.js";
6
6
  interface DOMObserver {
7
7
  observer: MutationObserver | null;
8
8
  queue: MutationRecord[];
@@ -61,7 +61,8 @@ export declare class ReactEditorView extends EditorView implements AbstractEdito
61
61
  private nextProps;
62
62
  private prevState;
63
63
  private _destroyed;
64
- deferPendingEffects: boolean;
64
+ compositionStarting: boolean;
65
+ displacedNodes: TextViewDesc[];
65
66
  constructor(place: {
66
67
  mount: HTMLElement;
67
68
  }, props: DirectEditorProps);
@@ -1,5 +1,3 @@
1
1
  import React from "react";
2
- export declare const CursorWrapper: React.ForwardRefExoticComponent<{
3
- widget: import("../decorations/ReactWidgetType.js").ReactWidgetDecoration;
4
- getPos: () => number;
5
- } & React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLImageElement>>;
2
+ import { WidgetViewComponentProps } from "./WidgetViewComponentProps.js";
3
+ export declare const CursorWrapper: React.ForwardRefExoticComponent<Omit<WidgetViewComponentProps<React.AllHTMLAttributes<HTMLElement>>, "ref"> & React.RefAttributes<HTMLImageElement>>;
@@ -1,6 +1,6 @@
1
1
  import { Node } from "prosemirror-model";
2
2
  import { DOMEventMap, Decoration } from "prosemirror-view";
3
- import { Component, MutableRefObject } from "react";
3
+ import React, { Component, MutableRefObject } from "react";
4
4
  import { AbstractEditorView } from "../AbstractEditorView.js";
5
5
  import { EventHandler } from "../hooks/useComponentEventListeners.js";
6
6
  import { CompositionViewDesc, TextViewDesc, ViewDesc } from "../viewdesc.js";
@@ -10,25 +10,30 @@ type Props = {
10
10
  getPos: () => number;
11
11
  siblingsRef: MutableRefObject<ViewDesc[]>;
12
12
  parentRef: MutableRefObject<ViewDesc | undefined>;
13
+ findCompositionDOM: (compositionViewDesc: CompositionViewDesc) => void;
14
+ forceRemount: () => void;
13
15
  decorations: readonly Decoration[];
14
16
  registerEventListener<EventType extends keyof DOMEventMap>(eventType: EventType, handler: EventHandler<EventType>): void;
15
17
  unregisterEventListener<EventType extends keyof DOMEventMap>(eventType: EventType, handler: EventHandler<EventType>): void;
16
18
  };
17
19
  export declare class TextNodeView extends Component<Props> {
18
- viewDescRef: null | TextViewDesc | CompositionViewDesc;
19
- renderRef: null | JSX.Element;
20
- wasProtecting: boolean;
21
- containsCompositionNodeText: boolean;
20
+ viewDescRef: React.MutableRefObject<CompositionViewDesc | TextViewDesc | null>;
21
+ renderRef: React.MutableRefObject<JSX.Element | null>;
22
+ wasProtecting: React.MutableRefObject<boolean | null>;
23
+ containsCompositionNodeText: React.MutableRefObject<boolean | null>;
22
24
  shouldProtect(props: Props): boolean;
23
25
  handleCompositionEnd: () => void;
24
- create(): TextViewDesc | CompositionViewDesc | null;
26
+ create(): CompositionViewDesc | TextViewDesc | null;
25
27
  update(): boolean;
26
28
  destroy(): void;
27
29
  updateEffect(): void;
28
30
  shouldComponentUpdate(nextProps: Props): boolean;
31
+ constructor(props: Props);
29
32
  componentDidMount(): void;
30
33
  componentDidUpdate(): void;
34
+ private reattachAtCorrectPosition;
31
35
  componentWillUnmount(): void;
32
36
  render(): JSX.Element | null;
33
37
  }
38
+ export declare function RemountableTextNodeView(props: Omit<Props, "forceRemount">): React.JSX.Element;
34
39
  export {};
@@ -1,6 +1,7 @@
1
- import { HTMLAttributes } from "react";
1
+ import { AllHTMLAttributes, LegacyRef } from "react";
2
2
  import { ReactWidgetDecoration } from "../decorations/ReactWidgetType.js";
3
- export type WidgetViewComponentProps = {
3
+ export type WidgetViewComponentProps<Attributes = AllHTMLAttributes<HTMLElement>> = Attributes & {
4
4
  widget: ReactWidgetDecoration;
5
5
  getPos: () => number;
6
- } & HTMLAttributes<HTMLElement>;
6
+ ref: LegacyRef<any>;
7
+ };
@@ -1 +1,17 @@
1
- export {};
1
+ import "@wdio/types";
2
+ declare global {
3
+ namespace WebdriverIO {
4
+ interface Browser {
5
+ imeSetComposition(params: {
6
+ text: string;
7
+ selectionStart?: number;
8
+ selectionEnd?: number;
9
+ replacementStart?: number;
10
+ replacementEnd?: number;
11
+ }): Promise<void>;
12
+ imeInsertText(params: {
13
+ text: string;
14
+ }): Promise<void>;
15
+ }
16
+ }
17
+ }
@@ -1,4 +1,4 @@
1
1
  import { Schema } from "prosemirror-model";
2
2
  import { EditorState } from "prosemirror-state";
3
- export declare const EMPTY_SCHEMA: Schema<"text" | "doc", any>;
3
+ export declare const EMPTY_SCHEMA: Schema<"doc" | "text", any>;
4
4
  export declare const EMPTY_STATE: EditorState;
@@ -1,6 +1,8 @@
1
1
  import { MutableRefObject } from "react";
2
- import { ViewDesc } from "../viewdesc.js";
3
- export declare const ChildDescriptionsContext: import("react").Context<{
2
+ import { CompositionViewDesc, ViewDesc } from "../viewdesc.js";
3
+ export type ChildDescriptionsContextValue = {
4
4
  parentRef: MutableRefObject<ViewDesc | undefined>;
5
5
  siblingsRef: MutableRefObject<ViewDesc[]>;
6
- }>;
6
+ findCompositionDOM: (compositionViewDesc: CompositionViewDesc) => void;
7
+ };
8
+ export declare const ChildDescriptionsContext: import("react").Context<ChildDescriptionsContextValue>;
@@ -1,4 +1,4 @@
1
- import { Decoration, DecorationSource } from "prosemirror-view";
1
+ import { DecorationSource } from "prosemirror-view";
2
2
  import { AbstractEditorView } from "../AbstractEditorView.js";
3
3
  /**
4
4
  * Produces the DecorationSource for the current state, based
@@ -11,4 +11,4 @@ import { AbstractEditorView } from "../AbstractEditorView.js";
11
11
  * This makes it safe to call in a React render function, even
12
12
  * if its result is used in a dependencies array for a hook.
13
13
  */
14
- export declare function viewDecorations(view: AbstractEditorView, cursorWrapper: Decoration | null): DecorationSource;
14
+ export declare function viewDecorations(view: AbstractEditorView): DecorationSource;
@@ -27,7 +27,7 @@ export type HandleDOMEvents = Record<keyof DOMEventMap, EventHandler | undefined
27
27
  * To accomplish this, we shallowly clone the registry whenever a new event
28
28
  * type is registered.
29
29
  */
30
- export declare function useComponentEventListeners(existingHandlers: HandleDOMEvents | undefined): {
30
+ export declare function useComponentEventListeners(handleDOMEventsProp: HandleDOMEvents | undefined): {
31
31
  registerEventListener: (eventType: keyof DOMEventMap, handler: EventHandler) => void;
32
32
  unregisterEventListener: (eventType: keyof DOMEventMap, handler: EventHandler) => void;
33
33
  handleDOMEvents: HandleDOMEvents;
@@ -1,5 +1,5 @@
1
1
  import { EditorState, Plugin, Transaction } from "prosemirror-state";
2
- import { Decoration, EditorProps, EditorView } from "prosemirror-view";
2
+ import { EditorProps, EditorView } from "prosemirror-view";
3
3
  import { AbstractEditorView } from "../AbstractEditorView.js";
4
4
  export interface UseEditorOptions extends EditorProps {
5
5
  defaultState?: EditorState;
@@ -25,6 +25,5 @@ export declare function useEditor<T extends HTMLElement = HTMLElement>(mount: T
25
25
  unregisterEventListener: (eventType: keyof import("prosemirror-view").DOMEventMap, handler: import("./useComponentEventListeners.js").EventHandler<keyof import("prosemirror-view").DOMEventMap>) => void;
26
26
  isStatic: boolean;
27
27
  };
28
- cursorWrapper: Decoration | null;
29
28
  state: EditorState;
30
29
  };
@@ -1,7 +1,7 @@
1
1
  import { MarkViewConstructor } from "prosemirror-view";
2
2
  import { MarkViewComponentProps } from "../components/marks/MarkViewComponentProps.js";
3
3
  import { DOMNode } from "../dom.js";
4
- import { MarkViewDesc, ViewDesc } from "../viewdesc.js";
4
+ import { CompositionViewDesc, MarkViewDesc, ViewDesc } from "../viewdesc.js";
5
5
  type Props = Omit<MarkViewComponentProps["markProps"], "contentDOMRef">;
6
6
  export declare function useMarkViewDescription(getDOM: () => DOMNode | null, getContentDOM: (markView: {
7
7
  contentDOM?: HTMLElement | null;
@@ -9,6 +9,7 @@ export declare function useMarkViewDescription(getDOM: () => DOMNode | null, get
9
9
  childContextValue: {
10
10
  parentRef: import("react").MutableRefObject<MarkViewDesc | undefined>;
11
11
  siblingsRef: import("react").MutableRefObject<ViewDesc[]>;
12
+ findCompositionDOM: (compositionViewDesc: CompositionViewDesc) => void;
12
13
  };
13
14
  contentDOM: HTMLElement | undefined;
14
15
  refUpdated: () => void;
@@ -1,7 +1,7 @@
1
1
  import { NodeViewConstructor } from "prosemirror-view";
2
2
  import { NodeViewComponentProps } from "../components/nodes/NodeViewComponentProps.js";
3
3
  import { DOMNode } from "../dom.js";
4
- import { NodeViewDesc, ViewDesc } from "../viewdesc.js";
4
+ import { CompositionViewDesc, NodeViewDesc, ViewDesc } from "../viewdesc.js";
5
5
  type Props = Omit<NodeViewComponentProps["nodeProps"], "contentDOMRef">;
6
6
  export declare function useNodeViewDescription(getDOM: () => DOMNode | null, getContentDOM: (nodeView: {
7
7
  contentDOM?: HTMLElement | null;
@@ -9,6 +9,7 @@ export declare function useNodeViewDescription(getDOM: () => DOMNode | null, get
9
9
  childContextValue: {
10
10
  parentRef: import("react").MutableRefObject<NodeViewDesc | undefined>;
11
11
  siblingsRef: import("react").MutableRefObject<ViewDesc[]>;
12
+ findCompositionDOM: (compositionViewDesc: CompositionViewDesc) => void;
12
13
  };
13
14
  contentDOM: HTMLElement | null;
14
15
  refUpdated: () => void;
@@ -1,3 +1,2 @@
1
1
  import { Plugin } from "prosemirror-state";
2
- import { Decoration } from "prosemirror-view";
3
- export declare function beforeInputPlugin(setCursorWrapper: (deco: Decoration | null) => void): Plugin<any>;
2
+ export declare function beforeInputPlugin(): Plugin<any>;
@@ -1,4 +1,3 @@
1
- import { Plugin } from "prosemirror-state";
2
1
  import { DOMEventMap, EditorView } from "prosemirror-view";
3
- export type EventHandler<EventType extends keyof DOMEventMap = keyof DOMEventMap> = (this: Plugin, view: EditorView, event: DOMEventMap[EventType]) => boolean | void;
4
- export declare function componentEventListeners(eventHandlerRegistry: Map<keyof DOMEventMap, Iterable<EventHandler>>): Plugin<any>;
2
+ export type EventHandler<EventType extends keyof DOMEventMap = keyof DOMEventMap> = (view: EditorView, event: DOMEventMap[EventType]) => boolean | void;
3
+ export declare function componentEventListeners(eventHandlerRegistry: Map<keyof DOMEventMap, Iterable<EventHandler>>): Record<keyof DOMEventMap, EventHandler<keyof DOMEventMap>>;
@@ -1,13 +1,16 @@
1
- import { Node } from "prosemirror-model";
2
1
  import { Plugin, PluginKey } from "prosemirror-state";
2
+ import { Decoration } from "prosemirror-view";
3
3
  export declare function createNodeKey(): string;
4
- export declare const reactKeysPluginKey: PluginKey<{
4
+ interface ReactKeysPluginState {
5
5
  posToKey: Map<number, string>;
6
6
  keyToPos: Map<string, number>;
7
- posToNode: Map<number, Node>;
8
- }>;
7
+ cursorWrapper: Decoration | null;
8
+ }
9
+ export declare const reactKeysPluginKey: PluginKey<ReactKeysPluginState>;
9
10
  export type ReactKeysPluginMeta = {
10
11
  overrides: Record<number, number>;
12
+ } | {
13
+ cursorWrapper: Decoration | null;
11
14
  } | undefined;
12
15
  /**
13
16
  * Tracks a unique key for each (non-text) node in the
@@ -16,7 +19,5 @@ export type ReactKeysPluginMeta = {
16
19
  * key for a given node can be accessed by that node's
17
20
  * current position in the document, and vice versa.
18
21
  */
19
- export declare function reactKeys(): Plugin<{
20
- posToKey: Map<number, string>;
21
- keyToPos: Map<string, number>;
22
- }>;
22
+ export declare function reactKeys(): Plugin<ReactKeysPluginState>;
23
+ export {};
@@ -904,19 +904,19 @@ export declare function mergeReactProps(a: HTMLProps<HTMLElement>, b: HTMLProps<
904
904
  suppressContentEditableWarning?: boolean | undefined;
905
905
  suppressHydrationWarning?: boolean | undefined;
906
906
  accessKey?: string | undefined;
907
- autoCapitalize?: "none" | (string & {}) | "off" | "on" | "sentences" | "words" | "characters" | undefined;
907
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | (string & {}) | undefined;
908
908
  autoFocus?: boolean | undefined;
909
- contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
909
+ contentEditable?: (boolean | "false" | "true") | "inherit" | "plaintext-only" | undefined;
910
910
  contextMenu?: string | undefined;
911
911
  dir?: string | undefined;
912
- draggable?: (boolean | "true" | "false") | undefined;
913
- enterKeyHint?: "search" | "enter" | "done" | "go" | "next" | "previous" | "send" | undefined;
912
+ draggable?: (boolean | "false" | "true") | undefined;
913
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
914
914
  hidden?: boolean | undefined;
915
915
  id?: string | undefined;
916
916
  lang?: string | undefined;
917
917
  nonce?: string | undefined;
918
918
  slot?: string | undefined;
919
- spellCheck?: (boolean | "true" | "false") | undefined;
919
+ spellCheck?: (boolean | "false" | "true") | undefined;
920
920
  tabIndex?: number | undefined;
921
921
  title?: string | undefined;
922
922
  translate?: "yes" | "no" | undefined;
@@ -944,57 +944,57 @@ export declare function mergeReactProps(a: HTMLProps<HTMLElement>, b: HTMLProps<
944
944
  results?: number | undefined;
945
945
  security?: string | undefined;
946
946
  unselectable?: "off" | "on" | undefined;
947
- inputMode?: "search" | "text" | "none" | "email" | "tel" | "url" | "numeric" | "decimal" | undefined;
947
+ inputMode?: "text" | "none" | "search" | "tel" | "url" | "email" | "numeric" | "decimal" | undefined;
948
948
  is?: string | undefined;
949
949
  exportparts?: string | undefined;
950
950
  part?: string | undefined;
951
951
  "aria-activedescendant"?: string | undefined;
952
- "aria-atomic"?: (boolean | "true" | "false") | undefined;
953
- "aria-autocomplete"?: "list" | "none" | "both" | "inline" | undefined;
952
+ "aria-atomic"?: (boolean | "false" | "true") | undefined;
953
+ "aria-autocomplete"?: "none" | "list" | "inline" | "both" | undefined;
954
954
  "aria-braillelabel"?: string | undefined;
955
955
  "aria-brailleroledescription"?: string | undefined;
956
- "aria-busy"?: (boolean | "true" | "false") | undefined;
957
- "aria-checked"?: boolean | "true" | "false" | "mixed" | undefined;
956
+ "aria-busy"?: (boolean | "false" | "true") | undefined;
957
+ "aria-checked"?: boolean | "false" | "true" | "mixed" | undefined;
958
958
  "aria-colcount"?: number | undefined;
959
959
  "aria-colindex"?: number | undefined;
960
960
  "aria-colindextext"?: string | undefined;
961
961
  "aria-colspan"?: number | undefined;
962
962
  "aria-controls"?: string | undefined;
963
- "aria-current"?: boolean | "time" | "step" | "date" | "true" | "false" | "page" | "location" | undefined;
963
+ "aria-current"?: boolean | "false" | "true" | "step" | "page" | "location" | "date" | "time" | undefined;
964
964
  "aria-describedby"?: string | undefined;
965
965
  "aria-description"?: string | undefined;
966
966
  "aria-details"?: string | undefined;
967
- "aria-disabled"?: (boolean | "true" | "false") | undefined;
968
- "aria-dropeffect"?: "copy" | "link" | "none" | "move" | "execute" | "popup" | undefined;
967
+ "aria-disabled"?: (boolean | "false" | "true") | undefined;
968
+ "aria-dropeffect"?: "none" | "link" | "copy" | "execute" | "move" | "popup" | undefined;
969
969
  "aria-errormessage"?: string | undefined;
970
- "aria-expanded"?: (boolean | "true" | "false") | undefined;
970
+ "aria-expanded"?: (boolean | "false" | "true") | undefined;
971
971
  "aria-flowto"?: string | undefined;
972
- "aria-grabbed"?: (boolean | "true" | "false") | undefined;
973
- "aria-haspopup"?: boolean | "dialog" | "menu" | "grid" | "listbox" | "tree" | "true" | "false" | undefined;
974
- "aria-hidden"?: (boolean | "true" | "false") | undefined;
975
- "aria-invalid"?: boolean | "true" | "false" | "grammar" | "spelling" | undefined;
972
+ "aria-grabbed"?: (boolean | "false" | "true") | undefined;
973
+ "aria-haspopup"?: boolean | "false" | "true" | "dialog" | "grid" | "listbox" | "menu" | "tree" | undefined;
974
+ "aria-hidden"?: (boolean | "false" | "true") | undefined;
975
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
976
976
  "aria-keyshortcuts"?: string | undefined;
977
977
  "aria-label"?: string | undefined;
978
978
  "aria-labelledby"?: string | undefined;
979
979
  "aria-level"?: number | undefined;
980
980
  "aria-live"?: "off" | "assertive" | "polite" | undefined;
981
- "aria-modal"?: (boolean | "true" | "false") | undefined;
982
- "aria-multiline"?: (boolean | "true" | "false") | undefined;
983
- "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
981
+ "aria-modal"?: (boolean | "false" | "true") | undefined;
982
+ "aria-multiline"?: (boolean | "false" | "true") | undefined;
983
+ "aria-multiselectable"?: (boolean | "false" | "true") | undefined;
984
984
  "aria-orientation"?: "horizontal" | "vertical" | undefined;
985
985
  "aria-owns"?: string | undefined;
986
986
  "aria-placeholder"?: string | undefined;
987
987
  "aria-posinset"?: number | undefined;
988
- "aria-pressed"?: boolean | "true" | "false" | "mixed" | undefined;
989
- "aria-readonly"?: (boolean | "true" | "false") | undefined;
990
- "aria-relevant"?: "text" | "all" | "additions" | "additions removals" | "additions text" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
991
- "aria-required"?: (boolean | "true" | "false") | undefined;
988
+ "aria-pressed"?: boolean | "false" | "true" | "mixed" | undefined;
989
+ "aria-readonly"?: (boolean | "false" | "true") | undefined;
990
+ "aria-relevant"?: "text" | "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
991
+ "aria-required"?: (boolean | "false" | "true") | undefined;
992
992
  "aria-roledescription"?: string | undefined;
993
993
  "aria-rowcount"?: number | undefined;
994
994
  "aria-rowindex"?: number | undefined;
995
995
  "aria-rowindextext"?: string | undefined;
996
996
  "aria-rowspan"?: number | undefined;
997
- "aria-selected"?: (boolean | "true" | "false") | undefined;
997
+ "aria-selected"?: (boolean | "false" | "true") | undefined;
998
998
  "aria-setsize"?: number | undefined;
999
999
  "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
1000
1000
  "aria-valuemax"?: number | undefined;
@@ -1,4 +1,11 @@
1
1
  import { DependencyList } from "react";
2
2
  import { useEditor } from "./useEditor.js";
3
3
  export type UseTiptapEditorOptions = Omit<Parameters<typeof useEditor>[0], "element">;
4
+ /**
5
+ * Create a React ProseMirror integrated Tiptap Editor instance.
6
+ * @param options The editor options
7
+ * @param deps The dependencies to watch for changes
8
+ * @returns The editor instance
9
+ * @example const editor = useEditor({ extensions: [...] })
10
+ */
4
11
  export declare function useTiptapEditor(options: UseTiptapEditorOptions, deps?: DependencyList): import("@tiptap/core").Editor;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
- import { Mark, Node, TagParseRule } from "prosemirror-model";
1
+ import { Fragment, Mark, Node, TagParseRule } from "prosemirror-model";
2
2
  import { Decoration, DecorationSource, EditorView, NodeView } from "prosemirror-view";
3
3
  import { ReactEditorView } from "./ReactEditorView.js";
4
4
  import { DOMNode } from "./dom.js";
@@ -119,7 +119,7 @@ export declare class NodeViewDesc extends ViewDesc {
119
119
  parseRule(): Omit<TagParseRule, "tag"> | null;
120
120
  matchesNode(node: Node, outerDeco: readonly Decoration[], innerDeco: DecorationSource): boolean;
121
121
  get size(): number;
122
- get border(): 0 | 1;
122
+ get border(): 1 | 0;
123
123
  updateChildren(_view: EditorView, _pos: number): void;
124
124
  update(node: Node, outerDeco: readonly Decoration[], innerDeco: DecorationSource, view: EditorView): boolean;
125
125
  updateInner(node: Node, outerDeco: readonly Decoration[], innerDeco: DecorationSource, view: EditorView): void;
@@ -172,4 +172,5 @@ export declare class ReactNodeViewDesc extends CustomNodeViewDesc {
172
172
  destroy(): void;
173
173
  }
174
174
  export declare function sameOuterDeco(a: readonly Decoration[], b: readonly Decoration[]): boolean;
175
+ export declare function findTextInFragment(frag: Fragment, text: string, from: number, to: number): number;
175
176
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@handlewithcare/react-prosemirror",
3
- "version": "3.1.0-tiptap.51",
3
+ "version": "3.1.0-tiptap.53",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "dist/cjs/index.js",
@@ -112,6 +112,7 @@
112
112
  "prosemirror-test-builder": "^1.1.1",
113
113
  "prosemirror-transform": "^1.12.0",
114
114
  "prosemirror-view": "1.41.7",
115
+ "puppeteer-core": "^25.0.4",
115
116
  "react": "^18.2.0",
116
117
  "react-dom": "^18.2.0",
117
118
  "react-reconciler": "^0.29.0",