@blocknote/core 0.30.0 → 0.30.1

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 (148) hide show
  1. package/dist/blocknote.cjs +2 -2
  2. package/dist/blocknote.cjs.map +1 -1
  3. package/dist/blocknote.js +22 -20
  4. package/dist/blocknote.js.map +1 -1
  5. package/dist/comments.cjs.map +1 -1
  6. package/dist/comments.js.map +1 -1
  7. package/dist/style.css +1 -1
  8. package/dist/tsconfig.tsbuildinfo +1 -1
  9. package/dist/webpack-stats.json +1 -1
  10. package/package.json +5 -3
  11. package/src/api/README.md +1 -1
  12. package/src/api/blockManipulation/commands/insertBlocks/insertBlocks.test.ts +19 -14
  13. package/src/api/blockManipulation/commands/insertBlocks/insertBlocks.ts +5 -5
  14. package/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.test.ts +3 -3
  15. package/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.ts +12 -12
  16. package/src/api/blockManipulation/commands/moveBlocks/moveBlocks.test.ts +14 -14
  17. package/src/api/blockManipulation/commands/moveBlocks/moveBlocks.ts +16 -16
  18. package/src/api/blockManipulation/commands/nestBlock/nestBlock.ts +8 -8
  19. package/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.test.ts +12 -12
  20. package/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.ts +7 -7
  21. package/src/api/blockManipulation/commands/splitBlock/splitBlock.test.ts +10 -10
  22. package/src/api/blockManipulation/commands/splitBlock/splitBlock.ts +2 -2
  23. package/src/api/blockManipulation/commands/updateBlock/updateBlock.test.ts +42 -42
  24. package/src/api/blockManipulation/commands/updateBlock/updateBlock.ts +18 -18
  25. package/src/api/blockManipulation/getBlock/getBlock.ts +9 -9
  26. package/src/api/blockManipulation/insertContentAt.ts +1 -1
  27. package/src/api/blockManipulation/selections/selection.ts +11 -11
  28. package/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.test.ts +7 -7
  29. package/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.ts +6 -6
  30. package/src/api/blockManipulation/tables/tables.test.ts +106 -106
  31. package/src/api/blockManipulation/tables/tables.ts +35 -35
  32. package/src/api/clipboard/fromClipboard/fileDropExtension.ts +2 -2
  33. package/src/api/clipboard/fromClipboard/handleFileInsertion.ts +9 -9
  34. package/src/api/clipboard/fromClipboard/handleVSCodePaste.ts +3 -3
  35. package/src/api/clipboard/fromClipboard/pasteExtension.ts +3 -3
  36. package/src/api/clipboard/toClipboard/copyExtension.ts +22 -22
  37. package/src/api/exporters/html/externalHTMLExporter.ts +6 -6
  38. package/src/api/exporters/html/internalHTMLSerializer.ts +3 -3
  39. package/src/api/exporters/html/util/serializeBlocksExternalHTML.ts +16 -16
  40. package/src/api/exporters/html/util/serializeBlocksInternalHTML.ts +14 -14
  41. package/src/api/exporters/markdown/markdownExporter.ts +3 -3
  42. package/src/api/exporters/markdown/util/addSpacesToCheckboxesRehypePlugin.ts +3 -3
  43. package/src/api/getBlockInfoFromPos.ts +6 -6
  44. package/src/api/nodeConversions/blockToNode.ts +26 -26
  45. package/src/api/nodeConversions/fragmentToBlocks.ts +1 -1
  46. package/src/api/nodeConversions/nodeToBlock.ts +37 -33
  47. package/src/api/nodeUtil.test.ts +16 -16
  48. package/src/api/nodeUtil.ts +10 -10
  49. package/src/api/parsers/html/parseHTML.ts +1 -1
  50. package/src/api/parsers/html/util/nestedLists.ts +2 -2
  51. package/src/api/parsers/markdown/parseMarkdown.ts +1 -1
  52. package/src/api/pmUtil.ts +4 -4
  53. package/src/api/positionMapping.test.ts +3 -3
  54. package/src/api/positionMapping.ts +5 -5
  55. package/src/blocks/AudioBlockContent/AudioBlockContent.ts +4 -4
  56. package/src/blocks/CodeBlockContent/CodeBlockContent.ts +12 -12
  57. package/src/blocks/FileBlockContent/FileBlockContent.ts +2 -2
  58. package/src/blocks/FileBlockContent/helpers/parse/parseFigureElement.ts +2 -2
  59. package/src/blocks/FileBlockContent/helpers/render/createAddFileButton.ts +5 -5
  60. package/src/blocks/FileBlockContent/helpers/render/createFileBlockWrapper.ts +2 -2
  61. package/src/blocks/FileBlockContent/helpers/render/createFileNameWithIcon.ts +1 -1
  62. package/src/blocks/FileBlockContent/helpers/render/createResizableFileBlockWrapper.ts +7 -7
  63. package/src/blocks/FileBlockContent/helpers/toExternalHTML/createFigureWithCaption.ts +1 -1
  64. package/src/blocks/FileBlockContent/helpers/toExternalHTML/createLinkWithCaption.ts +1 -1
  65. package/src/blocks/FileBlockContent/uploadToTmpFilesDotOrg_DEV_ONLY.ts +2 -2
  66. package/src/blocks/HeadingBlockContent/HeadingBlockContent.ts +6 -6
  67. package/src/blocks/ImageBlockContent/ImageBlockContent.ts +4 -4
  68. package/src/blocks/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.ts +4 -4
  69. package/src/blocks/ListItemBlockContent/CheckListItemBlockContent/CheckListItemBlockContent.ts +10 -10
  70. package/src/blocks/ListItemBlockContent/ListItemKeyboardShortcuts.ts +1 -1
  71. package/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListIndexingPlugin.ts +1 -1
  72. package/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.ts +4 -4
  73. package/src/blocks/ListItemBlockContent/getListItemContent.ts +5 -5
  74. package/src/blocks/PageBreakBlockContent/PageBreakBlockContent.ts +1 -1
  75. package/src/blocks/PageBreakBlockContent/getPageBreakSlashMenuItems.ts +3 -3
  76. package/src/blocks/PageBreakBlockContent/schema.ts +2 -2
  77. package/src/blocks/ParagraphBlockContent/ParagraphBlockContent.ts +3 -3
  78. package/src/blocks/QuoteBlockContent/QuoteBlockContent.ts +4 -4
  79. package/src/blocks/README.md +1 -1
  80. package/src/blocks/TableBlockContent/TableBlockContent.ts +5 -5
  81. package/src/blocks/TableBlockContent/TableExtension.ts +3 -3
  82. package/src/blocks/VideoBlockContent/VideoBlockContent.ts +4 -4
  83. package/src/blocks/defaultBlockHelpers.ts +8 -8
  84. package/src/blocks/defaultBlockTypeGuards.ts +16 -16
  85. package/src/blocks/defaultBlocks.ts +3 -3
  86. package/src/comments/threadstore/DefaultThreadStoreAuth.ts +3 -3
  87. package/src/comments/threadstore/ThreadStore.ts +1 -1
  88. package/src/comments/threadstore/TipTapThreadStore.ts +10 -10
  89. package/src/comments/threadstore/yjs/RESTYjsThreadStore.ts +4 -4
  90. package/src/comments/threadstore/yjs/YjsThreadStore.test.ts +2 -2
  91. package/src/comments/threadstore/yjs/YjsThreadStore.ts +14 -14
  92. package/src/comments/threadstore/yjs/YjsThreadStoreBase.ts +1 -1
  93. package/src/comments/threadstore/yjs/yjsHelpers.ts +6 -6
  94. package/src/editor/Block.css +8 -0
  95. package/src/editor/BlockNoteEditor.test.ts +3 -3
  96. package/src/editor/BlockNoteEditor.ts +7 -1
  97. package/src/editor/BlockNoteExtensions.ts +10 -10
  98. package/src/editor/BlockNoteSchema.ts +4 -4
  99. package/src/editor/BlockNoteTipTapEditor.ts +10 -10
  100. package/src/editor/README.md +1 -1
  101. package/src/editor/cursorPositionTypes.ts +1 -1
  102. package/src/editor/editor.css +15 -3
  103. package/src/editor/selectionTypes.ts +1 -1
  104. package/src/editor/transformPasted.ts +2 -2
  105. package/src/exporter/Exporter.ts +5 -5
  106. package/src/exporter/mapping.ts +7 -7
  107. package/src/extensions/BackgroundColor/BackgroundColorMark.ts +1 -1
  108. package/src/extensions/Collaboration/CursorPlugin.ts +2 -2
  109. package/src/extensions/Comments/CommentsPlugin.ts +9 -9
  110. package/src/extensions/Comments/userstore/UserStore.ts +2 -2
  111. package/src/extensions/FilePanel/FilePanelPlugin.ts +7 -7
  112. package/src/extensions/FormattingToolbar/FormattingToolbarPlugin.ts +4 -4
  113. package/src/extensions/KeyboardShortcuts/KeyboardShortcutsExtension.ts +26 -26
  114. package/src/extensions/LinkToolbar/LinkToolbarPlugin.ts +11 -11
  115. package/src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.ts +4 -4
  116. package/src/extensions/Placeholder/PlaceholderPlugin.ts +10 -10
  117. package/src/extensions/PreviousBlockType/PreviousBlockTypePlugin.ts +2 -2
  118. package/src/extensions/README.md +1 -1
  119. package/src/extensions/SideMenu/MultipleNodeSelection.ts +1 -1
  120. package/src/extensions/SideMenu/SideMenuPlugin.ts +31 -31
  121. package/src/extensions/SideMenu/dragging.ts +8 -8
  122. package/src/extensions/SuggestionMenu/SuggestionPlugin.ts +17 -17
  123. package/src/extensions/SuggestionMenu/getDefaultEmojiPickerItems.ts +2 -2
  124. package/src/extensions/SuggestionMenu/getDefaultSlashMenuItems.ts +12 -12
  125. package/src/extensions/TableHandles/TableHandlesPlugin.ts +54 -53
  126. package/src/extensions/TrailingNode/TrailingNodeExtension.ts +1 -1
  127. package/src/extensions/UniqueID/UniqueID.ts +6 -6
  128. package/src/extensions/getDraggableBlockFromElement.ts +1 -1
  129. package/src/fonts/inter.css +18 -9
  130. package/src/locales.ts +1 -1
  131. package/src/pm-nodes/BlockGroup.ts +1 -1
  132. package/src/pm-nodes/Doc.ts +4 -4
  133. package/src/schema/README.md +1 -1
  134. package/src/schema/blocks/createSpec.ts +14 -14
  135. package/src/schema/blocks/internal.ts +17 -17
  136. package/src/schema/blocks/types.ts +25 -25
  137. package/src/schema/inlineContent/createSpec.ts +16 -20
  138. package/src/schema/inlineContent/internal.ts +9 -9
  139. package/src/schema/inlineContent/types.ts +26 -26
  140. package/src/schema/propTypes.ts +8 -8
  141. package/src/schema/styles/createSpec.ts +2 -2
  142. package/src/schema/styles/internal.ts +7 -7
  143. package/src/schema/styles/types.ts +2 -2
  144. package/src/util/EventEmitter.ts +4 -4
  145. package/src/util/README.md +1 -1
  146. package/src/util/combineByGroup.ts +1 -1
  147. package/src/util/table.ts +33 -30
  148. package/types/src/editor/BlockNoteEditor.d.ts +3 -1
