@tiptap/extension-task-item 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 (176) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +5 -1
  3. package/dist/index.cjs +32 -165
  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 +9 -161
  8. package/dist/index.js.map +1 -1
  9. package/package.json +11 -11
  10. package/src/index.ts +3 -2
  11. package/dist/index.umd.js +0 -171
  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-task-item/src/index.d.ts +0 -3
  175. package/dist/packages/extension-task-item/src/task-item.d.ts +0 -38
  176. package/src/task-item.ts +0 -220
@@ -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,3 +0,0 @@
1
- import { TaskItem } from './task-item.js';
2
- export * from './task-item.js';
3
- export default TaskItem;
@@ -1,38 +0,0 @@
1
- import { Node } from '@tiptap/core';
2
- import { Node as ProseMirrorNode } from '@tiptap/pm/model';
3
- export interface TaskItemOptions {
4
- /**
5
- * A callback function that is called when the checkbox is clicked while the editor is in readonly mode.
6
- * @param node The prosemirror node of the task item
7
- * @param checked The new checked state
8
- * @returns boolean
9
- */
10
- onReadOnlyChecked?: (node: ProseMirrorNode, checked: boolean) => boolean;
11
- /**
12
- * Controls whether the task items can be nested or not.
13
- * @default false
14
- * @example true
15
- */
16
- nested: boolean;
17
- /**
18
- * HTML attributes to add to the task item element.
19
- * @default {}
20
- * @example { class: 'foo' }
21
- */
22
- HTMLAttributes: Record<string, any>;
23
- /**
24
- * The node type for taskList nodes
25
- * @default 'taskList'
26
- * @example 'myCustomTaskList'
27
- */
28
- taskListTypeName: string;
29
- }
30
- /**
31
- * Matches a task item to a - [ ] on input.
32
- */
33
- export declare const inputRegex: RegExp;
34
- /**
35
- * This extension allows you to create task items.
36
- * @see https://www.tiptap.dev/api/nodes/task-item
37
- */
38
- export declare const TaskItem: Node<TaskItemOptions, any>;
package/src/task-item.ts DELETED
@@ -1,220 +0,0 @@
1
- import {
2
- KeyboardShortcutCommand, mergeAttributes, Node, wrappingInputRule,
3
- } from '@tiptap/core'
4
- import { Node as ProseMirrorNode } from '@tiptap/pm/model'
5
-
6
- export interface TaskItemOptions {
7
- /**
8
- * A callback function that is called when the checkbox is clicked while the editor is in readonly mode.
9
- * @param node The prosemirror node of the task item
10
- * @param checked The new checked state
11
- * @returns boolean
12
- */
13
- onReadOnlyChecked?: (node: ProseMirrorNode, checked: boolean) => boolean
14
-
15
- /**
16
- * Controls whether the task items can be nested or not.
17
- * @default false
18
- * @example true
19
- */
20
- nested: boolean
21
-
22
- /**
23
- * HTML attributes to add to the task item element.
24
- * @default {}
25
- * @example { class: 'foo' }
26
- */
27
- HTMLAttributes: Record<string, any>
28
-
29
- /**
30
- * The node type for taskList nodes
31
- * @default 'taskList'
32
- * @example 'myCustomTaskList'
33
- */
34
- taskListTypeName: string
35
- }
36
-
37
- /**
38
- * Matches a task item to a - [ ] on input.
39
- */
40
- export const inputRegex = /^\s*(\[([( |x])?\])\s$/
41
-
42
- /**
43
- * This extension allows you to create task items.
44
- * @see https://www.tiptap.dev/api/nodes/task-item
45
- */
46
- export const TaskItem = Node.create<TaskItemOptions>({
47
- name: 'taskItem',
48
-
49
- addOptions() {
50
- return {
51
- nested: false,
52
- HTMLAttributes: {},
53
- taskListTypeName: 'taskList',
54
- }
55
- },
56
-
57
- content() {
58
- return this.options.nested ? 'paragraph block*' : 'paragraph+'
59
- },
60
-
61
- defining: true,
62
-
63
- addAttributes() {
64
- return {
65
- checked: {
66
- default: false,
67
- keepOnSplit: false,
68
- parseHTML: element => element.getAttribute('data-checked') === 'true',
69
- renderHTML: attributes => ({
70
- 'data-checked': attributes.checked,
71
- }),
72
- },
73
- }
74
- },
75
-
76
- parseHTML() {
77
- return [
78
- {
79
- tag: `li[data-type="${this.name}"]`,
80
- priority: 51,
81
- },
82
- ]
83
- },
84
-
85
- renderHTML({ node, HTMLAttributes }) {
86
- return [
87
- 'li',
88
- mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {
89
- 'data-type': this.name,
90
- }),
91
- [
92
- 'label',
93
- [
94
- 'input',
95
- {
96
- type: 'checkbox',
97
- checked: node.attrs.checked ? 'checked' : null,
98
- },
99
- ],
100
- ['span'],
101
- ],
102
- ['div', 0],
103
- ]
104
- },
105
-
106
- addKeyboardShortcuts() {
107
- const shortcuts: {
108
- [key: string]: KeyboardShortcutCommand
109
- } = {
110
- Enter: () => this.editor.commands.splitListItem(this.name),
111
- 'Shift-Tab': () => this.editor.commands.liftListItem(this.name),
112
- }
113
-
114
- if (!this.options.nested) {
115
- return shortcuts
116
- }
117
-
118
- return {
119
- ...shortcuts,
120
- Tab: () => this.editor.commands.sinkListItem(this.name),
121
- }
122
- },
123
-
124
- addNodeView() {
125
- return ({
126
- node, HTMLAttributes, getPos, editor,
127
- }) => {
128
- const listItem = document.createElement('li')
129
- const checkboxWrapper = document.createElement('label')
130
- const checkboxStyler = document.createElement('span')
131
- const checkbox = document.createElement('input')
132
- const content = document.createElement('div')
133
-
134
- checkboxWrapper.contentEditable = 'false'
135
- checkbox.type = 'checkbox'
136
- checkbox.addEventListener('change', event => {
137
- // if the editor isn’t editable and we don't have a handler for
138
- // readonly checks we have to undo the latest change
139
- if (!editor.isEditable && !this.options.onReadOnlyChecked) {
140
- checkbox.checked = !checkbox.checked
141
-
142
- return
143
- }
144
-
145
- const { checked } = event.target as any
146
-
147
- if (editor.isEditable && typeof getPos === 'function') {
148
- editor
149
- .chain()
150
- .focus(undefined, { scrollIntoView: false })
151
- .command(({ tr }) => {
152
- const position = getPos()
153
- const currentNode = tr.doc.nodeAt(position)
154
-
155
- tr.setNodeMarkup(position, undefined, {
156
- ...currentNode?.attrs,
157
- checked,
158
- })
159
-
160
- return true
161
- })
162
- .run()
163
- }
164
- if (!editor.isEditable && this.options.onReadOnlyChecked) {
165
- // Reset state if onReadOnlyChecked returns false
166
- if (!this.options.onReadOnlyChecked(node, checked)) {
167
- checkbox.checked = !checkbox.checked
168
- }
169
- }
170
- })
171
-
172
- Object.entries(this.options.HTMLAttributes).forEach(([key, value]) => {
173
- listItem.setAttribute(key, value)
174
- })
175
-
176
- listItem.dataset.checked = node.attrs.checked
177
- if (node.attrs.checked) {
178
- checkbox.setAttribute('checked', 'checked')
179
- }
180
-
181
- checkboxWrapper.append(checkbox, checkboxStyler)
182
- listItem.append(checkboxWrapper, content)
183
-
184
- Object.entries(HTMLAttributes).forEach(([key, value]) => {
185
- listItem.setAttribute(key, value)
186
- })
187
-
188
- return {
189
- dom: listItem,
190
- contentDOM: content,
191
- update: updatedNode => {
192
- if (updatedNode.type !== this.type) {
193
- return false
194
- }
195
-
196
- listItem.dataset.checked = updatedNode.attrs.checked
197
- if (updatedNode.attrs.checked) {
198
- checkbox.setAttribute('checked', 'checked')
199
- } else {
200
- checkbox.removeAttribute('checked')
201
- }
202
-
203
- return true
204
- },
205
- }
206
- }
207
- },
208
-
209
- addInputRules() {
210
- return [
211
- wrappingInputRule({
212
- find: inputRegex,
213
- type: this.type,
214
- getAttributes: match => ({
215
- checked: match[match.length - 1] === 'x',
216
- }),
217
- }),
218
- ]
219
- },
220
- })