@handlewithcare/react-prosemirror 2.0.0

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 (209) hide show
  1. package/LICENSE.txt +12 -0
  2. package/README.md +705 -0
  3. package/dist/cjs/browser.js +53 -0
  4. package/dist/cjs/components/ChildNodeViews.js +376 -0
  5. package/dist/cjs/components/CursorWrapper.js +91 -0
  6. package/dist/cjs/components/CustomNodeView.js +79 -0
  7. package/dist/cjs/components/DocNodeView.js +104 -0
  8. package/dist/cjs/components/LayoutGroup.js +111 -0
  9. package/dist/cjs/components/MarkView.js +115 -0
  10. package/dist/cjs/components/NativeWidgetView.js +109 -0
  11. package/dist/cjs/components/NodeView.js +196 -0
  12. package/dist/cjs/components/NodeViewComponentProps.js +4 -0
  13. package/dist/cjs/components/OutputSpec.js +88 -0
  14. package/dist/cjs/components/ProseMirror.js +103 -0
  15. package/dist/cjs/components/ProseMirrorDoc.js +92 -0
  16. package/dist/cjs/components/SeparatorHackView.js +100 -0
  17. package/dist/cjs/components/TextNodeView.js +112 -0
  18. package/dist/cjs/components/TrailingHackView.js +90 -0
  19. package/dist/cjs/components/WidgetView.js +95 -0
  20. package/dist/cjs/components/WidgetViewComponentProps.js +4 -0
  21. package/dist/cjs/components/__tests__/ProseMirror.composition.test.js +398 -0
  22. package/dist/cjs/components/__tests__/ProseMirror.domchange.test.js +270 -0
  23. package/dist/cjs/components/__tests__/ProseMirror.draw-decoration.test.js +1010 -0
  24. package/dist/cjs/components/__tests__/ProseMirror.draw.test.js +337 -0
  25. package/dist/cjs/components/__tests__/ProseMirror.node-view.test.js +315 -0
  26. package/dist/cjs/components/__tests__/ProseMirror.selection.test.js +444 -0
  27. package/dist/cjs/components/__tests__/ProseMirror.test.js +382 -0
  28. package/dist/cjs/contexts/ChildDescriptorsContext.js +19 -0
  29. package/dist/cjs/contexts/EditorContext.js +12 -0
  30. package/dist/cjs/contexts/EditorStateContext.js +12 -0
  31. package/dist/cjs/contexts/LayoutGroupContext.js +12 -0
  32. package/dist/cjs/contexts/NodeViewContext.js +12 -0
  33. package/dist/cjs/contexts/SelectNodeContext.js +12 -0
  34. package/dist/cjs/contexts/StopEventContext.js +12 -0
  35. package/dist/cjs/contexts/__tests__/DeferredLayoutEffects.test.js +141 -0
  36. package/dist/cjs/decorations/ReactWidgetType.js +58 -0
  37. package/dist/cjs/decorations/computeDocDeco.js +44 -0
  38. package/dist/cjs/decorations/internalTypes.js +4 -0
  39. package/dist/cjs/decorations/iterDeco.js +79 -0
  40. package/dist/cjs/decorations/viewDecorations.js +163 -0
  41. package/dist/cjs/dom.js +142 -0
  42. package/dist/cjs/hooks/__tests__/useEditorViewLayoutEffect.test.js +108 -0
  43. package/dist/cjs/hooks/useClientOnly.js +18 -0
  44. package/dist/cjs/hooks/useComponentEventListeners.js +39 -0
  45. package/dist/cjs/hooks/useEditor.js +287 -0
  46. package/dist/cjs/hooks/useEditorEffect.js +35 -0
  47. package/dist/cjs/hooks/useEditorEventCallback.js +33 -0
  48. package/dist/cjs/hooks/useEditorEventListener.js +34 -0
  49. package/dist/cjs/hooks/useEditorState.js +16 -0
  50. package/dist/cjs/hooks/useForceUpdate.js +15 -0
  51. package/dist/cjs/hooks/useLayoutGroupEffect.js +19 -0
  52. package/dist/cjs/hooks/useNodeViewDescriptor.js +115 -0
  53. package/dist/cjs/hooks/useReactKeys.js +17 -0
  54. package/dist/cjs/hooks/useSelectNode.js +28 -0
  55. package/dist/cjs/hooks/useStopEvent.js +24 -0
  56. package/dist/cjs/index.js +53 -0
  57. package/dist/cjs/package.json +3 -0
  58. package/dist/cjs/plugins/__tests__/reactKeys.test.js +81 -0
  59. package/dist/cjs/plugins/beforeInputPlugin.js +143 -0
  60. package/dist/cjs/plugins/componentEventListeners.js +35 -0
  61. package/dist/cjs/plugins/componentEventListenersPlugin.js +35 -0
  62. package/dist/cjs/plugins/reactKeys.js +96 -0
  63. package/dist/cjs/props.js +269 -0
  64. package/dist/cjs/selection/SelectionDOMObserver.js +174 -0
  65. package/dist/cjs/selection/hasFocusAndSelection.js +35 -0
  66. package/dist/cjs/selection/selectionFromDOM.js +77 -0
  67. package/dist/cjs/selection/selectionToDOM.js +226 -0
  68. package/dist/cjs/ssr.js +85 -0
  69. package/dist/cjs/testing/editorViewTestHelpers.js +111 -0
  70. package/dist/cjs/testing/setupProseMirrorView.js +94 -0
  71. package/dist/cjs/viewdesc.js +664 -0
  72. package/dist/esm/browser.js +43 -0
  73. package/dist/esm/components/ChildNodeViews.js +318 -0
  74. package/dist/esm/components/CursorWrapper.js +40 -0
  75. package/dist/esm/components/CustomNodeView.js +28 -0
  76. package/dist/esm/components/DocNodeView.js +53 -0
  77. package/dist/esm/components/LayoutGroup.js +66 -0
  78. package/dist/esm/components/MarkView.js +64 -0
  79. package/dist/esm/components/NativeWidgetView.js +58 -0
  80. package/dist/esm/components/NodeView.js +145 -0
  81. package/dist/esm/components/NodeViewComponentProps.js +1 -0
  82. package/dist/esm/components/OutputSpec.js +38 -0
  83. package/dist/esm/components/ProseMirror.js +52 -0
  84. package/dist/esm/components/ProseMirrorDoc.js +34 -0
  85. package/dist/esm/components/SeparatorHackView.js +49 -0
  86. package/dist/esm/components/TextNodeView.js +102 -0
  87. package/dist/esm/components/TrailingHackView.js +39 -0
  88. package/dist/esm/components/WidgetView.js +44 -0
  89. package/dist/esm/components/WidgetViewComponentProps.js +1 -0
  90. package/dist/esm/components/__tests__/ProseMirror.composition.test.js +395 -0
  91. package/dist/esm/components/__tests__/ProseMirror.domchange.test.js +266 -0
  92. package/dist/esm/components/__tests__/ProseMirror.draw-decoration.test.js +967 -0
  93. package/dist/esm/components/__tests__/ProseMirror.draw.test.js +294 -0
  94. package/dist/esm/components/__tests__/ProseMirror.node-view.test.js +272 -0
  95. package/dist/esm/components/__tests__/ProseMirror.selection.test.js +440 -0
  96. package/dist/esm/components/__tests__/ProseMirror.test.js +339 -0
  97. package/dist/esm/contexts/ChildDescriptorsContext.js +9 -0
  98. package/dist/esm/contexts/EditorContext.js +7 -0
  99. package/dist/esm/contexts/EditorStateContext.js +2 -0
  100. package/dist/esm/contexts/LayoutGroupContext.js +2 -0
  101. package/dist/esm/contexts/NodeViewContext.js +2 -0
  102. package/dist/esm/contexts/SelectNodeContext.js +2 -0
  103. package/dist/esm/contexts/StopEventContext.js +2 -0
  104. package/dist/esm/contexts/__tests__/DeferredLayoutEffects.test.js +98 -0
  105. package/dist/esm/decorations/ReactWidgetType.js +40 -0
  106. package/dist/esm/decorations/computeDocDeco.js +44 -0
  107. package/dist/esm/decorations/internalTypes.js +1 -0
  108. package/dist/esm/decorations/iterDeco.js +73 -0
  109. package/dist/esm/decorations/viewDecorations.js +163 -0
  110. package/dist/esm/dom.js +105 -0
  111. package/dist/esm/hooks/__tests__/useEditorViewLayoutEffect.test.js +99 -0
  112. package/dist/esm/hooks/useClientOnly.js +8 -0
  113. package/dist/esm/hooks/useComponentEventListeners.js +54 -0
  114. package/dist/esm/hooks/useEditor.js +278 -0
  115. package/dist/esm/hooks/useEditorEffect.js +38 -0
  116. package/dist/esm/hooks/useEditorEventCallback.js +35 -0
  117. package/dist/esm/hooks/useEditorEventListener.js +28 -0
  118. package/dist/esm/hooks/useEditorState.js +8 -0
  119. package/dist/esm/hooks/useForceUpdate.js +8 -0
  120. package/dist/esm/hooks/useLayoutGroupEffect.js +9 -0
  121. package/dist/esm/hooks/useNodeViewDescriptor.js +105 -0
  122. package/dist/esm/hooks/useReactKeys.js +7 -0
  123. package/dist/esm/hooks/useSelectNode.js +18 -0
  124. package/dist/esm/hooks/useStopEvent.js +14 -0
  125. package/dist/esm/index.js +11 -0
  126. package/dist/esm/plugins/__tests__/reactKeys.test.js +77 -0
  127. package/dist/esm/plugins/beforeInputPlugin.js +133 -0
  128. package/dist/esm/plugins/componentEventListeners.js +25 -0
  129. package/dist/esm/plugins/componentEventListenersPlugin.js +25 -0
  130. package/dist/esm/plugins/reactKeys.js +81 -0
  131. package/dist/esm/props.js +251 -0
  132. package/dist/esm/selection/SelectionDOMObserver.js +164 -0
  133. package/dist/esm/selection/hasFocusAndSelection.js +17 -0
  134. package/dist/esm/selection/selectionFromDOM.js +59 -0
  135. package/dist/esm/selection/selectionToDOM.js +196 -0
  136. package/dist/esm/ssr.js +82 -0
  137. package/dist/esm/testing/editorViewTestHelpers.js +88 -0
  138. package/dist/esm/testing/setupProseMirrorView.js +76 -0
  139. package/dist/esm/viewdesc.js +654 -0
  140. package/dist/tsconfig.tsbuildinfo +1 -0
  141. package/dist/types/browser.d.ts +15 -0
  142. package/dist/types/components/ChildNodeViews.d.ts +9 -0
  143. package/dist/types/components/CursorWrapper.d.ts +5 -0
  144. package/dist/types/components/CustomNodeView.d.ts +21 -0
  145. package/dist/types/components/DocNodeView.d.ts +20 -0
  146. package/dist/types/components/LayoutGroup.d.ts +12 -0
  147. package/dist/types/components/MarkView.d.ts +9 -0
  148. package/dist/types/components/NativeWidgetView.d.ts +8 -0
  149. package/dist/types/components/NodeView.d.ts +11 -0
  150. package/dist/types/components/NodeViewComponentProps.d.ts +12 -0
  151. package/dist/types/components/OutputSpec.d.ts +8 -0
  152. package/dist/types/components/ProseMirror.d.ts +15 -0
  153. package/dist/types/components/ProseMirrorDoc.d.ts +10 -0
  154. package/dist/types/components/SeparatorHackView.d.ts +6 -0
  155. package/dist/types/components/TextNodeView.d.ts +23 -0
  156. package/dist/types/components/TrailingHackView.d.ts +6 -0
  157. package/dist/types/components/WidgetView.d.ts +8 -0
  158. package/dist/types/components/WidgetViewComponentProps.d.ts +6 -0
  159. package/dist/types/components/__tests__/ProseMirror.composition.test.d.ts +1 -0
  160. package/dist/types/components/__tests__/ProseMirror.domchange.test.d.ts +1 -0
  161. package/dist/types/components/__tests__/ProseMirror.draw-decoration.test.d.ts +1 -0
  162. package/dist/types/components/__tests__/ProseMirror.draw.test.d.ts +1 -0
  163. package/dist/types/components/__tests__/ProseMirror.node-view.test.d.ts +1 -0
  164. package/dist/types/components/__tests__/ProseMirror.selection.test.d.ts +1 -0
  165. package/dist/types/components/__tests__/ProseMirror.test.d.ts +1 -0
  166. package/dist/types/contexts/ChildDescriptorsContext.d.ts +6 -0
  167. package/dist/types/contexts/EditorContext.d.ts +14 -0
  168. package/dist/types/contexts/EditorStateContext.d.ts +2 -0
  169. package/dist/types/contexts/LayoutGroupContext.d.ts +5 -0
  170. package/dist/types/contexts/NodeViewContext.d.ts +6 -0
  171. package/dist/types/contexts/SelectNodeContext.d.ts +3 -0
  172. package/dist/types/contexts/StopEventContext.d.ts +3 -0
  173. package/dist/types/contexts/__tests__/DeferredLayoutEffects.test.d.ts +1 -0
  174. package/dist/types/decorations/ReactWidgetType.d.ts +39 -0
  175. package/dist/types/decorations/computeDocDeco.d.ts +13 -0
  176. package/dist/types/decorations/internalTypes.d.ts +16 -0
  177. package/dist/types/decorations/iterDeco.d.ts +3 -0
  178. package/dist/types/decorations/viewDecorations.d.ts +13 -0
  179. package/dist/types/dom.d.ts +22 -0
  180. package/dist/types/hooks/__tests__/useEditorViewLayoutEffect.test.d.ts +1 -0
  181. package/dist/types/hooks/useClientOnly.d.ts +1 -0
  182. package/dist/types/hooks/useComponentEventListeners.d.ts +33 -0
  183. package/dist/types/hooks/useEditor.d.ts +66 -0
  184. package/dist/types/hooks/useEditorEffect.d.ts +17 -0
  185. package/dist/types/hooks/useEditorEventCallback.d.ts +15 -0
  186. package/dist/types/hooks/useEditorEventListener.d.ts +8 -0
  187. package/dist/types/hooks/useEditorState.d.ts +5 -0
  188. package/dist/types/hooks/useForceUpdate.d.ts +5 -0
  189. package/dist/types/hooks/useLayoutGroupEffect.d.ts +3 -0
  190. package/dist/types/hooks/useNodeViewDescriptor.d.ts +11 -0
  191. package/dist/types/hooks/useReactKeys.d.ts +5 -0
  192. package/dist/types/hooks/useSelectNode.d.ts +1 -0
  193. package/dist/types/hooks/useStopEvent.d.ts +2 -0
  194. package/dist/types/index.d.ts +12 -0
  195. package/dist/types/plugins/__tests__/reactKeys.test.d.ts +1 -0
  196. package/dist/types/plugins/beforeInputPlugin.d.ts +3 -0
  197. package/dist/types/plugins/componentEventListeners.d.ts +4 -0
  198. package/dist/types/plugins/componentEventListenersPlugin.d.ts +4 -0
  199. package/dist/types/plugins/reactKeys.d.ts +19 -0
  200. package/dist/types/props.d.ts +1174 -0
  201. package/dist/types/selection/SelectionDOMObserver.d.ts +34 -0
  202. package/dist/types/selection/hasFocusAndSelection.d.ts +3 -0
  203. package/dist/types/selection/selectionFromDOM.d.ts +4 -0
  204. package/dist/types/selection/selectionToDOM.d.ts +9 -0
  205. package/dist/types/ssr.d.ts +19 -0
  206. package/dist/types/testing/editorViewTestHelpers.d.ts +23 -0
  207. package/dist/types/testing/setupProseMirrorView.d.ts +2 -0
  208. package/dist/types/viewdesc.d.ts +131 -0
  209. package/package.json +113 -0