@@ -18,7 +18,7 @@ function sinkListItem(itemType: NodeType, groupType: NodeType) {
18
18
  $to,
19
19
  (node) =>
20
20
  node.childCount > 0 &&
21
- (node.type.name === "blockGroup" || node.type.name === "column") // change necessary to not look at first item child type
21
+ (node.type.name === "blockGroup" || node.type.name === "column"), // change necessary to not look at first item child type
22
22
  );
23
23
  if (!range) {
24
24
  return false;
@@ -38,10 +38,10 @@ function sinkListItem(itemType: NodeType, groupType: NodeType) {
38
38
  const inner = Fragment.from(nestedBefore ? itemType.create() : null);
39
39
  const slice = new Slice(
40
40
  Fragment.from(
41
- itemType.create(null, Fragment.from(groupType.create(null, inner))) // change necessary to create "groupType" instead of parent.type
41
+ itemType.create(null, Fragment.from(groupType.create(null, inner))), // change necessary to create "groupType" instead of parent.type
42
42
  ),
43
43
  nestedBefore ? 3 : 1,
44
- 0
44
+ 0,
45
45
  );
46
46
 
47
47
  const before = range.start;
@@ -56,10 +56,10 @@ function sinkListItem(itemType: NodeType, groupType: NodeType) {
56
56
  after,
57
57
  slice,
58
58
  1,
59
- true
60
- )
59
+ true,
60
+ ),
61
61
  )
