@blocknote/core 0.8.1 → 0.8.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 (71) hide show
  1. package/README.md +4 -0
  2. package/dist/blocknote.js +1787 -1834
  3. package/dist/blocknote.js.map +1 -1
  4. package/dist/blocknote.umd.cjs +4 -4
  5. package/dist/blocknote.umd.cjs.map +1 -1
  6. package/dist/style.css +1 -1
  7. package/package.json +3 -3
  8. package/src/BlockNoteEditor.ts +102 -38
  9. package/src/BlockNoteExtensions.ts +1 -58
  10. package/src/api/formatConversions/__snapshots__/formatConversions.test.ts.snap +10 -10
  11. package/src/api/formatConversions/formatConversions.test.ts +587 -605
  12. package/src/api/nodeConversions/__snapshots__/nodeConversions.test.ts.snap +15 -15
  13. package/src/api/nodeConversions/nodeConversions.test.ts +90 -94
  14. package/src/extensions/Blocks/api/blockTypes.ts +3 -2
  15. package/src/extensions/Blocks/helpers/getBlockInfoFromPos.ts +6 -0
  16. package/src/extensions/Blocks/nodes/BlockContainer.ts +12 -3
  17. package/src/extensions/FormattingToolbar/FormattingToolbarPlugin.ts +92 -104
  18. package/src/extensions/HyperlinkToolbar/HyperlinkToolbarPlugin.ts +178 -134
  19. package/src/extensions/Placeholder/PlaceholderExtension.ts +2 -2
  20. package/src/extensions/{DraggableBlocks/DraggableBlocksPlugin.ts → SideMenu/SideMenuPlugin.ts} +173 -163
  21. package/src/extensions/SlashMenu/BaseSlashMenuItem.ts +7 -30
  22. package/src/extensions/SlashMenu/SlashMenuPlugin.ts +51 -0
  23. package/src/extensions/SlashMenu/defaultSlashMenuItems.ts +109 -0
  24. package/src/extensions/UniqueID/UniqueID.ts +29 -30
  25. package/src/index.ts +9 -8
  26. package/src/node_modules/.vitest/results.json +1 -0
  27. package/src/shared/BaseUiElementTypes.ts +8 -0
  28. package/src/shared/EditorElement.ts +0 -16
  29. package/src/shared/EventEmitter.ts +58 -0
  30. package/src/shared/plugins/suggestion/SuggestionItem.ts +3 -6
  31. package/src/shared/plugins/suggestion/SuggestionPlugin.ts +333 -389
  32. package/types/src/BlockNoteEditor.d.ts +18 -10
  33. package/types/src/BlockNoteExtensions.d.ts +0 -19
  34. package/types/src/EventEmitter.d.ts +11 -0
  35. package/types/src/extensions/Blocks/api/blockTypes.d.ts +3 -2
  36. package/types/src/extensions/DraggableBlocks/BlockSideMenuFactoryTypes.d.ts +0 -17
  37. package/types/src/extensions/DraggableBlocks/DraggableBlocksPlugin.d.ts +25 -19
  38. package/types/src/extensions/FormattingToolbar/FormattingToolbarFactoryTypes.d.ts +2 -3
  39. package/types/src/extensions/FormattingToolbar/FormattingToolbarPlugin.d.ts +17 -24
  40. package/types/src/extensions/HyperlinkToolbar/HyperlinkToolbarFactoryTypes.d.ts +0 -12
  41. package/types/src/extensions/HyperlinkToolbar/HyperlinkToolbarPlugin.d.ts +37 -10
  42. package/types/src/extensions/SideMenu/MultipleNodeSelection.d.ts +24 -0
  43. package/types/src/extensions/SideMenu/SideMenuPlugin.d.ts +79 -0
  44. package/types/src/extensions/SlashMenu/BaseSlashMenuItem.d.ts +5 -18
  45. package/types/src/extensions/SlashMenu/SlashMenuPlugin.d.ts +13 -0
  46. package/types/src/extensions/SlashMenu/defaultSlashMenuItems.d.ts +1 -69
  47. package/types/src/extensions/SlashMenu/index.d.ts +2 -3
  48. package/types/src/index.d.ts +9 -8
  49. package/types/src/shared/BaseUiElementTypes.d.ts +7 -0
  50. package/types/src/shared/EditorElement.d.ts +0 -10
  51. package/types/src/shared/EventEmitter.d.ts +11 -0
  52. package/types/src/shared/plugins/suggestion/SuggestionItem.d.ts +2 -7
  53. package/types/src/shared/plugins/suggestion/SuggestionPlugin.d.ts +12 -43
  54. package/types/src/shared/plugins/suggestion/SuggestionsMenuFactoryTypes.d.ts +1 -1
  55. package/src/extensions/DraggableBlocks/BlockSideMenuFactoryTypes.ts +0 -29
  56. package/src/extensions/DraggableBlocks/DraggableBlocksExtension.ts +0 -37
  57. package/src/extensions/FormattingToolbar/FormattingToolbarExtension.ts +0 -37
  58. package/src/extensions/FormattingToolbar/FormattingToolbarFactoryTypes.ts +0 -20
  59. package/src/extensions/HyperlinkToolbar/HyperlinkMark.ts +0 -28
  60. package/src/extensions/HyperlinkToolbar/HyperlinkToolbarFactoryTypes.ts +0 -19
  61. package/src/extensions/SlashMenu/SlashMenuExtension.ts +0 -53
  62. package/src/extensions/SlashMenu/defaultSlashMenuItems.tsx +0 -195
  63. package/src/extensions/SlashMenu/index.ts +0 -5
  64. package/src/shared/plugins/suggestion/SuggestionsMenuFactoryTypes.ts +0 -21
  65. package/types/src/CustomBlock.d.ts +0 -15
  66. package/types/src/extensions/Blocks/nodes/BlockContent/TableContent/TableCol.d.ts +0 -2
  67. package/types/src/extensions/Blocks/nodes/BlockContent/TableContent/TableContent.d.ts +0 -2
  68. package/types/src/extensions/Blocks/nodes/BlockContent/TableContent/TableRow.d.ts +0 -2
  69. package/types/src/extensions/Placeholder/localisation/index.d.ts +0 -2
  70. package/types/src/extensions/Placeholder/localisation/translation.d.ts +0 -51
  71. /package/src/extensions/{DraggableBlocks → SideMenu}/MultipleNodeSelection.ts +0 -0
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "homepage": "https://github.com/TypeCellOS/BlockNote",
4
4
  "private": false,