@@ -0,0 +1,34 @@
1
+ import { EditorView } from "prosemirror-view";
2
+ import { DOMSelectionRange } from "../dom.js";
3
+ declare class SelectionState {
4
+ anchorNode: Node | null;
5
+ anchorOffset: number;
6
+ focusNode: Node | null;
7
+ focusOffset: number;
8
+ set(sel: DOMSelectionRange): void;
9
+ clear(): void;
10
+ eq(sel: DOMSelectionRange): boolean;
11
+ }
12
+ export declare class SelectionDOMObserver {
13
+ readonly view: EditorView;
14
+ flushingSoon: number;
15
+ currentSelection: SelectionState;
16
+ suppressingSelectionUpdates: boolean;
17
+ constructor(view: EditorView);
18
+ connectSelection(): void;
19
+ disconnectSelection(): void;
20
+ stop(): void;
21
+ start(): void;
22
+ suppressSelectionUpdates(): void;
23
+ setCurSelection(): void;
24
+ ignoreSelectionChange(sel: DOMSelectionRange): true | undefined;
25
+ registerMutation(): void;
26
+ flushSoon(): void;
27
+ updateSelection(): void;
28
+ selectionToDOM(): void;
29
+ flush(): void;
30
+ selectionChanged(sel: DOMSelectionRange): boolean;
31
+ forceFlush(): void;
32
+ onSelectionChange(): void;
33
+ }
34
+ export {};
@@ -0,0 +1,3 @@
1
+ import { EditorView } from "prosemirror-view";
2
+ export declare function hasFocusAndSelection(view: EditorView): boolean;
3
+ export declare function hasSelection(view: EditorView): boolean;
@@ -0,0 +1,4 @@
1
+ import { ResolvedPos } from "prosemirror-model";
2
+ import { EditorView } from "prosemirror-view";
3
+ export declare function selectionBetween(view: EditorView, $anchor: ResolvedPos, $head: ResolvedPos, bias?: number): import("prosemirror-state").Selection;
4
+ export declare function selectionFromDOM(view: EditorView, origin?: string | null): import("prosemirror-state").Selection | null;
@@ -0,0 +1,9 @@
1
+ import { Selection } from "prosemirror-state";
2
+ import { EditorView } from "prosemirror-view";
3
+ export declare const isEquivalentPosition: (node: Node, off: number, targetNode: Node, targetOff: number) => boolean;
4
+ export declare function hasBlockDesc(dom: Node): boolean | null | undefined;
5
+ export declare const domIndex: (node: Node) => number;
6
+ export declare function nodeSize(node: Node): number;
7
+ export declare function syncNodeSelection(view: EditorView, sel: Selection): void;
8
+ export declare function hasSelection(view: EditorView): boolean;
9
+ export declare function selectionToDOM(view: EditorView, force?: boolean): void;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @fileoverview
3
+ *
4
+ * Stubs for ProseMirror View during SSR. These are extremely
5
+ * barebones, because they _do not need to actually work_. They
6
+ * just need to prevent errors from being thrown when ProseMirror
7
+ * View attemps to access these APIs while constructing the
8
+ * initial EditorView. None of these APIs are necessary for SSR to
9
+ * work properly, so it's fine that they're all no-ops.
10
+ */
11
+ /**
12
+ * Sets up tiny no-op stubs for the global window and document.
13
+ * These are used to prevent errors from being thrown when ProseMirror's
14
+ * EditorView attempts to access the DOM in its constructor during SSR.
15
+ *
16
+ * Returns a cleanup function that resets the window and document back
17
+ * to their original values (undefined).
18
+ */
19
+ export declare function setSsrStubs(): () => void;
@@ -0,0 +1,23 @@
1
+ import { Node } from "prosemirror-model";
2
+ import { doc } from "prosemirror-test-builder";
3
+ import { EditorView as EditorViewT } from "prosemirror-view";
4
+ import { Props } from "../components/ProseMirror.js";
5
+ import { DOMNode } from "../dom.js";
6
+ declare module "expect" {
7
+ interface AsymmetricMatchers {
8
+ toEqualNode(actual: Node): void;
9
+ }
10
+ interface Matchers<R> {
11
+ toEqualNode(actual: Node): R;
12
+ }
13
+ }
14
+ export declare function tempEditor({ doc: startDoc, selection, controlled, plugins, ...props }: {
15
+ doc?: ReturnType<typeof doc>;
16
+ selection?: Selection;
17
+ controlled?: boolean;
18
+ } & Omit<Props, "state">): {
19
+ view: EditorViewT;
20
+ rerender: (props?: Omit<Props, "state" | "plugins">) => void;
21
+ unmount: () => void;
22
+ };
23
+ export declare function findTextNode(node: DOMNode, text: string): Text;
@@ -0,0 +1,2 @@
1
+ export declare function setupProseMirrorView(): void;
2
+ export declare function teardownProseMirrorView(): void;
@@ -0,0 +1,131 @@
1
+ import { Mark, Node, TagParseRule } from "prosemirror-model";
2
+ import { Decoration, DecorationSource, EditorView } from "prosemirror-view";
3
+ import { DOMNode } from "./dom.js";
4
+ export declare function sortViewDescs(a: ViewDesc, b: ViewDesc): number;
5
+ export declare class ViewDesc {
6
+ parent: ViewDesc | undefined;
7
+ children: ViewDesc[];
8
+ getPos: () => number;
9
+ dom: DOMNode;
10
+ contentDOM: HTMLElement | null;
11
+ dirty: number;
12
+ node: Node | null;
13
+ constructor(parent: ViewDesc | undefined, children: ViewDesc[], getPos: () => number, dom: DOMNode, contentDOM: HTMLElement | null);
14
+ matchesWidget(_widget: Decoration): boolean;
15
+ matchesMark(_mark: Mark): boolean;
16
+ matchesNode(_node: Node, _outerDeco: readonly Decoration[], _innerDeco: DecorationSource): boolean;
17
+ matchesHack(nodeName: string): boolean;
18
+ parseRule(): Omit<TagParseRule, "tag"> | null;
19
+ stopEvent(event: Event): boolean;
20
+ get size(): number;
21
+ get border(): number;
22
+ destroy(): void;
23
+ posBeforeChild(child: ViewDesc): number;
24
+ get posBefore(): number;
25
+ get posAtStart(): number;
26
+ get posAfter(): number;
27
+ get posAtEnd(): number;
28
+ localPosFromDOM(dom: DOMNode, offset: number, bias: number): number;
29
+ nearestDesc(dom: DOMNode): ViewDesc | undefined;
30
+ nearestDesc(dom: DOMNode, onlyNodes: true): NodeViewDesc | undefined;
31
+ getDesc(dom: DOMNode): ViewDesc | undefined;
32
+ posFromDOM(dom: DOMNode, offset: number, bias: number): number;
33
+ descAt(pos: number): ViewDesc | undefined;
34
+ domFromPos(pos: number, side: number): {
35
+ node: DOMNode;
36
+ offset: number;
37
+ atom?: number;
38
+ };
39
+ parseRange(from: number, to: number, base?: number): {
40
+ node: DOMNode;
41
+ from: number;
42
+ to: number;
43
+ fromOffset: number;
44
+ toOffset: number;
45
+ };
46
+ emptyChildAt(side: number): boolean;
47
+ domAfterPos(pos: number): DOMNode;
48
+ setSelection(anchor: number, head: number, root: Document | ShadowRoot, force?: boolean): void;
49
+ ignoreMutation(mutation: MutationRecord): boolean;
50
+ get contentLost(): boolean | null;
51
+ markDirty(from: number, to: number): void;
52
+ markParentsDirty(): void;
53
+ get domAtom(): boolean;
54
+ get ignoreForCoords(): boolean;
55
+ }
56
+ export declare class WidgetViewDesc extends ViewDesc {
57
+ widget: Decoration;
58
+ constructor(parent: ViewDesc | undefined, getPos: () => number, widget: Decoration, dom: DOMNode);
59
+ matchesWidget(widget: Decoration): any;
60
+ parseRule(): {
61
+ ignore: boolean;
62
+ };
63
+ stopEvent(event: Event): any;
64
+ ignoreMutation(mutation: MutationRecord): any;
65
+ get domAtom(): boolean;
66
+ get side(): number;
67
+ }
68
+ export declare class CompositionViewDesc extends ViewDesc {
69
+ textDOM: Text;
70
+ text: string;
71
+ constructor(parent: ViewDesc | undefined, getPos: () => number, dom: DOMNode, textDOM: Text, text: string);
72
+ get size(): number;
73
+ localPosFromDOM(dom: DOMNode, offset: number): number;
74
+ domFromPos(pos: number): {
75
+ node: Text;
76
+ offset: number;
77
+ };
78
+ ignoreMutation(mut: MutationRecord): boolean;
79
+ }
80
+ export declare class MarkViewDesc extends ViewDesc {
81
+ mark: Mark;
82
+ constructor(parent: ViewDesc | undefined, children: ViewDesc[], getPos: () => number, mark: Mark, dom: DOMNode, contentDOM: HTMLElement);
83
+ parseRule(): {
84
+ mark: string;
85
+ attrs: import("prosemirror-model").Attrs;
86
+ contentElement: HTMLElement;
87
+ } | null;
88
+ matchesMark(mark: Mark): boolean;
89
+ markDirty(from: number, to: number): void;
90
+ }
91
+ export declare class NodeViewDesc extends ViewDesc {
92
+ node: Node;
93
+ outerDeco: readonly Decoration[];
94
+ innerDeco: DecorationSource;
95
+ nodeDOM: DOMNode;
96
+ stopEvent: (event: Event) => boolean;
97
+ selectNode: () => void;
98
+ deselectNode: () => void;
99
+ constructor(parent: ViewDesc | undefined, children: ViewDesc[], getPos: () => number, node: Node, outerDeco: readonly Decoration[], innerDeco: DecorationSource, dom: DOMNode, contentDOM: HTMLElement | null, nodeDOM: DOMNode, stopEvent: (event: Event) => boolean, selectNode: () => void, deselectNode: () => void);
100
+ updateOuterDeco(): void;
101
+ parseRule(): Omit<TagParseRule, "tag"> | null;
102
+ matchesNode(node: Node, outerDeco: readonly Decoration[], innerDeco: DecorationSource): boolean;
103
+ get size(): number;
104
+ get border(): 1 | 0;
105
+ update(_node: Node, _outerDeco: readonly Decoration[], _innerDeco: DecorationSource, _view: EditorView): boolean;
106
+ get domAtom(): boolean;
107
+ }
108
+ export declare class TextViewDesc extends NodeViewDesc {
109
+ constructor(parent: ViewDesc | undefined, children: ViewDesc[], getPos: () => number, node: Node, outerDeco: readonly Decoration[], innerDeco: DecorationSource, dom: DOMNode, nodeDOM: DOMNode);
110
+ parseRule(): {
111
+ skip: any;
112
+ };
113
+ update(_node: Node, _outerDeco: readonly Decoration[], _innerDeco: DecorationSource, _view: EditorView): boolean;
114
+ inParent(): boolean;
115
+ domFromPos(pos: number): {
116
+ node: globalThis.Node;
117
+ offset: number;
118
+ };
119
+ localPosFromDOM(dom: DOMNode, offset: number, bias: number): number;
120
+ ignoreMutation(mutation: MutationRecord): boolean;
121
+ markDirty(from: number, to: number): void;
122
+ get domAtom(): boolean;
123
+ }
124
+ export declare class TrailingHackViewDesc extends ViewDesc {
125
+ parseRule(): {
126
+ ignore: boolean;
127
+ };
128
+ matchesHack(nodeName: string): boolean;
129
+ get domAtom(): boolean;
130
+ get ignoreForCoords(): boolean;
131
+ }
package/package.json ADDED
@@ -0,0 +1,113 @@
1
+ {
2
+ "name": "@handlewithcare/react-prosemirror",
3
+ "version": "2.0.0",
4
+ "license": "Apache-2.0",
5
+ "type": "module",
6
+ "main": "dist/cjs/index.js",
7
+ "module": "dist/esm/index.js",
8
+ "types": "./dist/types/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/types/index.d.ts",
12
+ "import": "./dist/esm/index.js",
13
+ "require": "./dist/cjs/index.js"
14
+ },
15
+ "./src": "./src/index.ts"
16
+ },
17
+ "files": [
18
+ "README.md",
19
+ "LICENSE.txt",
20
+ "dist"
21
+ ],
22
+ "scripts": {
23
+ "build:cjs": "swc ./src --ignore **/__tests__/** -d ./dist/cjs/ --no-swcrc --config-file .swcrc-cjs",
24
+ "build:esm": "swc ./src --ignore **/__tests__/** -d ./dist/esm/",
25
+ "build:types": "tsc --noEmit false --emitDeclarationOnly",
26
+ "build": "concurrently -P 'npm:build:* {@}' --",
27
+ "check:format": "prettier --check .",
28
+ "check:lint": "eslint --cache .",
29
+ "check:types": "tsc",
30
+ "check": "concurrently -P 'npm:check:* {@}' --",
31
+ "clean": "rimraf \"./dist/!(cjs/package.json)\"",
32
+ "demo": "yarn vite",
33
+ "demo:build": "yarn vite build --outDir docs --base=/react-prosemirror/",
34
+ "dev": "yarn build -- --watch",
35
+ "fix:format": "prettier --write .",
36
+ "fix:lint": "eslint --cache --fix .",
37
+ "fix:toc": "markdown-toc --bullets='-' -i README.md",
38
+ "fix": "concurrently -P 'npm:fix:* {@}' --",
39
+ "prepack": "yarn build",
40
+ "test:wdio": "wdio run ./wdio.conf.ts",
41
+ "test:unit": "jest",
42
+ "test": "yarn test:unit && yarn test:wdio"
43
+ },
44
+ "devDependencies": {
45
+ "@jest/globals": "^29.6.2",
46
+ "@swc/cli": "^0.1.61",
47
+ "@swc/core": "^1.3.32",
48
+ "@swc/jest": "^0.2.24",
49
+ "@testing-library/dom": "^10.4.0",
50
+ "@testing-library/react": "^16.0.1",
51
+ "@testing-library/user-event": "^14.4.3",
52
+ "@types/jest": "^27.0.0",
53
+ "@types/react": "^18.0.0",
54
+ "@types/react-dom": "^18.0.0",
55
+ "@typescript-eslint/eslint-plugin": "^5.51.0",
56
+ "@typescript-eslint/parser": "^5.51.0",
57
+ "@vitejs/plugin-react": "^4.3.1",
58
+ "@wdio/browser-runner": "^9.0.9",
59
+ "@wdio/cli": "^9.0.9",
60
+ "@wdio/dot-reporter": "^9.1.0",
61
+ "@wdio/mocha-framework": "^9.0.8",
62
+ "@wdio/spec-reporter": "^9.1.0",
63
+ "@wdio/types": "^9.0.8",
64
+ "@yarnpkg/sdks": "^3.0.0-rc.38",
65
+ "concurrently": "^7.6.0",
66
+ "eslint": "^8.33.0",
67
+ "eslint-config-prettier": "^8.6.0",
68
+ "eslint-import-resolver-typescript": "^3.5.3",
69
+ "eslint-plugin-import": "^2.27.5",
70
+ "eslint-plugin-jest": "^27.2.1",
71
+ "eslint-plugin-react": "^7.32.2",
72
+ "eslint-plugin-react-hooks": "^4.6.0",
73
+ "expect": "^29.7.0",
74
+ "husky": "^8.0.3",
75
+ "jest": "^29.7.0",
76
+ "jest-environment-jsdom": "^29.7.0",
77
+ "lint-staged": "^13.1.0",
78
+ "markdown-toc": "^1.2.0",
79
+ "prettier": "^2.8.3",
80
+ "prosemirror-commands": "^1.5.0",
81
+ "prosemirror-gapcursor": "^1.3.2",
82
+ "prosemirror-inputrules": "^1.4.0",
83
+ "prosemirror-keymap": "^1.2.1",
84
+ "prosemirror-model": "^1.22.3",
85
+ "prosemirror-schema-list": "^1.2.2",
86
+ "prosemirror-state": "^1.4.3",
87
+ "prosemirror-tables": "^1.3.7",
88
+ "prosemirror-test-builder": "^1.1.1",
89
+ "prosemirror-transform": "^1.8.0",
90
+ "prosemirror-view": "^1.34.2",
91
+ "react": "^18.2.0",
92
+ "react-dom": "^18.2.0",
93
+ "rimraf": "^3.0.2",
94
+ "tsx": "^4.19.1",
95
+ "typescript": "^4.9.5",
96
+ "vite": "^5.4.5",
97
+ "webdriverio": "^9.0.9"
98
+ },
99
+ "peerDependencies": {
100
+ "prosemirror-model": "^1.0.0",
101
+ "prosemirror-state": "^1.0.0",
102
+ "prosemirror-view": "1.34.2",
103
+ "react": "17 - 19",
104
+ "react-dom": "17 - 19"
105
+ },
106
+ "packageManager": "yarn@4.5.3",
107
+ "engines": {
108
+ "node": ">=16.9"
109
+ },
110
+ "dependencies": {
111
+ "classnames": "^2.3.2"
112
+ }
113
+ }