62
- .scrollIntoView()
62
+ .scrollIntoView(),
63
63
  );
64
64
  }
65
65
  return true;
@@ -70,8 +70,8 @@ export function nestBlock(editor: BlockNoteEditor<any, any, any>) {
70
70
  return editor.exec((state, dispatch) =>
71
71
  sinkListItem(
72
72
  state.schema.nodes["blockContainer"],
73
- state.schema.nodes["blockGroup"]
74
- )(state, dispatch)
73
+ state.schema.nodes["blockGroup"],
74
+ )(state, dispatch),
75
75
  );
76
76
  }
77
77
 
@@ -11,10 +11,10 @@ const getEditor = setupTestEnv();
11
11
  function replaceBlocks(
12
12
  editor: BlockNoteEditor,
13
13
  blocksToRemove: BlockIdentifier[],
14
- blocksToInsert: PartialBlock<any, any, any>[]
14
+ blocksToInsert: PartialBlock<any, any, any>[],
15
15
  ) {
16
16
  return editor.transact((tr) =>
17
- removeAndInsertBlocks(tr, blocksToRemove, blocksToInsert)
17
+ removeAndInsertBlocks(tr, blocksToRemove, blocksToInsert),
18
18
  );
19
19
  }
20
20
 
@@ -29,7 +29,7 @@ describe("Test replaceBlocks", () => {
29
29
  replaceBlocks(
30
30
  getEditor(),
31
31
  ["paragraph-0", "paragraph-1", "paragraph-with-children"],
32
- []
32
+ [],
33
33
  );
34
34
 
35
35
  expect(getEditor().document).toMatchSnapshot();
@@ -39,7 +39,7 @@ describe("Test replaceBlocks", () => {
39
39
  replaceBlocks(
40
40
  getEditor(),
41
41
  ["paragraph-0", "table-0", "heading-with-everything"],
42
- []
42
+ [],
43
43
  );
44
44
 
45
45
  expect(getEditor().document).toMatchSnapshot();
@@ -55,7 +55,7 @@ describe("Test replaceBlocks", () => {
55
55
  replaceBlocks(
56
56
  getEditor(),
57
57
  ["paragraph-0", "paragraph-1", "paragraph-with-children"],
58
- [{ type: "paragraph" }]
58
+ [{ type: "paragraph" }],
59
59
  );
60
60
 
61
61
  expect(getEditor().document).toMatchSnapshot();
@@ -65,7 +65,7 @@ describe("Test replaceBlocks", () => {
65
65
  replaceBlocks(
66
66
  getEditor(),
67
67
  ["paragraph-0", "table-0", "heading-with-everything"],
68
- [{ type: "paragraph" }]
68
+ [{ type: "paragraph" }],
69
69
  );
70
70
 
71
71
  expect(getEditor().document).toMatchSnapshot();
@@ -79,7 +79,7 @@ describe("Test replaceBlocks", () => {
79
79
  { type: "paragraph", content: "Inserted paragraph 1" },
80
80
  { type: "paragraph", content: "Inserted paragraph 2" },
81
81
  { type: "paragraph", content: "Inserted paragraph 3" },
82
- ]
82
+ ],
83
83
  );
84
84
 
85
85
  expect(getEditor().document).toMatchSnapshot();
@@ -93,7 +93,7 @@ describe("Test replaceBlocks", () => {
93
93
  { type: "paragraph", content: "Inserted paragraph 1" },
94
94
  { type: "paragraph", content: "Inserted paragraph 2" },
95
95
  { type: "paragraph", content: "Inserted paragraph 3" },
96
- ]
96
+ ],
97
97
  );
98
98
 
99
99
  expect(getEditor().document).toMatchSnapshot();
@@ -107,7 +107,7 @@ describe("Test replaceBlocks", () => {
107
107
  { type: "paragraph", content: "Inserted paragraph 1" },
108
108
  { type: "paragraph", content: "Inserted paragraph 2" },
109
109
  { type: "paragraph", content: "Inserted paragraph 3" },
110
- ]
110
+ ],
111
111
  );
112
112
 
113
113
  expect(getEditor().document).toMatchSnapshot();
@@ -147,7 +147,7 @@ describe("Test replaceBlocks", () => {
147
147
  },
148
148
  ],
149
149
  },
150
- ]
150
+ ],
151
151
  );
152
152
 
153
153
  expect(getEditor().document).toMatchSnapshot();
@@ -187,7 +187,7 @@ describe("Test replaceBlocks", () => {
187
187
  },
188
188
  ],
189
189
  },
