@tiptap/extension-list-keymap 3.0.0 → 3.0.2-beta.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 (198) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +5 -1
  3. package/dist/index.cjs +34 -285
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.cts +2 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.js +10 -281
  8. package/dist/index.js.map +1 -1
  9. package/package.json +11 -9
  10. package/src/index.ts +3 -3
  11. package/dist/index.umd.js +0 -291
  12. package/dist/index.umd.js.map +0 -1
  13. package/dist/packages/core/src/CommandManager.d.ts +0 -20
  14. package/dist/packages/core/src/Editor.d.ts +0 -161
  15. package/dist/packages/core/src/EventEmitter.d.ts +0 -11
  16. package/dist/packages/core/src/Extension.d.ts +0 -343
  17. package/dist/packages/core/src/ExtensionManager.d.ts +0 -55
  18. package/dist/packages/core/src/InputRule.d.ts +0 -42
  19. package/dist/packages/core/src/Mark.d.ts +0 -451
  20. package/dist/packages/core/src/Node.d.ts +0 -611
  21. package/dist/packages/core/src/NodePos.d.ts +0 -44
  22. package/dist/packages/core/src/NodeView.d.ts +0 -31
  23. package/dist/packages/core/src/PasteRule.d.ts +0 -50
  24. package/dist/packages/core/src/Tracker.d.ts +0 -11
  25. package/dist/packages/core/src/commands/blur.d.ts +0 -13
  26. package/dist/packages/core/src/commands/clearContent.d.ts +0 -14
  27. package/dist/packages/core/src/commands/clearNodes.d.ts +0 -13
  28. package/dist/packages/core/src/commands/command.d.ts +0 -18
  29. package/dist/packages/core/src/commands/createParagraphNear.d.ts +0 -13
  30. package/dist/packages/core/src/commands/cut.d.ts +0 -20
  31. package/dist/packages/core/src/commands/deleteCurrentNode.d.ts +0 -13
  32. package/dist/packages/core/src/commands/deleteNode.d.ts +0 -15
  33. package/dist/packages/core/src/commands/deleteRange.d.ts +0 -14
  34. package/dist/packages/core/src/commands/deleteSelection.d.ts +0 -13
  35. package/dist/packages/core/src/commands/enter.d.ts +0 -13
  36. package/dist/packages/core/src/commands/exitCode.d.ts +0 -13
  37. package/dist/packages/core/src/commands/extendMarkRange.d.ts +0 -25
  38. package/dist/packages/core/src/commands/first.d.ts +0 -14
  39. package/dist/packages/core/src/commands/focus.d.ts +0 -27
  40. package/dist/packages/core/src/commands/forEach.d.ts +0 -14
  41. package/dist/packages/core/src/commands/index.d.ts +0 -55
  42. package/dist/packages/core/src/commands/insertContent.d.ts +0 -34
  43. package/dist/packages/core/src/commands/insertContentAt.d.ts +0 -47
  44. package/dist/packages/core/src/commands/join.d.ts +0 -41
  45. package/dist/packages/core/src/commands/joinItemBackward.d.ts +0 -13
  46. package/dist/packages/core/src/commands/joinItemForward.d.ts +0 -13
  47. package/dist/packages/core/src/commands/joinTextblockBackward.d.ts +0 -12
  48. package/dist/packages/core/src/commands/joinTextblockForward.d.ts +0 -12
  49. package/dist/packages/core/src/commands/keyboardShortcut.d.ts +0 -14
  50. package/dist/packages/core/src/commands/lift.d.ts +0 -17
  51. package/dist/packages/core/src/commands/liftEmptyBlock.d.ts +0 -13
  52. package/dist/packages/core/src/commands/liftListItem.d.ts +0 -15
  53. package/dist/packages/core/src/commands/newlineInCode.d.ts +0 -13
  54. package/dist/packages/core/src/commands/resetAttributes.d.ts +0 -16
  55. package/dist/packages/core/src/commands/scrollIntoView.d.ts +0 -13
  56. package/dist/packages/core/src/commands/selectAll.d.ts +0 -13
  57. package/dist/packages/core/src/commands/selectNodeBackward.d.ts +0 -13
  58. package/dist/packages/core/src/commands/selectNodeForward.d.ts +0 -13
  59. package/dist/packages/core/src/commands/selectParentNode.d.ts +0 -13
  60. package/dist/packages/core/src/commands/selectTextblockEnd.d.ts +0 -13
  61. package/dist/packages/core/src/commands/selectTextblockStart.d.ts +0 -13
  62. package/dist/packages/core/src/commands/setContent.d.ts +0 -40
  63. package/dist/packages/core/src/commands/setMark.d.ts +0 -15
  64. package/dist/packages/core/src/commands/setMeta.d.ts +0 -15
  65. package/dist/packages/core/src/commands/setNode.d.ts +0 -16
  66. package/dist/packages/core/src/commands/setNodeSelection.d.ts +0 -14
  67. package/dist/packages/core/src/commands/setTextSelection.d.ts +0 -14
  68. package/dist/packages/core/src/commands/sinkListItem.d.ts +0 -15
  69. package/dist/packages/core/src/commands/splitBlock.d.ts +0 -17
  70. package/dist/packages/core/src/commands/splitListItem.d.ts +0 -15
  71. package/dist/packages/core/src/commands/toggleList.d.ts +0 -18
  72. package/dist/packages/core/src/commands/toggleMark.d.ts +0 -30
  73. package/dist/packages/core/src/commands/toggleNode.d.ts +0 -17
  74. package/dist/packages/core/src/commands/toggleWrap.d.ts +0 -16
  75. package/dist/packages/core/src/commands/undoInputRule.d.ts +0 -13
  76. package/dist/packages/core/src/commands/unsetAllMarks.d.ts +0 -13
  77. package/dist/packages/core/src/commands/unsetMark.d.ts +0 -25
  78. package/dist/packages/core/src/commands/updateAttributes.d.ts +0 -24
  79. package/dist/packages/core/src/commands/wrapIn.d.ts +0 -16
  80. package/dist/packages/core/src/commands/wrapInList.d.ts +0 -16
  81. package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +0 -5
  82. package/dist/packages/core/src/extensions/commands.d.ts +0 -3
  83. package/dist/packages/core/src/extensions/editable.d.ts +0 -2
  84. package/dist/packages/core/src/extensions/focusEvents.d.ts +0 -2
  85. package/dist/packages/core/src/extensions/index.d.ts +0 -6
  86. package/dist/packages/core/src/extensions/keymap.d.ts +0 -2
  87. package/dist/packages/core/src/extensions/tabindex.d.ts +0 -2
  88. package/dist/packages/core/src/helpers/combineTransactionSteps.d.ts +0 -10
  89. package/dist/packages/core/src/helpers/createChainableState.d.ts +0 -10
  90. package/dist/packages/core/src/helpers/createDocument.d.ts +0 -12
  91. package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +0 -15
  92. package/dist/packages/core/src/helpers/defaultBlockAt.d.ts +0 -7
  93. package/dist/packages/core/src/helpers/findChildren.d.ts +0 -9
  94. package/dist/packages/core/src/helpers/findChildrenInRange.d.ts +0 -10
  95. package/dist/packages/core/src/helpers/findParentNode.d.ts +0 -16
  96. package/dist/packages/core/src/helpers/findParentNodeClosestToPos.d.ts +0 -17
  97. package/dist/packages/core/src/helpers/generateHTML.d.ts +0 -8
  98. package/dist/packages/core/src/helpers/generateJSON.d.ts +0 -8
  99. package/dist/packages/core/src/helpers/generateText.d.ts +0 -12
  100. package/dist/packages/core/src/helpers/getAttributes.d.ts +0 -9
  101. package/dist/packages/core/src/helpers/getAttributesFromExtensions.d.ts +0 -6
  102. package/dist/packages/core/src/helpers/getChangedRanges.d.ts +0 -11
  103. package/dist/packages/core/src/helpers/getDebugJSON.d.ts +0 -8
  104. package/dist/packages/core/src/helpers/getExtensionField.d.ts +0 -9
  105. package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +0 -2
  106. package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +0 -3
  107. package/dist/packages/core/src/helpers/getMarkRange.d.ts +0 -3
  108. package/dist/packages/core/src/helpers/getMarkType.d.ts +0 -2
  109. package/dist/packages/core/src/helpers/getMarksBetween.d.ts +0 -3
  110. package/dist/packages/core/src/helpers/getNodeAtPosition.d.ts +0 -11
  111. package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +0 -3
  112. package/dist/packages/core/src/helpers/getNodeType.d.ts +0 -2
  113. package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +0 -3
  114. package/dist/packages/core/src/helpers/getSchema.d.ts +0 -4
  115. package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +0 -10
  116. package/dist/packages/core/src/helpers/getSchemaTypeByName.d.ts +0 -8
  117. package/dist/packages/core/src/helpers/getSchemaTypeNameByName.d.ts +0 -8
  118. package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +0 -9
  119. package/dist/packages/core/src/helpers/getText.d.ts +0 -15
  120. package/dist/packages/core/src/helpers/getTextBetween.d.ts +0 -14
  121. package/dist/packages/core/src/helpers/getTextContentFromNodes.d.ts +0 -8
  122. package/dist/packages/core/src/helpers/getTextSerializersFromSchema.d.ts +0 -8
  123. package/dist/packages/core/src/helpers/index.d.ts +0 -50
  124. package/dist/packages/core/src/helpers/injectExtensionAttributesToParseRule.d.ts +0 -9
  125. package/dist/packages/core/src/helpers/isActive.d.ts +0 -2
  126. package/dist/packages/core/src/helpers/isAtEndOfNode.d.ts +0 -2
  127. package/dist/packages/core/src/helpers/isAtStartOfNode.d.ts +0 -2
  128. package/dist/packages/core/src/helpers/isExtensionRulesEnabled.d.ts +0 -2
  129. package/dist/packages/core/src/helpers/isList.d.ts +0 -2
  130. package/dist/packages/core/src/helpers/isMarkActive.d.ts +0 -3
  131. package/dist/packages/core/src/helpers/isNodeActive.d.ts +0 -3
  132. package/dist/packages/core/src/helpers/isNodeEmpty.d.ts +0 -2
  133. package/dist/packages/core/src/helpers/isNodeSelection.d.ts +0 -2
  134. package/dist/packages/core/src/helpers/isTextSelection.d.ts +0 -2
  135. package/dist/packages/core/src/helpers/posToDOMRect.d.ts +0 -2
  136. package/dist/packages/core/src/helpers/resolveFocusPosition.d.ts +0 -4
  137. package/dist/packages/core/src/helpers/selectionToInsertionEnd.d.ts +0 -2
  138. package/dist/packages/core/src/helpers/splitExtensions.d.ts +0 -9
  139. package/dist/packages/core/src/index.d.ts +0 -24
  140. package/dist/packages/core/src/inputRules/index.d.ts +0 -5
  141. package/dist/packages/core/src/inputRules/markInputRule.d.ts +0 -13
  142. package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +0 -23
  143. package/dist/packages/core/src/inputRules/textInputRule.d.ts +0 -10
  144. package/dist/packages/core/src/inputRules/textblockTypeInputRule.d.ts +0 -15
  145. package/dist/packages/core/src/inputRules/wrappingInputRule.d.ts +0 -28
  146. package/dist/packages/core/src/pasteRules/index.d.ts +0 -3
  147. package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +0 -13
  148. package/dist/packages/core/src/pasteRules/nodePasteRule.d.ts +0 -13
  149. package/dist/packages/core/src/pasteRules/textPasteRule.d.ts +0 -10
  150. package/dist/packages/core/src/style.d.ts +0 -1
  151. package/dist/packages/core/src/types.d.ts +0 -255
  152. package/dist/packages/core/src/utilities/callOrReturn.d.ts +0 -9
  153. package/dist/packages/core/src/utilities/createStyleTag.d.ts +0 -1
  154. package/dist/packages/core/src/utilities/deleteProps.d.ts +0 -6
  155. package/dist/packages/core/src/utilities/elementFromString.d.ts +0 -1
  156. package/dist/packages/core/src/utilities/escapeForRegEx.d.ts +0 -1
  157. package/dist/packages/core/src/utilities/findDuplicates.d.ts +0 -1
  158. package/dist/packages/core/src/utilities/fromString.d.ts +0 -1
  159. package/dist/packages/core/src/utilities/index.d.ts +0 -20
  160. package/dist/packages/core/src/utilities/isAndroid.d.ts +0 -1
  161. package/dist/packages/core/src/utilities/isEmptyObject.d.ts +0 -1
  162. package/dist/packages/core/src/utilities/isFunction.d.ts +0 -1
  163. package/dist/packages/core/src/utilities/isMacOS.d.ts +0 -1
  164. package/dist/packages/core/src/utilities/isNumber.d.ts +0 -1
  165. package/dist/packages/core/src/utilities/isPlainObject.d.ts +0 -1
  166. package/dist/packages/core/src/utilities/isRegExp.d.ts +0 -1
  167. package/dist/packages/core/src/utilities/isString.d.ts +0 -1
  168. package/dist/packages/core/src/utilities/isiOS.d.ts +0 -1
  169. package/dist/packages/core/src/utilities/mergeAttributes.d.ts +0 -1
  170. package/dist/packages/core/src/utilities/mergeDeep.d.ts +0 -1
  171. package/dist/packages/core/src/utilities/minMax.d.ts +0 -1
  172. package/dist/packages/core/src/utilities/objectIncludes.d.ts +0 -8
  173. package/dist/packages/core/src/utilities/removeDuplicates.d.ts +0 -8
  174. package/dist/packages/extension-list-keymap/src/index.d.ts +0 -4
  175. package/dist/packages/extension-list-keymap/src/list-keymap.d.ts +0 -20
  176. package/dist/packages/extension-list-keymap/src/listHelpers/findListItemPos.d.ts +0 -6
  177. package/dist/packages/extension-list-keymap/src/listHelpers/getNextListDepth.d.ts +0 -2
  178. package/dist/packages/extension-list-keymap/src/listHelpers/handleBackspace.d.ts +0 -2
  179. package/dist/packages/extension-list-keymap/src/listHelpers/handleDelete.d.ts +0 -2
  180. package/dist/packages/extension-list-keymap/src/listHelpers/hasListBefore.d.ts +0 -2
  181. package/dist/packages/extension-list-keymap/src/listHelpers/hasListItemAfter.d.ts +0 -2
  182. package/dist/packages/extension-list-keymap/src/listHelpers/hasListItemBefore.d.ts +0 -2
  183. package/dist/packages/extension-list-keymap/src/listHelpers/index.d.ts +0 -10
  184. package/dist/packages/extension-list-keymap/src/listHelpers/listItemHasSubList.d.ts +0 -3
  185. package/dist/packages/extension-list-keymap/src/listHelpers/nextListIsDeeper.d.ts +0 -2
  186. package/dist/packages/extension-list-keymap/src/listHelpers/nextListIsHigher.d.ts +0 -2
  187. package/src/list-keymap.ts +0 -106
  188. package/src/listHelpers/findListItemPos.ts +0 -30
  189. package/src/listHelpers/getNextListDepth.ts +0 -16
  190. package/src/listHelpers/handleBackspace.ts +0 -74
  191. package/src/listHelpers/handleDelete.ts +0 -37
  192. package/src/listHelpers/hasListBefore.ts +0 -15
  193. package/src/listHelpers/hasListItemAfter.ts +0 -17
  194. package/src/listHelpers/hasListItemBefore.ts +0 -17
  195. package/src/listHelpers/index.ts +0 -10
  196. package/src/listHelpers/listItemHasSubList.ts +0 -21
  197. package/src/listHelpers/nextListIsDeeper.ts +0 -19
  198. package/src/listHelpers/nextListIsHigher.ts +0 -19