5
5
  "license": "MPL-2.0",
6
- "version": "0.8.1",
6
+ "version": "0.8.3",
7
7
  "files": [
8
8
  "dist",
9
9
  "types",
@@ -45,7 +45,7 @@
45
45
  "build-bundled": "tsc && vite build --config vite.config.bundled.ts && git checkout tmp-releases && rm -rf ../../release && mv ../../release-tmp ../../release",
46
46
  "preview": "vite preview",
47
47
  "lint": "eslint src --max-warnings 0",
48
- "test": "vitest",
48
+ "test": "vitest --run",
49
49
  "test-watch": "vitest watch"
50
50
  },
51
51
  "dependencies": {
@@ -110,5 +110,5 @@
110
110
  "access": "public",
111
111
  "registry": "https://registry.npmjs.org/"
112
112
  },
113
- "gitHead": "2265d9068126df0881dd813ba6a265b82f48b466"
113
+ "gitHead": "4b0778beb0b0857491273b37eb2cd9405b4d12fd"
114
114
  }
@@ -1,8 +1,9 @@
1
- import { Editor, EditorOptions } from "@tiptap/core";
1
+ import { Editor, EditorOptions, Extension } from "@tiptap/core";
2
2
  import { Node } from "prosemirror-model";
3
3
  // import "./blocknote.css";
4
4
  import { Editor as TiptapEditor } from "@tiptap/core/dist/packages/core/src/Editor";
5
5
  import * as Y from "yjs";