190
- ]
190
+ ],
191
191
  );
192
192
 
193
193
  expect(getEditor().document).toMatchSnapshot();
@@ -227,7 +227,7 @@ describe("Test replaceBlocks", () => {
227
227
  },
228
228
  ],
229
229
  },
230
- ]
230
+ ],
231
231
  );
232
232
 
233
233
  expect(getEditor().document).toMatchSnapshot();
@@ -14,11 +14,11 @@ import { getPmSchema } from "../../../pmUtil.js";
14
14
  export function removeAndInsertBlocks<
15
15
  BSchema extends BlockSchema,
16
16
  I extends InlineContentSchema,
17
- S extends StyleSchema
17
+ S extends StyleSchema,
18
18
  >(
19
19
  tr: Transaction,
20
20
  blocksToRemove: BlockIdentifier[],
21
- blocksToInsert: PartialBlock<BSchema, I, S>[]
21
+ blocksToInsert: PartialBlock<BSchema, I, S>[],
22
22
  ): {
23
23
  insertedBlocks: Block<BSchema, I, S>[];
24
24
  removedBlocks: Block<BSchema, I, S>[];
@@ -27,13 +27,13 @@ export function removeAndInsertBlocks<
27
27
  // Converts the `PartialBlock`s to ProseMirror nodes to insert them into the
28
28
  // document.
29
29
  const nodesToInsert: Node[] = blocksToInsert.map((block) =>
30
- blockToNode(block, pmSchema)
30
+ blockToNode(block, pmSchema),
31
31
  );
32
32
 
33
33
  const idsOfBlocksToRemove = new Set<string>(
34
34
  blocksToRemove.map((block) =>
35
- typeof block === "string" ? block : block.id
36
- )
35
+ typeof block === "string" ? block : block.id,
36
+ ),
37
37
  );