@@ -1,255 +0,0 @@
1
- import { Mark as ProseMirrorMark, Node as ProseMirrorNode, NodeType, ParseOptions } from '@tiptap/pm/model';
2
- import { EditorState, Transaction } from '@tiptap/pm/state';
3
- import { Decoration, EditorProps, EditorView, NodeView } from '@tiptap/pm/view';
4
- import { Editor } from './Editor.js';
5
- import { Extension } from './Extension.js';
6
- import { Commands, ExtensionConfig, MarkConfig, NodeConfig } from './index.js';
7
- import { Mark } from './Mark.js';
8
- import { Node } from './Node.js';
9
- export type AnyConfig = ExtensionConfig | NodeConfig | MarkConfig;
10
- export type AnyExtension = Extension | Node | Mark;
11
- export type Extensions = AnyExtension[];
12
- export type ParentConfig<T> = Partial<{
13
- [P in keyof T]: Required<T>[P] extends (...args: any) => any ? (...args: Parameters<Required<T>[P]>) => ReturnType<Required<T>[P]> : T[P];
14
- }>;
15
- export type Primitive = null | undefined | string | number | boolean | symbol | bigint;
16
- export type RemoveThis<T> = T extends (...args: any) => any ? (...args: Parameters<T>) => ReturnType<T> : T;
17
- export type MaybeReturnType<T> = T extends (...args: any) => any ? ReturnType<T> : T;
18
- export type MaybeThisParameterType<T> = Exclude<T, Primitive> extends (...args: any) => any ? ThisParameterType<Exclude<T, Primitive>> : any;
19
- export interface EditorEvents {
20
- beforeCreate: {
21
- editor: Editor;
22
- };
23
- create: {
24
- editor: Editor;
25
- };
26
- contentError: {
27
- editor: Editor;
28
- error: Error;
29
- /**
30
- * If called, will re-initialize the editor with the collaboration extension removed.
31
- * This will prevent syncing back deletions of content not present in the current schema.
32
- */
33
- disableCollaboration: () => void;
34
- };
35
- update: {
36
- editor: Editor;
37
- transaction: Transaction;
38
- };
39
- selectionUpdate: {
40
- editor: Editor;
41
- transaction: Transaction;
42
- };
43
- beforeTransaction: {
44
- editor: Editor;
45
- transaction: Transaction;
46
- nextState: EditorState;
47
- };
48
- transaction: {
49
- editor: Editor;
50
- transaction: Transaction;
51
- };
52
- focus: {
53
- editor: Editor;
54
- event: FocusEvent;
55
- transaction: Transaction;
56
- };
57
- blur: {
58
- editor: Editor;
59
- event: FocusEvent;
60
- transaction: Transaction;
61
- };
62
- destroy: void;
63
- }
64
- export type EnableRules = (AnyExtension | string)[] | boolean;
65
- export interface EditorOptions {
66
- element: Element;
67
- content: Content;
68
- extensions: Extensions;
69
- injectCSS: boolean;
70
- injectNonce: string | undefined;
71
- autofocus: FocusPosition;
72
- editable: boolean;
73
- editorProps: EditorProps;
74
- parseOptions: ParseOptions;
75
- coreExtensionOptions?: {
76
- clipboardTextSerializer?: {
77
- blockSeparator?: string;
78
- };
79
- };
80
- enableInputRules: EnableRules;
81
- enablePasteRules: EnableRules;
82
- enableCoreExtensions: boolean;
83
- /**
84
- * If `true`, the editor will check the content for errors on initialization.
85
- * Emitting the `contentError` event if the content is invalid.
86
- * Which can be used to show a warning or error message to the user.
87
- * @default false
88
- */
89
- enableContentCheck: boolean;
90
- onBeforeCreate: (props: EditorEvents['beforeCreate']) => void;
91
- onCreate: (props: EditorEvents['create']) => void;
92
- /**
93
- * Called when the editor encounters an error while parsing the content.
94
- * Only enabled if `enableContentCheck` is `true`.
95
- */
96
- onContentError: (props: EditorEvents['contentError']) => void;
97
- onUpdate: (props: EditorEvents['update']) => void;
98
- onSelectionUpdate: (props: EditorEvents['selectionUpdate']) => void;
99
- onTransaction: (props: EditorEvents['transaction']) => void;
100
- onFocus: (props: EditorEvents['focus']) => void;
101
- onBlur: (props: EditorEvents['blur']) => void;
102
- onDestroy: (props: EditorEvents['destroy']) => void;
103
- }
104
- export type HTMLContent = string;
105
- export type JSONContent = {
106
- type?: string;
107
- attrs?: Record<string, any>;
108
- content?: JSONContent[];
109
- marks?: {
110
- type: string;
111
- attrs?: Record<string, any>;
112
- [key: string]: any;
113
- }[];
114
- text?: string;
115
- [key: string]: any;
116
- };
117
- export type Content = HTMLContent | JSONContent | JSONContent[] | null;
118
- export type CommandProps = {
119
- editor: Editor;
120
- tr: Transaction;
121
- commands: SingleCommands;
122
- can: () => CanCommands;
123
- chain: () => ChainedCommands;
124
- state: EditorState;
125
- view: EditorView;
126
- dispatch: ((args?: any) => any) | undefined;
127
- };
128
- export type Command = (props: CommandProps) => boolean;
129
- export type CommandSpec = (...args: any[]) => Command;
130
- export type KeyboardShortcutCommand = (props: {
131
- editor: Editor;
132
- }) => boolean;
133
- export type Attribute = {
134
- default?: any;
135
- rendered?: boolean;
136
- renderHTML?: ((attributes: Record<string, any>) => Record<string, any> | null) | null;
137
- parseHTML?: ((element: HTMLElement) => any | null) | null;
138
- keepOnSplit?: boolean;
139
- isRequired?: boolean;
140
- };
141
- export type Attributes = {
142
- [key: string]: Attribute;
143
- };
144
- export type ExtensionAttribute = {
145
- type: string;
146
- name: string;
147
- attribute: Required<Attribute>;
148
- };
149
- export type GlobalAttributes = {
150
- /**
151
- * The node & mark types this attribute should be applied to.
152
- */
153
- types: string[];
154
- /**
155
- * The attributes to add to the node or mark types.
156
- */
157
- attributes: {
158
- [key: string]: Attribute;
159
- };
160
- }[];
161
- export type PickValue<T, K extends keyof T> = T[K];
162
- export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
163
- export type Diff<T extends keyof any, U extends keyof any> = ({
164
- [P in T]: P;
165
- } & {
166
- [P in U]: never;
167
- } & {
168
- [x: string]: never;
169
- })[T];
170
- export type Overwrite<T, U> = Pick<T, Diff<keyof T, keyof U>> & U;
171
- export type ValuesOf<T> = T[keyof T];
172
- export type KeysWithTypeOf<T, Type> = {
173
- [P in keyof T]: T[P] extends Type ? P : never;
174
- }[keyof T];
175
- export type DecorationWithType = Decoration & {
176
- type: NodeType;
177
- };
178
- export type NodeViewProps = {
179
- editor: Editor;
180
- node: ProseMirrorNode;
181
- decorations: DecorationWithType[];
182
- selected: boolean;
183
- extension: Node;
184
- getPos: () => number;
185
- updateAttributes: (attributes: Record<string, any>) => void;
186
- deleteNode: () => void;
187
- };
188
- export interface NodeViewRendererOptions {
189
- stopEvent: ((props: {
190
- event: Event;
191
- }) => boolean) | null;
192
- ignoreMutation: ((props: {
193
- mutation: MutationRecord | {
194
- type: 'selection';
195
- target: Element;
196
- };
197
- }) => boolean) | null;
198
- contentDOMElementTag: string;
199
- }
200
- export type NodeViewRendererProps = {
201
- editor: Editor;
202
- node: ProseMirrorNode;
203
- getPos: (() => number) | boolean;
204
- HTMLAttributes: Record<string, any>;
205
- decorations: Decoration[];
206
- extension: Node;
207
- };
208
- export type NodeViewRenderer = (props: NodeViewRendererProps) => NodeView | {};
209
- export type AnyCommands = Record<string, (...args: any[]) => Command>;
210
- export type UnionCommands<T = Command> = UnionToIntersection<ValuesOf<Pick<Commands<T>, KeysWithTypeOf<Commands<T>, {}>>>>;
211
- export type RawCommands = {
212
- [Item in keyof UnionCommands]: UnionCommands<Command>[Item];
213
- };
214
- export type SingleCommands = {
215
- [Item in keyof UnionCommands]: UnionCommands<boolean>[Item];
216
- };
217
- export type ChainedCommands = {
218
- [Item in keyof UnionCommands]: UnionCommands<ChainedCommands>[Item];
219
- } & {
220
- run: () => boolean;
221
- };
222
- export type CanCommands = SingleCommands & {
223
- chain: () => ChainedCommands;
224
- };
225
- export type FocusPosition = 'start' | 'end' | 'all' | number | boolean | null;
226
- export type Range = {
227
- from: number;
228
- to: number;
229
- };
230
- export type NodeRange = {
231
- node: ProseMirrorNode;
232
- from: number;
233
- to: number;
234
- };
235
- export type MarkRange = {
236
- mark: ProseMirrorMark;
237
- from: number;
238
- to: number;
239
- };
240
- export type Predicate = (node: ProseMirrorNode) => boolean;
241
- export type NodeWithPos = {
242
- node: ProseMirrorNode;
243
- pos: number;
244
- };
245
- export type TextSerializer = (props: {
246
- node: ProseMirrorNode;
247
- pos: number;
248
- parent: ProseMirrorNode;
249
- index: number;
250
- range: Range;
251
- }) => string;
252
- export type ExtendedRegExpMatchArray = RegExpMatchArray & {
253
- data?: Record<string, any>;
254
- };
255
- export type Dispatch = ((args?: any) => any) | undefined;
@@ -1,9 +0,0 @@
1
- import { MaybeReturnType } from '../types.js';
2
- /**
3
- * Optionally calls `value` as a function.
4
- * Otherwise it is returned directly.
5
- * @param value Function or any value.
6
- * @param context Optional context to bind to function.
7
- * @param props Optional props to pass to function.
8
- */
9
- export declare function callOrReturn<T>(value: T, context?: any, ...props: any[]): MaybeReturnType<T>;
@@ -1 +0,0 @@
1
- export declare function createStyleTag(style: string, nonce?: string, suffix?: string): HTMLStyleElement;
@@ -1,6 +0,0 @@
1
- /**
2
- * Remove a property or an array of properties from an object
3
- * @param obj Object
4
- * @param key Key to remove
5
- */
6
- export declare function deleteProps(obj: Record<string, any>, propOrProps: string | string[]): Record<string, any>;
@@ -1 +0,0 @@
1
- export declare function elementFromString(value: string): HTMLElement;
@@ -1 +0,0 @@
1
- export declare function escapeForRegEx(string: string): string;
@@ -1 +0,0 @@
1
- export declare function findDuplicates(items: any[]): any[];
@@ -1 +0,0 @@
1
- export declare function fromString(value: any): any;
@@ -1,20 +0,0 @@
1
- export * from './callOrReturn.js';
2
- export * from './createStyleTag.js';
3
- export * from './deleteProps.js';
4
- export * from './elementFromString.js';
5
- export * from './escapeForRegEx.js';
6
- export * from './findDuplicates.js';
7
- export * from './fromString.js';
8
- export * from './isEmptyObject.js';
9
- export * from './isFunction.js';
10
- export * from './isiOS.js';
11
- export * from './isMacOS.js';
12
- export * from './isNumber.js';
13
- export * from './isPlainObject.js';
14
- export * from './isRegExp.js';
15
- export * from './isString.js';
16
- export * from './mergeAttributes.js';
17
- export * from './mergeDeep.js';
18
- export * from './minMax.js';
19
- export * from './objectIncludes.js';
20
- export * from './removeDuplicates.js';
@@ -1 +0,0 @@
1
- export declare function isAndroid(): boolean;
@@ -1 +0,0 @@
1
- export declare function isEmptyObject(value?: {}): boolean;
@@ -1 +0,0 @@
1
- export declare function isFunction(value: any): value is Function;
@@ -1 +0,0 @@
1
- export declare function isMacOS(): boolean;
@@ -1 +0,0 @@
1
- export declare function isNumber(value: any): value is number;
@@ -1 +0,0 @@
1
- export declare function isPlainObject(value: any): value is Record<string, any>;
@@ -1 +0,0 @@
1
- export declare function isRegExp(value: any): value is RegExp;
@@ -1 +0,0 @@
1
- export declare function isString(value: any): value is string;
@@ -1 +0,0 @@
1
- export declare function isiOS(): boolean;
@@ -1 +0,0 @@
1
- export declare function mergeAttributes(...objects: Record<string, any>[]): Record<string, any>;
@@ -1 +0,0 @@
1
- export declare function mergeDeep(target: Record<string, any>, source: Record<string, any>): Record<string, any>;
@@ -1 +0,0 @@
1
- export declare function minMax(value?: number, min?: number, max?: number): number;
@@ -1,8 +0,0 @@
1
- /**
2
- * Check if object1 includes object2
3
- * @param object1 Object
4
- * @param object2 Object
5
- */
6
- export declare function objectIncludes(object1: Record<string, any>, object2: Record<string, any>, options?: {
7
- strict: boolean;
8
- }): boolean;
@@ -1,8 +0,0 @@
1
- /**
2
- * Removes duplicated values within an array.
3
- * Supports numbers, strings and objects.
4
- */
5
- export declare function removeDuplicates<T>(array: T[], by?: {
6
- (value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;
7
- (value: any, replacer?: (number | string)[] | null, space?: string | number): string;
8
- }): T[];
@@ -1,4 +0,0 @@
1
- import { ListKeymap } from './list-keymap.js';
2
- export * from './list-keymap.js';
3
- export * as listHelpers from './listHelpers/index.js';
4
- export default ListKeymap;
@@ -1,20 +0,0 @@
1
- import { Extension } from '@tiptap/core';
2
- export type ListKeymapOptions = {
3
- /**
4
- * An array of list types. This is used for item and wrapper list matching.
5
- * @default []
6
- * @example [{ itemName: 'listItem', wrapperNames: ['bulletList', 'orderedList'] }]
7
- */
8
- listTypes: Array<{
9
- itemName: string;
10
- wrapperNames: string[];
11
- }>;
12
- };
13
- /**
14
- * This extension registers custom keymaps to change the behaviour of the backspace and delete keys.
15
- * By default Prosemirror keyhandling will always lift or sink items so paragraphs are joined into
16
- * the adjacent or previous list item. This extension will prevent this behaviour and instead will
17
- * try to join paragraphs from two list items into a single list item.
18
- * @see https://www.tiptap.dev/api/extensions/list-keymap
19
- */
20
- export declare const ListKeymap: Extension<ListKeymapOptions, any>;
@@ -1,6 +0,0 @@
1
- import { NodeType } from '@tiptap/pm/model';
2
- import { EditorState } from '@tiptap/pm/state';
3
- export declare const findListItemPos: (typeOrName: string | NodeType, state: EditorState) => {
4
- $pos: import("prosemirror-model").ResolvedPos;
5
- depth: number;
6
- } | null;
@@ -1,2 +0,0 @@
1
- import { EditorState } from '@tiptap/pm/state';
2
- export declare const getNextListDepth: (typeOrName: string, state: EditorState) => number | false;
@@ -1,2 +0,0 @@
1
- import { Editor } from '@tiptap/core';
2
- export declare const handleBackspace: (editor: Editor, name: string, parentListTypes: string[]) => boolean;
@@ -1,2 +0,0 @@
1
- import { Editor } from '@tiptap/core';
2
- export declare const handleDelete: (editor: Editor, name: string) => boolean;
@@ -1,2 +0,0 @@
1
- import { EditorState } from '@tiptap/pm/state';
2
- export declare const hasListBefore: (editorState: EditorState, name: string, parentListTypes: string[]) => boolean;
@@ -1,2 +0,0 @@
1
- import { EditorState } from '@tiptap/pm/state';
2
- export declare const hasListItemAfter: (typeOrName: string, state: EditorState) => boolean;
@@ -1,2 +0,0 @@
1
- import { EditorState } from '@tiptap/pm/state';
2
- export declare const hasListItemBefore: (typeOrName: string, state: EditorState) => boolean;
@@ -1,10 +0,0 @@
1
- export * from './findListItemPos.js';
2
- export * from './getNextListDepth.js';
3
- export * from './handleBackspace.js';
4
- export * from './handleDelete.js';
5
- export * from './hasListBefore.js';
6
- export * from './hasListItemAfter.js';
7
- export * from './hasListItemBefore.js';
8
- export * from './listItemHasSubList.js';
9
- export * from './nextListIsDeeper.js';
10
- export * from './nextListIsHigher.js';
@@ -1,3 +0,0 @@
1
- import { Node } from '@tiptap/pm/model';
2
- import { EditorState } from '@tiptap/pm/state';
3
- export declare const listItemHasSubList: (typeOrName: string, state: EditorState, node?: Node) => boolean;
@@ -1,2 +0,0 @@
1
- import { EditorState } from '@tiptap/pm/state';
2
- export declare const nextListIsDeeper: (typeOrName: string, state: EditorState) => boolean;
@@ -1,2 +0,0 @@
1
- import { EditorState } from '@tiptap/pm/state';
2
- export declare const nextListIsHigher: (typeOrName: string, state: EditorState) => boolean;
@@ -1,106 +0,0 @@
1
- import { Extension } from '@tiptap/core'
2
-
3
- import { handleBackspace, handleDelete } from './listHelpers/index.js'
4
-
5
- export type ListKeymapOptions = {
6
- /**
7
- * An array of list types. This is used for item and wrapper list matching.
8
- * @default []
9
- * @example [{ itemName: 'listItem', wrapperNames: ['bulletList', 'orderedList'] }]
10
- */
11
- listTypes: Array<{
12
- itemName: string,
13
- wrapperNames: string[],
14
- }>
15
- }
16
-
17
- /**
18
- * This extension registers custom keymaps to change the behaviour of the backspace and delete keys.
19
- * By default Prosemirror keyhandling will always lift or sink items so paragraphs are joined into
20
- * the adjacent or previous list item. This extension will prevent this behaviour and instead will
21
- * try to join paragraphs from two list items into a single list item.
22
- * @see https://www.tiptap.dev/api/extensions/list-keymap
23
- */
24
- export const ListKeymap = Extension.create<ListKeymapOptions>({
25
- name: 'listKeymap',
26
-
27
- addOptions() {
28
- return {
29
- listTypes: [
30
- {
31
- itemName: 'listItem',
32
- wrapperNames: ['bulletList', 'orderedList'],
33
- },
34
- {
35
- itemName: 'taskItem',
36
- wrapperNames: ['taskList'],
37
- },
38
- ],
39
- }
40
- },
41
-
42
- addKeyboardShortcuts() {
43
- return {
44
- Delete: ({ editor }) => {
45
- let handled = false
46
-
47
- this.options.listTypes.forEach(({ itemName }) => {
48
- if (editor.state.schema.nodes[itemName] === undefined) {
49
- return
50
- }
51
-
52
- if (handleDelete(editor, itemName)) {
53
- handled = true
54
- }
55
- })
56
-
57
- return handled
58
- },
59
- 'Mod-Delete': ({ editor }) => {
60
- let handled = false
61
-
62
- this.options.listTypes.forEach(({ itemName }) => {
63
- if (editor.state.schema.nodes[itemName] === undefined) {
64
- return
65
- }
66
-
67
- if (handleDelete(editor, itemName)) {
68
- handled = true
69
- }
70
- })
71
-
72
- return handled
73
- },
74
- Backspace: ({ editor }) => {
75
- let handled = false
76
-
77
- this.options.listTypes.forEach(({ itemName, wrapperNames }) => {
78
- if (editor.state.schema.nodes[itemName] === undefined) {
79
- return
80
- }
81
-
82
- if (handleBackspace(editor, itemName, wrapperNames)) {
83
- handled = true
84
- }
85
- })
86
-
87
- return handled
88
- },
89
- 'Mod-Backspace': ({ editor }) => {
90
- let handled = false
91
-
92
- this.options.listTypes.forEach(({ itemName, wrapperNames }) => {
93
- if (editor.state.schema.nodes[itemName] === undefined) {
94
- return
95
- }
96
-
97
- if (handleBackspace(editor, itemName, wrapperNames)) {
98
- handled = true
99
- }
100
- })
101
-
102
- return handled
103
- },
104
- }
105
- },
106
- })
@@ -1,30 +0,0 @@
1
- import { getNodeType } from '@tiptap/core'
2
- import { NodeType } from '@tiptap/pm/model'
3
- import { EditorState } from '@tiptap/pm/state'
4
-
5
- export const findListItemPos = (typeOrName: string | NodeType, state: EditorState) => {
6
- const { $from } = state.selection
7
- const nodeType = getNodeType(typeOrName, state.schema)
8
-
9
- let currentNode = null
10
- let currentDepth = $from.depth
11
- let currentPos = $from.pos
12
- let targetDepth: number | null = null
13
-
14
- while (currentDepth > 0 && targetDepth === null) {
15
- currentNode = $from.node(currentDepth)
16
-
17
- if (currentNode.type === nodeType) {
18
- targetDepth = currentDepth
19
- } else {
20
- currentDepth -= 1
21
- currentPos -= 1
22
- }
23
- }
24
-
25
- if (targetDepth === null) {
26
- return null
27
- }
28
-
29
- return { $pos: state.doc.resolve(currentPos), depth: targetDepth }
30
- }
@@ -1,16 +0,0 @@
1
- import { getNodeAtPosition } from '@tiptap/core'
2
- import { EditorState } from '@tiptap/pm/state'
3
-
4
- import { findListItemPos } from './findListItemPos.js'
5
-
6
- export const getNextListDepth = (typeOrName: string, state: EditorState) => {
7
- const listItemPos = findListItemPos(typeOrName, state)
8
-
9
- if (!listItemPos) {
10
- return false
11
- }
12
-
13
- const [, depth] = getNodeAtPosition(state, typeOrName, listItemPos.$pos.pos + 4)
14
-
15
- return depth
16
- }