@tiptap/core 2.5.0-beta.2 → 2.5.0-beta.3

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 (179) hide show
  1. package/dist/index.cjs +4534 -4538
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +4534 -4536
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.umd.js +4534 -4538
  6. package/dist/index.umd.js.map +1 -1
  7. package/dist/packages/core/src/CommandManager.d.ts +20 -20
  8. package/dist/packages/core/src/Editor.d.ts +161 -161
  9. package/dist/packages/core/src/EventEmitter.d.ts +11 -11
  10. package/dist/packages/core/src/Extension.d.ts +343 -342
  11. package/dist/packages/core/src/ExtensionManager.d.ts +55 -55
  12. package/dist/packages/core/src/InputRule.d.ts +42 -42
  13. package/dist/packages/core/src/Mark.d.ts +451 -450
  14. package/dist/packages/core/src/Node.d.ts +611 -609
  15. package/dist/packages/core/src/NodePos.d.ts +44 -44
  16. package/dist/packages/core/src/NodeView.d.ts +31 -31
  17. package/dist/packages/core/src/PasteRule.d.ts +50 -50
  18. package/dist/packages/core/src/Tracker.d.ts +11 -11
  19. package/dist/packages/core/src/commands/blur.d.ts +13 -13
  20. package/dist/packages/core/src/commands/clearContent.d.ts +14 -14
  21. package/dist/packages/core/src/commands/clearNodes.d.ts +13 -13
  22. package/dist/packages/core/src/commands/command.d.ts +18 -18
  23. package/dist/packages/core/src/commands/createParagraphNear.d.ts +13 -13
  24. package/dist/packages/core/src/commands/cut.d.ts +20 -20
  25. package/dist/packages/core/src/commands/deleteCurrentNode.d.ts +13 -13
  26. package/dist/packages/core/src/commands/deleteNode.d.ts +15 -15
  27. package/dist/packages/core/src/commands/deleteRange.d.ts +14 -14
  28. package/dist/packages/core/src/commands/deleteSelection.d.ts +13 -13
  29. package/dist/packages/core/src/commands/enter.d.ts +13 -13
  30. package/dist/packages/core/src/commands/exitCode.d.ts +13 -13
  31. package/dist/packages/core/src/commands/extendMarkRange.d.ts +25 -25
  32. package/dist/packages/core/src/commands/first.d.ts +14 -14
  33. package/dist/packages/core/src/commands/focus.d.ts +27 -27
  34. package/dist/packages/core/src/commands/forEach.d.ts +14 -14
  35. package/dist/packages/core/src/commands/index.d.ts +55 -55
  36. package/dist/packages/core/src/commands/insertContent.d.ts +34 -34
  37. package/dist/packages/core/src/commands/insertContentAt.d.ts +47 -47
  38. package/dist/packages/core/src/commands/join.d.ts +41 -41
  39. package/dist/packages/core/src/commands/joinItemBackward.d.ts +13 -13
  40. package/dist/packages/core/src/commands/joinItemForward.d.ts +13 -13
  41. package/dist/packages/core/src/commands/joinTextblockBackward.d.ts +12 -12
  42. package/dist/packages/core/src/commands/joinTextblockForward.d.ts +12 -12
  43. package/dist/packages/core/src/commands/keyboardShortcut.d.ts +14 -14
  44. package/dist/packages/core/src/commands/lift.d.ts +17 -17
  45. package/dist/packages/core/src/commands/liftEmptyBlock.d.ts +13 -13
  46. package/dist/packages/core/src/commands/liftListItem.d.ts +15 -15
  47. package/dist/packages/core/src/commands/newlineInCode.d.ts +13 -13
  48. package/dist/packages/core/src/commands/resetAttributes.d.ts +16 -16
  49. package/dist/packages/core/src/commands/scrollIntoView.d.ts +13 -13
  50. package/dist/packages/core/src/commands/selectAll.d.ts +13 -13
  51. package/dist/packages/core/src/commands/selectNodeBackward.d.ts +13 -13
  52. package/dist/packages/core/src/commands/selectNodeForward.d.ts +13 -13
  53. package/dist/packages/core/src/commands/selectParentNode.d.ts +13 -13
  54. package/dist/packages/core/src/commands/selectTextblockEnd.d.ts +13 -13
  55. package/dist/packages/core/src/commands/selectTextblockStart.d.ts +13 -13
  56. package/dist/packages/core/src/commands/setContent.d.ts +40 -40
  57. package/dist/packages/core/src/commands/setMark.d.ts +15 -15
  58. package/dist/packages/core/src/commands/setMeta.d.ts +15 -15
  59. package/dist/packages/core/src/commands/setNode.d.ts +16 -16
  60. package/dist/packages/core/src/commands/setNodeSelection.d.ts +14 -14
  61. package/dist/packages/core/src/commands/setTextSelection.d.ts +14 -14
  62. package/dist/packages/core/src/commands/sinkListItem.d.ts +15 -15
  63. package/dist/packages/core/src/commands/splitBlock.d.ts +17 -17
  64. package/dist/packages/core/src/commands/splitListItem.d.ts +15 -15
  65. package/dist/packages/core/src/commands/toggleList.d.ts +18 -18
  66. package/dist/packages/core/src/commands/toggleMark.d.ts +30 -30
  67. package/dist/packages/core/src/commands/toggleNode.d.ts +17 -17
  68. package/dist/packages/core/src/commands/toggleWrap.d.ts +16 -16
  69. package/dist/packages/core/src/commands/undoInputRule.d.ts +13 -13
  70. package/dist/packages/core/src/commands/unsetAllMarks.d.ts +13 -13
  71. package/dist/packages/core/src/commands/unsetMark.d.ts +25 -25
  72. package/dist/packages/core/src/commands/updateAttributes.d.ts +24 -24
  73. package/dist/packages/core/src/commands/wrapIn.d.ts +16 -16
  74. package/dist/packages/core/src/commands/wrapInList.d.ts +16 -16
  75. package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +5 -5
  76. package/dist/packages/core/src/extensions/commands.d.ts +3 -3
  77. package/dist/packages/core/src/extensions/editable.d.ts +2 -2
  78. package/dist/packages/core/src/extensions/focusEvents.d.ts +2 -2
  79. package/dist/packages/core/src/extensions/index.d.ts +6 -6
  80. package/dist/packages/core/src/extensions/keymap.d.ts +2 -2
  81. package/dist/packages/core/src/extensions/tabindex.d.ts +2 -2
  82. package/dist/packages/core/src/helpers/combineTransactionSteps.d.ts +10 -10
  83. package/dist/packages/core/src/helpers/createChainableState.d.ts +10 -10
  84. package/dist/packages/core/src/helpers/createDocument.d.ts +12 -12
  85. package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +15 -15
  86. package/dist/packages/core/src/helpers/defaultBlockAt.d.ts +7 -7
  87. package/dist/packages/core/src/helpers/findChildren.d.ts +9 -9
  88. package/dist/packages/core/src/helpers/findChildrenInRange.d.ts +10 -10
  89. package/dist/packages/core/src/helpers/findParentNode.d.ts +16 -16
  90. package/dist/packages/core/src/helpers/findParentNodeClosestToPos.d.ts +17 -17
  91. package/dist/packages/core/src/helpers/generateHTML.d.ts +8 -8
  92. package/dist/packages/core/src/helpers/generateJSON.d.ts +8 -8
  93. package/dist/packages/core/src/helpers/generateText.d.ts +12 -12
  94. package/dist/packages/core/src/helpers/getAttributes.d.ts +9 -9
  95. package/dist/packages/core/src/helpers/getAttributesFromExtensions.d.ts +6 -6
  96. package/dist/packages/core/src/helpers/getChangedRanges.d.ts +11 -11
  97. package/dist/packages/core/src/helpers/getDebugJSON.d.ts +8 -8
  98. package/dist/packages/core/src/helpers/getExtensionField.d.ts +9 -9
  99. package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +2 -2
  100. package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +3 -3
  101. package/dist/packages/core/src/helpers/getMarkRange.d.ts +3 -3
  102. package/dist/packages/core/src/helpers/getMarkType.d.ts +2 -2
  103. package/dist/packages/core/src/helpers/getMarksBetween.d.ts +3 -3
  104. package/dist/packages/core/src/helpers/getNodeAtPosition.d.ts +11 -11
  105. package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +3 -3
  106. package/dist/packages/core/src/helpers/getNodeType.d.ts +2 -2
  107. package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +3 -3
  108. package/dist/packages/core/src/helpers/getSchema.d.ts +4 -4
  109. package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +10 -10
  110. package/dist/packages/core/src/helpers/getSchemaTypeByName.d.ts +8 -8
  111. package/dist/packages/core/src/helpers/getSchemaTypeNameByName.d.ts +8 -8
  112. package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +9 -9
  113. package/dist/packages/core/src/helpers/getText.d.ts +15 -15
  114. package/dist/packages/core/src/helpers/getTextBetween.d.ts +14 -14
  115. package/dist/packages/core/src/helpers/getTextContentFromNodes.d.ts +8 -8
  116. package/dist/packages/core/src/helpers/getTextSerializersFromSchema.d.ts +8 -8
  117. package/dist/packages/core/src/helpers/index.d.ts +50 -50
  118. package/dist/packages/core/src/helpers/injectExtensionAttributesToParseRule.d.ts +9 -9
  119. package/dist/packages/core/src/helpers/isActive.d.ts +2 -2
  120. package/dist/packages/core/src/helpers/isAtEndOfNode.d.ts +2 -2
  121. package/dist/packages/core/src/helpers/isAtStartOfNode.d.ts +2 -2
  122. package/dist/packages/core/src/helpers/isExtensionRulesEnabled.d.ts +2 -2
  123. package/dist/packages/core/src/helpers/isList.d.ts +2 -2
  124. package/dist/packages/core/src/helpers/isMarkActive.d.ts +3 -3
  125. package/dist/packages/core/src/helpers/isNodeActive.d.ts +3 -3
  126. package/dist/packages/core/src/helpers/isNodeEmpty.d.ts +2 -2
  127. package/dist/packages/core/src/helpers/isNodeSelection.d.ts +2 -2
  128. package/dist/packages/core/src/helpers/isTextSelection.d.ts +2 -2
  129. package/dist/packages/core/src/helpers/posToDOMRect.d.ts +2 -2
  130. package/dist/packages/core/src/helpers/resolveFocusPosition.d.ts +4 -4
  131. package/dist/packages/core/src/helpers/selectionToInsertionEnd.d.ts +2 -2
  132. package/dist/packages/core/src/helpers/splitExtensions.d.ts +9 -9
  133. package/dist/packages/core/src/index.d.ts +24 -24
  134. package/dist/packages/core/src/inputRules/index.d.ts +5 -5
  135. package/dist/packages/core/src/inputRules/markInputRule.d.ts +13 -13
  136. package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +23 -23
  137. package/dist/packages/core/src/inputRules/textInputRule.d.ts +10 -10
  138. package/dist/packages/core/src/inputRules/textblockTypeInputRule.d.ts +15 -15
  139. package/dist/packages/core/src/inputRules/wrappingInputRule.d.ts +28 -28
  140. package/dist/packages/core/src/pasteRules/index.d.ts +3 -3
  141. package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +13 -13
  142. package/dist/packages/core/src/pasteRules/nodePasteRule.d.ts +13 -13
  143. package/dist/packages/core/src/pasteRules/textPasteRule.d.ts +10 -10
  144. package/dist/packages/core/src/style.d.ts +1 -1
  145. package/dist/packages/core/src/types.d.ts +250 -244
  146. package/dist/packages/core/src/utilities/callOrReturn.d.ts +9 -9
  147. package/dist/packages/core/src/utilities/createStyleTag.d.ts +1 -1
  148. package/dist/packages/core/src/utilities/deleteProps.d.ts +6 -6
  149. package/dist/packages/core/src/utilities/elementFromString.d.ts +1 -1
  150. package/dist/packages/core/src/utilities/escapeForRegEx.d.ts +1 -1
  151. package/dist/packages/core/src/utilities/findDuplicates.d.ts +1 -1
  152. package/dist/packages/core/src/utilities/fromString.d.ts +1 -1
  153. package/dist/packages/core/src/utilities/index.d.ts +20 -20
  154. package/dist/packages/core/src/utilities/isAndroid.d.ts +1 -1
  155. package/dist/packages/core/src/utilities/isEmptyObject.d.ts +1 -1
  156. package/dist/packages/core/src/utilities/isFunction.d.ts +1 -1
  157. package/dist/packages/core/src/utilities/isMacOS.d.ts +1 -1
  158. package/dist/packages/core/src/utilities/isNumber.d.ts +1 -1
  159. package/dist/packages/core/src/utilities/isPlainObject.d.ts +1 -1
  160. package/dist/packages/core/src/utilities/isRegExp.d.ts +1 -1
  161. package/dist/packages/core/src/utilities/isString.d.ts +1 -1
  162. package/dist/packages/core/src/utilities/isiOS.d.ts +1 -1
  163. package/dist/packages/core/src/utilities/mergeAttributes.d.ts +1 -1
  164. package/dist/packages/core/src/utilities/mergeDeep.d.ts +1 -1
  165. package/dist/packages/core/src/utilities/minMax.d.ts +1 -1
  166. package/dist/packages/core/src/utilities/objectIncludes.d.ts +8 -8
  167. package/dist/packages/core/src/utilities/removeDuplicates.d.ts +8 -8
  168. package/package.json +2 -2
  169. package/src/Extension.ts +3 -1
  170. package/src/ExtensionManager.ts +1 -1
  171. package/src/Mark.ts +3 -1
  172. package/src/Node.ts +4 -1
  173. package/src/commands/insertContentAt.ts +1 -1
  174. package/src/helpers/getAttributesFromExtensions.ts +2 -3
  175. package/src/helpers/getSchemaByResolvedExtensions.ts +4 -2
  176. package/src/helpers/injectExtensionAttributesToParseRule.ts +4 -4
  177. package/src/helpers/isNodeEmpty.ts +6 -3
  178. package/src/types.ts +6 -0
  179. package/src/utilities/mergeDeep.ts +3 -7