38
38
  const removedBlocks: Block<BSchema, I, S>[] = [];
39
39
 
@@ -95,13 +95,13 @@ export function removeAndInsertBlocks<
95
95
 
96
96
  throw Error(
97
97
  "Blocks with the following IDs could not be found in the editor: " +
98
- notFoundIds
98
+ notFoundIds,
99
99
  );
100
100
  }
101
101
 
102
102
  // Converts the nodes created from `blocksToInsert` into full `Block`s.
103
103
  const insertedBlocks = nodesToInsert.map((node) =>
104
- nodeToBlock(node, pmSchema)
104
+ nodeToBlock(node, pmSchema),
105
105
  );
106
106
 
107
107
  return { insertedBlocks, removedBlocks };
@@ -15,17 +15,17 @@ const getEditor = setupTestEnv();
15
15
  function splitBlock(
16
16
  posInBlock: number,
17
17
  keepType?: boolean,
18
- keepProps?: boolean
18
+ keepProps?: boolean,
19
19
  ) {
20
20
  getEditor()._tiptapEditor.commands.command(
21
- splitBlockCommand(posInBlock, keepType, keepProps)
21
+ splitBlockCommand(posInBlock, keepType, keepProps),
22
22
  );
23
23
  }
24
24
 
25
25
  function setSelectionWithOffset(
26
26
  doc: Node,
27
27
  targetBlockId: string,
28
- offset: number
28
+ offset: number,
29
29
  ) {
30
30
  const posInfo = getNodeById(targetBlockId, doc);
31
31
  if (!posInfo) {
@@ -40,8 +40,8 @@ function setSelectionWithOffset(
40
40
 
41
41
  getEditor().transact((tr) =>
42
42
  tr.setSelection(
43
- TextSelection.create(doc, info.blockContent.beforePos + offset + 1)
44
- )
43
+ TextSelection.create(doc, info.blockContent.beforePos + offset + 1),
44
+ ),
45
45
  );
46
46
  }
47
47
 
@@ -83,7 +83,7 @@ describe("Test splitBlocks", () => {
83
83
 
84
84
  splitBlock(
85
85
  getEditor().transact((tr) => tr.selection.anchor),
86
- true
86
+ true,
87
87
  );
88
88
 
89
89
  expect(getEditor().document).toMatchSnapshot();
@@ -96,7 +96,7 @@ describe("Test splitBlocks", () => {
96
96
 
97
97
  splitBlock(
98
98
  getEditor().transact((tr) => tr.selection.anchor),
99
- false
99
+ false,
100
100
  );
101
101
 
102
102
  expect(getEditor().document).toMatchSnapshot();
@@ -110,7 +110,7 @@ describe("Test splitBlocks", () => {
110
110
  splitBlock(
111
111
  getEditor().transact((tr) => tr.selection.anchor),
112
112
  false,
113
- true
113
+ true,
114
114
  );
115
115
 
116
116
  expect(getEditor().document).toMatchSnapshot();
@@ -124,7 +124,7 @@ describe("Test splitBlocks", () => {
124
124
  splitBlock(
125
125
  getEditor().transact((tr) => tr.selection.anchor),
126
126
  false,
127
- false
127
+ false,
128
128
  );
129
129
 
130
130
  expect(getEditor().document).toMatchSnapshot();
@@ -138,7 +138,7 @@ describe("Test splitBlocks", () => {
138
138
  splitBlock(getEditor().transact((tr) => tr.selection.anchor));
139
139
 
140
140
  const bnBlock = getEditor().transact(
141
- (tr) => getBlockInfoFromTransaction(tr).bnBlock
141
+ (tr) => getBlockInfoFromTransaction(tr).bnBlock,
142
142
  );
143
143
 
144
144
  const anchorIsAtStartOfNewBlock =
@@ -8,7 +8,7 @@ import {
8
8
  export const splitBlockCommand = (
9
9
  posInBlock: number,
10
10
  keepType?: boolean,
11
- keepProps?: boolean
11
+ keepProps?: boolean,
12
12
  ) => {
13
13
  return ({
14
14
  state,
@@ -23,7 +23,7 @@ export const splitBlockCommand = (
23
23
 
24
24
  if (!info.isBlockContainer) {
25
25
  throw new Error(
26
- `BlockContainer expected when calling splitBlock, position ${posInBlock}`
26
+ `BlockContainer expected when calling splitBlock, position ${posInBlock}`,
27
27
  );
28
28
  }
29
29
 
@@ -13,7 +13,7 @@ describe("Test updateBlock typing", () => {
13
13
  {
14
14
  // @ts-expect-error invalid type
15
15
  type: "non-existing",
16
- }
16
+ },
17
17
  );
18
18
  } catch (e) {
19
19
  // ID doesn't exist, which is fine - this is a compile-time check
@@ -30,7 +30,7 @@ describe("Test updateBlock typing", () => {
30
30
  // @ts-expect-error invalid type
31
31
  level: 1,
32
32
  },
33
- }
33
+ },
34
34
  );
35
35
  } catch (e) {
36
36
  // ID doesn't exist, which is fine - this is a compile-time check
@@ -43,7 +43,7 @@ describe("Test updateBlock typing", () => {
43
43
  props: {
44
44
  level: 1,
45
45
  },
46
- }
46
+ },
47
47
  );
48
48
  } catch (e) {
49
49
  // ID doesn't exist, which is fine - this is a compile-time check
@@ -57,8 +57,8 @@ describe("Test updateBlock", () => {
57
57
  getEditor().transact((tr) =>
58
58
  updateBlock(tr, "heading-with-everything", {
59
59
  id: "new-id",
60
- })
61
- )
60
+ }),
61
+ ),
62
62
  ).toMatchSnapshot();
63
63
  expect(getEditor().document).toMatchSnapshot();
64
64
  });
@@ -68,8 +68,8 @@ describe("Test updateBlock", () => {
68
68
  getEditor().transact((tr) =>
69
69
  updateBlock(tr, "heading-with-everything", {
70
70
  type: "paragraph",
71
- })
72
- )
71
+ }),
72
+ ),
73
73
  ).toMatchSnapshot();
74
74
 
75
75
  expect(getEditor().document).toMatchSnapshot();
@@ -82,8 +82,8 @@ describe("Test updateBlock", () => {
82
82
  props: {
83
83
  level: 3,
84
84
  },
85
- })
86
- )
85
+ }),
86
+ ),
87
87
  ).toMatchSnapshot();
88
88
 
89
89
  expect(getEditor().document).toMatchSnapshot();
@@ -99,8 +99,8 @@ describe("Test updateBlock", () => {
99
99
  textAlignment: "right",
100
100
  textColor: "blue",
101
101
  },
102
- })
103
- )
102
+ }),
103
+ ),
104
104
  ).toMatchSnapshot();