6
+ import { getBlockNoteExtensions } from "./BlockNoteExtensions";
6
7
  import {
7
8
  insertBlocks,
8
9
  removeBlocks,
@@ -10,14 +11,16 @@ import {
10
11
  updateBlock,
11
12
  } from "./api/blockManipulation/blockManipulation";
12
13
  import {
14
+ HTMLToBlocks,
13
15
  blocksToHTML,
14
16
  blocksToMarkdown,
15
- HTMLToBlocks,
16
17
  markdownToBlocks,
17
18
  } from "./api/formatConversions/formatConversions";
18
- import { nodeToBlock } from "./api/nodeConversions/nodeConversions";
19
+ import {
20
+ blockToNode,
21
+ nodeToBlock,
22
+ } from "./api/nodeConversions/nodeConversions";
19
23
  import { getNodeById } from "./api/util/nodeUtil";
20
- import { getBlockNoteExtensions, UiFactories } from "./BlockNoteExtensions";
21
24
  import styles from "./editor.module.css";
22
25
  import {
23
26
  Block,
@@ -37,28 +40,25 @@ import {
37
40
  } from "./extensions/Blocks/api/inlineContentTypes";
38
41
  import { Selection } from "./extensions/Blocks/api/selectionTypes";
39
42
  import { getBlockInfoFromPos } from "./extensions/Blocks/helpers/getBlockInfoFromPos";
40
- import {
41
- BaseSlashMenuItem,
42
- defaultSlashMenuItems,
43
- } from "./extensions/SlashMenu";
43
+
44
+ import { FormattingToolbarProsemirrorPlugin } from "./extensions/FormattingToolbar/FormattingToolbarPlugin";
45
+ import { HyperlinkToolbarProsemirrorPlugin } from "./extensions/HyperlinkToolbar/HyperlinkToolbarPlugin";
46
+ import { SideMenuProsemirrorPlugin } from "./extensions/SideMenu/SideMenuPlugin";
47
+ import { BaseSlashMenuItem } from "./extensions/SlashMenu/BaseSlashMenuItem";
48
+ import { SlashMenuProsemirrorPlugin } from "./extensions/SlashMenu/SlashMenuPlugin";
49
+ import { getDefaultSlashMenuItems } from "./extensions/SlashMenu/defaultSlashMenuItems";
50
+ import { UniqueID } from "./extensions/UniqueID/UniqueID";
44
51
 
45
52
  export type BlockNoteEditorOptions<BSchema extends BlockSchema> = {
46
53
  // TODO: Figure out if enableBlockNoteExtensions/disableHistoryExtension are needed and document them.
47
54
  enableBlockNoteExtensions: boolean;
48
-
49
55
  /**
50
- * UI element factories for creating a custom UI, including custom positioning
51
- * & rendering.
52
- */
53
- uiFactories: UiFactories<BSchema>;
54
- /**
55
- * TODO: why is this called slashCommands and not slashMenuItems?
56
56
  *
57
57
  * (couldn't fix any type, see https://github.com/TypeCellOS/BlockNote/pull/191#discussion_r1210708771)
58
58
  *
59
59
  * @default defaultSlashMenuItems from `./extensions/SlashMenu`
60
60
  */
61
- slashCommands: BaseSlashMenuItem<any>[];
61
+ slashMenuItems: BaseSlashMenuItem<any>[];
62
62
 
63
63
  /**
64
64
  * The HTML element that should be used as the parent element for the editor.
@@ -149,18 +149,12 @@ export class BlockNoteEditor<BSchema extends BlockSchema = DefaultBlockSchema> {
149
149
  public readonly _tiptapEditor: TiptapEditor & { contentComponent: any };
150
150
  public blockCache = new WeakMap<Node, Block<BSchema>>();
151
151
  public readonly schema: BSchema;
152
+ public ready = false;
152
153
 
153
- public get domElement() {
154
- return this._tiptapEditor.view.dom as HTMLDivElement;
155
- }
156
-
157
- public isFocused() {
158
- return this._tiptapEditor.view.hasFocus();
159
- }
160
-
161
- public focus() {
162
- this._tiptapEditor.view.focus();
163
- }
154
+ public readonly sideMenu: SideMenuProsemirrorPlugin<BSchema>;
155
+ public readonly formattingToolbar: FormattingToolbarProsemirrorPlugin<BSchema>;
156
+ public readonly slashMenu: SlashMenuProsemirrorPlugin<BSchema, any>;
157
+ public readonly hyperlinkToolbar: HyperlinkToolbarProsemirrorPlugin<BSchema>;
164
158
 
165
159
  constructor(
166
160
  private readonly options: Partial<BlockNoteEditorOptions<BSchema>> = {}
@@ -180,35 +174,81 @@ export class BlockNoteEditor<BSchema extends BlockSchema = DefaultBlockSchema> {
180
174
  ...options,
181
175
  };
182
176
 
177
+ this.sideMenu = new SideMenuProsemirrorPlugin(this);
178
+ this.formattingToolbar = new FormattingToolbarProsemirrorPlugin(this);
179
+ this.slashMenu = new SlashMenuProsemirrorPlugin(
180
+ this,
181
+ newOptions.slashMenuItems ||
182
+ getDefaultSlashMenuItems(newOptions.blockSchema)
183
+ );
184
+ this.hyperlinkToolbar = new HyperlinkToolbarProsemirrorPlugin(this);
185
+
183
186
  const extensions = getBlockNoteExtensions<BSchema>({
184
187
  editor: this,
185
- uiFactories: newOptions.uiFactories || {},
186
- slashCommands: newOptions.slashCommands || defaultSlashMenuItems,
187
188
  blockSchema: newOptions.blockSchema,
188
189
  collaboration: newOptions.collaboration,
189
190
  });
190
191
 
192
+ const blockNoteUIExtension = Extension.create({
193
+ name: "BlockNoteUIExtension",
194
+
195
+ addProseMirrorPlugins: () => {
196
+ return [
197
+ this.sideMenu.plugin,
198
+ this.formattingToolbar.plugin,
199
+ this.slashMenu.plugin,
200
+ this.hyperlinkToolbar.plugin,
201
+ ];
202
+ },
203
+ });
204
+ extensions.push(blockNoteUIExtension);
205
+
191
206
  this.schema = newOptions.blockSchema;
192
207
 
208
+ const initialContent = newOptions.initialContent || [
209
+ {
210
+ type: "paragraph",
211
+ id: UniqueID.options.generateID(),
212
+ },
213
+ ];
214
+
193
215
  const tiptapOptions: EditorOptions = {
194
- // TODO: This approach to setting initial content is "cleaner" but requires the PM editor schema, which is only
195
- // created after initializing the TipTap editor. Not sure it's feasible.
196
- // content:
197
- // options.initialContent &&
198
- // options.initialContent.map((block) =>
199
- // blockToNode(block, this._tiptapEditor.schema).toJSON()
200
- // ),
201
216
  ...blockNoteTipTapOptions,
202
217
  ...newOptions._tiptapOptions,
203
218
  onCreate: () => {
204
219
  newOptions.onEditorReady?.(this);
205
- newOptions.initialContent &&
206
- this.replaceBlocks(this.topLevelBlocks, newOptions.initialContent);
220
+ this.ready = true;
221
+ },
222
+ onBeforeCreate(editor) {
223
+ // we have to set the initial content here, because now we can use the editor schema
224
+ // which has been created at this point
225
+ const schema = editor.editor.schema;
226
+ const ic = initialContent.map((block) => blockToNode(block, schema));
227
+
228
+ const root = schema.node(
229
+ "doc",
230
+ undefined,
231
+ schema.node("blockGroup", undefined, ic)
232
+ );
233
+ // override the initialcontent
234
+ editor.editor.options.content = root.toJSON();
207
235
  },
208
236
  onUpdate: () => {
237
+ // This seems to be necessary due to a bug in TipTap:
238
+ // https://github.com/ueberdosis/tiptap/issues/2583
239
+ if (!this.ready) {
240
+ return;
241
+ }
242
+
209
243
  newOptions.onEditorContentChange?.(this);
210
244
  },
211
245
  onSelectionUpdate: () => {
246
+ // This seems to be necessary due to a bug in TipTap:
247
+ // https://github.com/ueberdosis/tiptap/issues/2583
248
+ if (!this.ready) {
249
+ return;
250
+ }
251
+
212
252
  newOptions.onTextCursorPositionChange?.(this);
213
253
  },
214
254
  editable: options.editable === undefined ? true : options.editable,
@@ -239,6 +279,22 @@ export class BlockNoteEditor<BSchema extends BlockSchema = DefaultBlockSchema> {
239
279
  };
240
280
  }
241
281
 
282
+ public get prosemirrorView() {
283
+ return this._tiptapEditor.view;
284
+ }
285
+
286
+ public get domElement() {
287
+ return this._tiptapEditor.view.dom as HTMLDivElement;
288
+ }
289
+
290
+ public isFocused() {
291
+ return this._tiptapEditor.view.hasFocus();
292
+ }
293
+
294
+ public focus() {
295
+ this._tiptapEditor.view.focus();
296
+ }
297
+
242
298
  /**
243
299
  * Gets a snapshot of all top-level (non-nested) blocks in the editor.
244
300
  * @returns A snapshot of all top-level (non-nested) blocks in the editor.
@@ -330,6 +386,14 @@ export class BlockNoteEditor<BSchema extends BlockSchema = DefaultBlockSchema> {
330
386
  this._tiptapEditor.on("update", callback);
331
387
  }
332
388
 
389
+ /**
390
+ * Executes a callback whenever the editor's selection changes.
391
+ * @param callback The callback to execute.
392
+ */
393
+ public onEditorSelectionChange(callback: () => void) {
394
+ this._tiptapEditor.on("selectionUpdate", callback);
395
+ }
396
+
333
397
  /**
334
398
  * Gets a snapshot of the current text cursor position.
335
399
  * @returns A snapshot of the current text cursor position.
@@ -23,38 +23,18 @@ import { blocks } from "./extensions/Blocks";
23
23
  import { BlockSchema } from "./extensions/Blocks/api/blockTypes";
24
24
  import { CustomBlockSerializerExtension } from "./extensions/Blocks/api/serialization";
25
25
  import blockStyles from "./extensions/Blocks/nodes/Block.module.css";
26
- import { BlockSideMenuFactory } from "./extensions/DraggableBlocks/BlockSideMenuFactoryTypes";
27
- import { createDraggableBlocksExtension } from "./extensions/DraggableBlocks/DraggableBlocksExtension";
28
- import { createFormattingToolbarExtension } from "./extensions/FormattingToolbar/FormattingToolbarExtension";
29
- import { FormattingToolbarFactory } from "./extensions/FormattingToolbar/FormattingToolbarFactoryTypes";
30
- import HyperlinkMark from "./extensions/HyperlinkToolbar/HyperlinkMark";
31
- import { HyperlinkToolbarFactory } from "./extensions/HyperlinkToolbar/HyperlinkToolbarFactoryTypes";
32
26
  import { Placeholder } from "./extensions/Placeholder/PlaceholderExtension";
33
- import {
34
- BaseSlashMenuItem,
35
- createSlashMenuExtension,
36
- } from "./extensions/SlashMenu";
37
27
  import { TextAlignmentExtension } from "./extensions/TextAlignment/TextAlignmentExtension";
38
28
  import { TextColorExtension } from "./extensions/TextColor/TextColorExtension";
39
29
  import { TextColorMark } from "./extensions/TextColor/TextColorMark";
40
30
  import { TrailingNode } from "./extensions/TrailingNode/TrailingNodeExtension";
41
31
  import UniqueID from "./extensions/UniqueID/UniqueID";
42
- import { SuggestionsMenuFactory } from "./shared/plugins/suggestion/SuggestionsMenuFactoryTypes";
43
-
44
- export type UiFactories<BSchema extends BlockSchema> = Partial<{
45
- formattingToolbarFactory: FormattingToolbarFactory<BSchema>;
46
- hyperlinkToolbarFactory: HyperlinkToolbarFactory;
47
- slashMenuFactory: SuggestionsMenuFactory<BaseSlashMenuItem<BSchema>>;
48
- blockSideMenuFactory: BlockSideMenuFactory<BSchema>;
49
- }>;
50
32
 
51
33
  /**
52
34
  * Get all the Tiptap extensions BlockNote is configured with by default
53
35
  */
54
36
  export const getBlockNoteExtensions = <BSchema extends BlockSchema>(opts: {
55
37
  editor: BlockNoteEditor<BSchema>;
56
- uiFactories: UiFactories<BSchema>;
57
- slashCommands: BaseSlashMenuItem<any>[]; // couldn't fix type, see https://github.com/TypeCellOS/BlockNote/pull/191#discussion_r1210708771
58
38
  blockSchema: BSchema;
59
39
  collaboration?: {
60
40
  fragment: Y.XmlFragment;
@@ -99,6 +79,7 @@ export const getBlockNoteExtensions = <BSchema extends BlockSchema>(opts: {
99
79
  Italic,
100
80
  Strike,
101
81
  Underline,
82
+ Link,
102
83
  TextColorMark,
103
84
  TextColorExtension,
104
85
  BackgroundColorMark,
@@ -155,43 +136,5 @@ export const getBlockNoteExtensions = <BSchema extends BlockSchema>(opts: {
155
136
  ret.push(History);
156
137
  }
157
138
 
158
- if (opts.uiFactories.blockSideMenuFactory) {
159
- ret.push(
160
- createDraggableBlocksExtension<BSchema>().configure({
161
- editor: opts.editor,
162
- blockSideMenuFactory: opts.uiFactories.blockSideMenuFactory,
163
- })
164
- );
165
- }
166
-
167
- if (opts.uiFactories.formattingToolbarFactory) {
168
- ret.push(
169
- createFormattingToolbarExtension<BSchema>().configure({
170
- editor: opts.editor,
171
- formattingToolbarFactory: opts.uiFactories.formattingToolbarFactory,
172
- })
173
- );
174
- }
175
-
176
- if (opts.uiFactories.hyperlinkToolbarFactory) {
177
- ret.push(
178
- HyperlinkMark.configure({
179
- hyperlinkToolbarFactory: opts.uiFactories.hyperlinkToolbarFactory,
180
- })
181
- );
182
- } else {
183
- ret.push(Link);
184
- }
185
-
186
- if (opts.uiFactories.slashMenuFactory) {
187
- ret.push(
188
- createSlashMenuExtension<BSchema>().configure({
189
- editor: opts.editor,
190
- commands: opts.slashCommands,
191
- slashMenuFactory: opts.uiFactories.slashMenuFactory,
192
- })
193
- );
194
- }
195
-
196
139
  return ret;
197
140
  };
@@ -65,7 +65,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested HTML to
65
65
  "type": "text",
66
66
  },
67
67
  ],
68
- "id": "27",
68
+ "id": "1",
69
69
  "props": {
70
70
  "backgroundColor": "default",
71
71
  "level": "1",
@@ -83,7 +83,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested HTML to
83
83
  "type": "text",
84
84
  },
85
85
  ],
86
- "id": "28",
86
+ "id": "2",
87
87
  "props": {
88
88
  "backgroundColor": "default",
89
89
  "textAlignment": "left",
@@ -100,7 +100,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested HTML to
100
100
  "type": "text",
101
101
  },
102
102
  ],
103
- "id": "29",
103
+ "id": "3",
104
104
  "props": {
105
105
  "backgroundColor": "default",
106
106
  "textAlignment": "left",
@@ -117,7 +117,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested HTML to
117
117
  "type": "text",
118
118
  },
119
119
  ],
120
- "id": "30",
120
+ "id": "4",
121
121
  "props": {
122
122
  "backgroundColor": "default",
123
123
  "textAlignment": "left",
@@ -139,7 +139,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested Markdow
139
139
  "type": "text",
140
140
  },
141
141
  ],
142
- "id": "27",
142
+ "id": "1",
143
143
  "props": {
144
144
  "backgroundColor": "default",
145
145
  "level": "1",
@@ -157,7 +157,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested Markdow
157
157
  "type": "text",
158
158
  },
159
159
  ],
160
- "id": "28",
160
+ "id": "2",
161
161
  "props": {
162
162
  "backgroundColor": "default",
163
163
  "textAlignment": "left",
@@ -174,7 +174,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested Markdow
174
174
  "type": "text",
175
175
  },
176
176
  ],
177
- "id": "29",
177
+ "id": "3",
178
178
  "props": {
179
179
  "backgroundColor": "default",
180
180
  "textAlignment": "left",
@@ -191,7 +191,7 @@ exports[`Non-Nested Block/HTML/Markdown Conversions > Convert non-nested Markdow
191
191
  "type": "text",
192
192
  },
193
193
  ],
194
- "id": "30",
194
+ "id": "4",
195
195
  "props": {
196
196
  "backgroundColor": "default",
197
197
  "textAlignment": "left",
@@ -271,7 +271,7 @@ exports[`Styled Block/HTML/Markdown Conversions > Convert styled HTML to blocks
271
271
  "type": "text",
272
272
  },
273
273
  ],
274
- "id": "27",
274
+ "id": "1",
275
275
  "props": {
276
276
  "backgroundColor": "default",
277
277
  "textAlignment": "left",
@@ -327,7 +327,7 @@ exports[`Styled Block/HTML/Markdown Conversions > Convert styled Markdown to blo
327
327
  "type": "text",
328
328
  },
329
329
  ],
330
- "id": "27",
330
+ "id": "1",
331
331
  "props": {
332
332
  "backgroundColor": "default",
333
333
  "textAlignment": "left",