@@ -1,8 +1,8 @@
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
+ /**
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 +1,8 @@
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) | undefined, space?: string | number | undefined): string;
7
- (value: any, replacer?: (string | number)[] | null | undefined, space?: string | number | undefined): string;
8
- }): T[];
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) | undefined, space?: string | number | undefined): string;
7
+ (value: any, replacer?: (string | number)[] | null | undefined, space?: string | number | undefined): string;
8
+ }): T[];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tiptap/core",
3
3
  "description": "headless rich text editor",
4
- "version": "2.5.0-beta.2",
4
+ "version": "2.5.0-beta.3",
5
5
  "homepage": "https://tiptap.dev",
6
6
  "keywords": [
7
7
  "tiptap",
@@ -32,7 +32,7 @@
32
32
  "dist"
33
33
  ],
34
34
  "devDependencies": {
35
- "@tiptap/pm": "^2.5.0-beta.2"
35
+ "@tiptap/pm": "^2.5.0-beta.3"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "@tiptap/pm": "^2.0.0"
package/src/Extension.ts CHANGED
@@ -20,6 +20,7 @@ import { mergeDeep } from './utilities/mergeDeep.js'
20
20
 
21
21
  declare module '@tiptap/core' {
22
22
  interface ExtensionConfig<Options = any, Storage = any> {
23
+ // @ts-ignore - this is a dynamic key
23
24
  [key: string]: any
24
25
 
25
26
  /**
@@ -108,8 +109,9 @@ declare module '@tiptap/core' {
108
109
  name: string
109
110
  options: Options
110
111
  storage: Storage
112
+ extensions: (Node | Mark)[]
111
113
  parent: ParentConfig<ExtensionConfig<Options, Storage>>['addGlobalAttributes']
112
- }) => GlobalAttributes | {}
114
+ }) => GlobalAttributes
113
115
 
114
116
  /**
115
117
  * This function adds commands to the editor
@@ -3,7 +3,7 @@ import { Node as ProsemirrorNode, Schema } from '@tiptap/pm/model'
3
3
  import { Plugin } from '@tiptap/pm/state'
4
4
  import { Decoration, EditorView } from '@tiptap/pm/view'
5
5
 
6
- import { Editor } from './Editor.js'
6
+ import type { Editor } from './Editor.js'
7
7
  import { getAttributesFromExtensions } from './helpers/getAttributesFromExtensions.js'
8
8
  import { getExtensionField } from './helpers/getExtensionField.js'
9
9
  import { getNodeType } from './helpers/getNodeType.js'
package/src/Mark.ts CHANGED
@@ -23,6 +23,7 @@ import { mergeDeep } from './utilities/mergeDeep.js'
23
23
 
24
24
  declare module '@tiptap/core' {
25
25
  export interface MarkConfig<Options = any, Storage = any> {
26
+ // @ts-ignore - this is a dynamic key
26
27
  [key: string]: any
27
28
 
28
29
  /**
@@ -111,8 +112,9 @@ declare module '@tiptap/core' {
111
112
  name: string
112
113
  options: Options
113
114
  storage: Storage
115
+ extensions: (Node | Mark)[]
114
116
  parent: ParentConfig<MarkConfig<Options, Storage>>['addGlobalAttributes']
115
- }) => GlobalAttributes | {}
117
+ }) => GlobalAttributes
116
118
 
117
119
  /**
118
120
  * This function adds commands to the editor
package/src/Node.ts CHANGED
@@ -7,6 +7,7 @@ import { Editor } from './Editor.js'
7
7
  import { getExtensionField } from './helpers/getExtensionField.js'
8
8
  import { NodeConfig } from './index.js'
9
9
  import { InputRule } from './InputRule.js'
10
+ import { Mark } from './Mark.js'
10
11
  import { PasteRule } from './PasteRule.js'
11
12
  import {
12
13
  AnyConfig,
@@ -23,6 +24,7 @@ import { mergeDeep } from './utilities/mergeDeep.js'
23
24
 
24
25
  declare module '@tiptap/core' {
25
26
  interface NodeConfig<Options = any, Storage = any> {
27
+ // @ts-ignore - this is a dynamic key
26
28
  [key: string]: any
27
29
 
28
30
  /**
@@ -111,8 +113,9 @@ declare module '@tiptap/core' {
111
113
  name: string
112
114
  options: Options
113
115
  storage: Storage
116
+ extensions: (Node | Mark)[]
114
117
  parent: ParentConfig<NodeConfig<Options, Storage>>['addGlobalAttributes']
115
- }) => GlobalAttributes | {}
118
+ }) => GlobalAttributes
116
119
 
117
120
  /**
118
121
  * This function adds commands to the editor
@@ -57,7 +57,7 @@ declare module '@tiptap/core' {
57
57
  }
58
58
 
59
59
  const isFragment = (nodeOrFragment: ProseMirrorNode | Fragment): nodeOrFragment is Fragment => {
60
- return nodeOrFragment.toString().startsWith('<')
60
+ return !('type' in nodeOrFragment)
61
61
  }
62
62
 
63
63
  export const insertContentAt: RawCommands['insertContentAt'] = (position, value, options) => ({ tr, dispatch, editor }) => {
@@ -5,7 +5,6 @@ import {
5
5
  Attributes,
6
6
  ExtensionAttribute,
7
7
  Extensions,
8
- GlobalAttributes,
9
8
  } from '../types.js'
10
9
  import { getExtensionField } from './getExtensionField.js'
11
10
  import { splitExtensions } from './splitExtensions.js'
@@ -32,6 +31,7 @@ export function getAttributesFromExtensions(extensions: Extensions): ExtensionAt
32
31
  name: extension.name,
33
32
  options: extension.options,
34
33
  storage: extension.storage,
34
+ extensions: nodeAndMarkExtensions,
35
35
  }
36
36
 
37
37
  const addGlobalAttributes = getExtensionField<AnyConfig['addGlobalAttributes']>(
@@ -44,8 +44,7 @@ export function getAttributesFromExtensions(extensions: Extensions): ExtensionAt
44
44
  return
45
45
  }
46
46
 
47
- // TODO: remove `as GlobalAttributes`
48
- const globalAttributes = addGlobalAttributes() as GlobalAttributes
47
+ const globalAttributes = addGlobalAttributes()
49
48
 
50
49
  globalAttributes.forEach(globalAttribute => {
51
50
  globalAttribute.types.forEach(type => {
@@ -1,4 +1,6 @@
1
- import { MarkSpec, NodeSpec, Schema } from '@tiptap/pm/model'
1
+ import {
2
+ MarkSpec, NodeSpec, Schema, TagParseRule,
3
+ } from '@tiptap/pm/model'
2
4
 
3
5
  import { Editor, MarkConfig, NodeConfig } from '../index.js'
4
6
  import { AnyConfig, Extensions } from '../types.js'
@@ -93,7 +95,7 @@ export function getSchemaByResolvedExtensions(extensions: Extensions, editor?: E
93
95
  )
94
96
 
95
97
  if (parseHTML) {
96
- schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes))
98
+ schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes)) as TagParseRule[]
97
99
  }
98
100
 
99
101
  const renderHTML = getExtensionField<NodeConfig['renderHTML']>(
@@ -13,13 +13,13 @@ export function injectExtensionAttributesToParseRule(
13
13
  parseRule: ParseRule,
14
14
  extensionAttributes: ExtensionAttribute[],
15
15
  ): ParseRule {
16
- if (parseRule.style) {
16
+ if ('style' in parseRule) {
17
17
  return parseRule
18
18
  }
19
19
 
20
20
  return {
21
21
  ...parseRule,
22
- getAttrs: node => {
22
+ getAttrs: (node: HTMLElement) => {
23
23
  const oldAttributes = parseRule.getAttrs ? parseRule.getAttrs(node) : parseRule.attrs
24
24
 
25
25
  if (oldAttributes === false) {
@@ -28,8 +28,8 @@ export function injectExtensionAttributesToParseRule(
28
28
 
29
29
  const newAttributes = extensionAttributes.reduce((items, item) => {
30
30
  const value = item.attribute.parseHTML
31
- ? item.attribute.parseHTML(node as HTMLElement)
32
- : fromString((node as HTMLElement).getAttribute(item.name))
31
+ ? item.attribute.parseHTML(node)
32
+ : fromString((node).getAttribute(item.name))
33
33
 
34
34
  if (value === null || value === undefined) {
35
35
  return items
@@ -1,8 +1,11 @@
1
1
  import { Node as ProseMirrorNode } from '@tiptap/pm/model'
2
2
 
3
3
  export function isNodeEmpty(node: ProseMirrorNode): boolean {
4
- const defaultContent = node.type.createAndFill()?.toJSON()
5
- const content = node.toJSON()
4
+ const defaultContent = node.type.createAndFill()
6
5
 
7
- return JSON.stringify(defaultContent) === JSON.stringify(content)
6
+ if (!defaultContent) {
7
+ return false
8
+ }
9
+
10
+ return node.eq(defaultContent)
8
11
  }
package/src/types.ts CHANGED
@@ -152,7 +152,13 @@ export type ExtensionAttribute = {
152
152
  }
153
153
 
154
154
  export type GlobalAttributes = {
155
+ /**
156
+ * The node & mark types this attribute should be applied to.
157
+ */
155
158
  types: string[]
159
+ /**
160
+ * The attributes to add to the node or mark types.
161
+ */
156
162
  attributes: {
157
163
  [key: string]: Attribute
158
164
  }
@@ -5,14 +5,10 @@ export function mergeDeep(target: Record<string, any>, source: Record<string, an
5
5
 
6
6
  if (isPlainObject(target) && isPlainObject(source)) {
7
7
  Object.keys(source).forEach(key => {
8
- if (isPlainObject(source[key])) {
9
- if (!(key in target)) {
10
- Object.assign(output, { [key]: source[key] })
11
- } else {
12
- output[key] = mergeDeep(target[key], source[key])
13
- }
8
+ if (isPlainObject(source[key]) && isPlainObject(target[key])) {
9
+ output[key] = mergeDeep(target[key], source[key])
14
10
  } else {
15
- Object.assign(output, { [key]: source[key] })
11
+ output[key] = source[key]
16
12
  }
17
13
  })
18
14
  }