105
105
 
106
106
  expect(getEditor().document).toMatchSnapshot();
@@ -113,8 +113,8 @@ describe("Test updateBlock", () => {
113
113
  props: {
114
114
  level: undefined,
115
115
  },
116
- })
117
- )
116
+ }),
117
+ ),
118
118
  ).toMatchSnapshot();
119
119
 
120
120
  expect(getEditor().document).toMatchSnapshot();
@@ -130,8 +130,8 @@ describe("Test updateBlock", () => {
130
130
  textAlignment: undefined,
131
131
  textColor: undefined,
132
132
  },
133
- })
134
- )
133
+ }),
134
+ ),
135
135
  ).toMatchSnapshot();
136
136
 
137
137
  expect(getEditor().document).toMatchSnapshot();
@@ -142,8 +142,8 @@ describe("Test updateBlock", () => {
142
142
  getEditor().transact((tr) =>
143
143
  updateBlock(tr, "heading-with-everything", {
144
144
  content: "New content",
145
- })
146
- )
145
+ }),
146
+ ),
147
147
  ).toMatchSnapshot();
148
148
 
149
149
  expect(getEditor().document).toMatchSnapshot();
@@ -166,8 +166,8 @@ describe("Test updateBlock", () => {
166
166
  styles: { backgroundColor: "blue" },
167
167
  },
168
168
  ],
169
- })
170
- )
169
+ }),
170
+ ),
171
171
  ).toMatchSnapshot();
172
172
 
173
173
  expect(getEditor().document).toMatchSnapshot();
@@ -191,8 +191,8 @@ describe("Test updateBlock", () => {
191
191
  ],
192
192
  },
193
193
  ],
194
- })
195
- )
194
+ }),
195
+ ),
196
196
  ).toMatchSnapshot();
197
197
 
198
198
  expect(getEditor().document).toMatchSnapshot();
@@ -236,8 +236,8 @@ describe("Test updateBlock", () => {
236
236
  ],
237
237
  },
238
238
  ],
239
- })
240
- )
239
+ }),
240
+ ),
241
241
  ).toMatchSnapshot();
242
242
 
243
243
  expect(getEditor().document).toMatchSnapshot();
@@ -248,7 +248,7 @@ describe("Test updateBlock", () => {
248
248
  getEditor().transact((tr) =>
249
249
  updateBlock(tr, "paragraph-0", {
250
250
  type: "table",
251
- })
251
+ }),
252
252
  );
253
253
  }).toThrow();
254
254
  });
@@ -258,8 +258,8 @@ describe("Test updateBlock", () => {
258
258
  getEditor().transact((tr) =>
259
259
  updateBlock(tr, "table-0", {
260
260
  type: "paragraph",
261
- })
262
- )
261
+ }),
262
+ ),
263
263
  ).toMatchSnapshot();
264
264
 
265
265
  expect(getEditor().document).toMatchSnapshot();
@@ -284,8 +284,8 @@ describe("Test updateBlock", () => {
284
284
  },
285
285
  ],
286
286
  },
287
- })
288
- )
287
+ }),
288
+ ),
289
289
  ).toMatchSnapshot();
290
290
 
291
291
  expect(getEditor().document).toMatchSnapshot();
@@ -297,8 +297,8 @@ describe("Test updateBlock", () => {
297
297
  updateBlock(tr, "table-0", {
298
298
  type: "paragraph",
299
299
  content: "Paragraph",
300
- })
301
- )
300
+ }),
301
+ ),
302
302
  ).toMatchSnapshot();
303
303
 
304
304
  expect(getEditor().document).toMatchSnapshot();
@@ -309,8 +309,8 @@ describe("Test updateBlock", () => {
309
309
  getEditor().transact((tr) =>
310
310
  updateBlock(tr, "paragraph-0", {
311
311
  type: "image",
312
- })
313
- )
312
+ }),
313
+ ),
314
314
  ).toMatchSnapshot();
315
315
 
316
316
  expect(getEditor().document).toMatchSnapshot();
@@ -321,8 +321,8 @@ describe("Test updateBlock", () => {
321
321
  getEditor().transact((tr) =>
322
322
  updateBlock(tr, "image-0", {
323
323
  type: "paragraph",
324
- })
325
- )
324
+ }),
325
+ ),
326
326
  ).toMatchSnapshot();
327
327
 
328
328
  expect(getEditor().document).toMatchSnapshot();
@@ -334,8 +334,8 @@ describe("Test updateBlock", () => {
334
334
  updateBlock(tr, "image-0", {
335
335
  type: "paragraph",
336
336
  content: "Paragraph",
337
- })
338
- )
337
+ }),
338
+ ),
339
339
  ).toMatchSnapshot();
340
340
 
341
341
  expect(getEditor().document).toMatchSnapshot();
@@ -346,8 +346,8 @@ describe("Test updateBlock", () => {
346
346
  getEditor().transact((tr) =>
347
347
  updateBlock(tr, "image-0", {
348
348
  type: "table",
349
- })
350
- )
349
+ }),
350
+ ),
351
351
  ).toMatchSnapshot();
352
352
 
353
353
  expect(getEditor().document).toMatchSnapshot();
@@ -399,8 +399,8 @@ describe("Test updateBlock", () => {
399
399
  },
400
400
  ],
401
401
  },
402
- })
403
- )
402
+ }),
403
+ ),
404
404
  ).toMatchSnapshot();
405
405
 
406
406
  expect(getEditor().document).toMatchSnapshot();
@@ -411,8 +411,8 @@ describe("Test updateBlock", () => {
411
411
  getEditor().transact((tr) =>
412
412
  updateBlock(tr, "table-0", {
413
413
  type: "image",
414
- })
415
- )
414
+ }),
415
+ ),
416
416
  ).toMatchSnapshot();
417
417
 
418
418
  expect(getEditor().document).toMatchSnapshot();
@@ -31,10 +31,10 @@ import { getPmSchema } from "../../../pmUtil.js";
31
31
  export const updateBlockCommand = <
32
32
  BSchema extends BlockSchema,
33
33
  I extends InlineContentSchema,
34
- S extends StyleSchema
34
+ S extends StyleSchema,
35
35
  >(
36
36
  posBeforeBlock: number,
37
- block: PartialBlock<BSchema, I, S>
37
+ block: PartialBlock<BSchema, I, S>,
38
38
  ) => {
39
39
  return ({
40
40
  tr,
@@ -53,11 +53,11 @@ export const updateBlockCommand = <
53
53
  const updateBlockTr = <
54
54
  BSchema extends BlockSchema,
55
55
  I extends InlineContentSchema,
56
- S extends StyleSchema
56
+ S extends StyleSchema,
57
57
  >(
58
58
  tr: Transaction,
59
59
  posBeforeBlock: number,
60
- block: PartialBlock<BSchema, I, S>
60
+ block: PartialBlock<BSchema, I, S>,
61
61
  ) => {
62
62
  const blockInfo = getBlockInfoFromResolvedPos(tr.doc.resolve(posBeforeBlock));
63
63
 
@@ -96,8 +96,8 @@ const updateBlockTr = <
96
96
  children: existingBlock.children, // if no children are passed in, use existing children
97
97
  ...block,
98
98
  },
99
- pmSchema
100
- )
99
+ pmSchema,
100
+ ),
101
101
  );
102
102
 
103
103
  return;
@@ -114,7 +114,7 @@ const updateBlockTr = <
114
114
  function updateBlockContentNode<
115
115
  BSchema extends BlockSchema,
116
116
  I extends InlineContentSchema,
117
- S extends StyleSchema
117
+ S extends StyleSchema,
118
118
  >(
119
119
  block: PartialBlock<BSchema, I, S>,
120
120
  tr: Transaction,
@@ -125,7 +125,7 @@ function updateBlockContentNode<
125
125
  | { node: PMNode; beforePos: number; afterPos: number }
126
126
  | undefined;
127
127
  blockContent: { node: PMNode; beforePos: number; afterPos: number };
128
- }
128
+ },
129
129
  ) {
130
130
  const pmSchema = getPmSchema(tr);
131
131
  let content: PMNode[] | "keep" = "keep";
@@ -137,7 +137,7 @@ function updateBlockContentNode<
137
137
  content = inlineContentToNodes(
138
138
  [block.content],
139
139
  pmSchema,
140
- newNodeType.name
140
+ newNodeType.name,
141
141
  );
142
142
  } else if (Array.isArray(block.content)) {
143
143
  // Adds a text node with the provided styles converted into marks to the content,
@@ -178,7 +178,7 @@ function updateBlockContentNode<
178
178
  {
179
179
  ...blockInfo.blockContent.node.attrs,
180
180
  ...block.props,
181
- }
181
+ },
182
182
  );
183
183
  } else {
184
184
  // use replaceWith to replace the content and the block itself
@@ -192,8 +192,8 @@ function updateBlockContentNode<
192
192
  ...blockInfo.blockContent.node.attrs,
193
193
  ...block.props,
194
194
  },
195
- content
196
- )
195
+ content,
196
+ ),
197
197
  );
198
198
  }
199
199
  }
@@ -201,7 +201,7 @@ function updateBlockContentNode<
201
201
  function updateChildren<
202
202
  BSchema extends BlockSchema,
203
203
  I extends InlineContentSchema,
204
- S extends StyleSchema
204
+ S extends StyleSchema,
205
205
  >(block: PartialBlock<BSchema, I, S>, tr: Transaction, blockInfo: BlockInfo) {
206
206
  const pmSchema = getPmSchema(tr);
207
207
  if (block.children !== undefined && block.children.length > 0) {
@@ -218,8 +218,8 @@ function updateChildren<
218
218
  new ReplaceStep(
219
219
  blockInfo.childContainer.beforePos + 1,
220
220
  blockInfo.childContainer.afterPos - 1,
221
- new Slice(Fragment.from(childNodes), 0, 0)
222
- )
221
+ new Slice(Fragment.from(childNodes), 0, 0),
222
+ ),
223
223
  );
224
224
  } else {
225
225
  if (!blockInfo.isBlockContainer) {
@@ -228,7 +228,7 @@ function updateChildren<
228
228
  // Inserts a new blockGroup containing the child nodes created earlier.
229
229
  tr.insert(
230
230
  blockInfo.blockContent.afterPos,
231
- pmSchema.nodes["blockGroup"].createChecked({}, childNodes)
231
+ pmSchema.nodes["blockGroup"].createChecked({}, childNodes),
232
232
  );
233
233
  }
234
234
  }
@@ -237,11 +237,11 @@ function updateChildren<
237
237
  export function updateBlock<
238
238
  BSchema extends BlockSchema = any,
239
239
  I extends InlineContentSchema = any,
240
- S extends StyleSchema = any
240
+ S extends StyleSchema = any,
241
241
  >(
242
242
  tr: Transaction,
243
243
  blockToUpdate: BlockIdentifier,
244
- update: PartialBlock<BSchema, I, S>
244
+ update: PartialBlock<BSchema, I, S>,
245
245
  ): Block<BSchema, I, S> {
246
246
  const id =
247
247
  typeof blockToUpdate === "string" ? blockToUpdate : blockToUpdate.id;