@blocknote/core 0.8.2 → 0.8.4-alpha.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 (72) hide show
  1. package/README.md +4 -0
  2. package/dist/blocknote.js +1777 -1849
  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 +4 -4
  8. package/src/BlockNoteEditor.ts +89 -39
  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/FormattingToolbar/FormattingToolbarPlugin.ts +101 -114
  17. package/src/extensions/HyperlinkToolbar/HyperlinkToolbarPlugin.ts +184 -149
  18. package/src/extensions/Placeholder/PlaceholderExtension.ts +2 -2
  19. package/src/extensions/{DraggableBlocks/DraggableBlocksPlugin.ts → SideMenu/SideMenuPlugin.ts} +181 -164
  20. package/src/extensions/SlashMenu/BaseSlashMenuItem.ts +7 -30
  21. package/src/extensions/SlashMenu/SlashMenuPlugin.ts +51 -0
  22. package/src/extensions/SlashMenu/defaultSlashMenuItems.ts +109 -0
  23. package/src/extensions/UniqueID/UniqueID.ts +29 -30
  24. package/src/index.ts +9 -8
  25. package/src/shared/BaseUiElementTypes.ts +8 -0
  26. package/src/shared/EditorElement.ts +0 -16
  27. package/src/shared/EventEmitter.ts +58 -0
  28. package/src/shared/plugins/suggestion/SuggestionItem.ts +3 -6
  29. package/src/shared/plugins/suggestion/SuggestionPlugin.ts +341 -403
  30. package/types/src/BlockNoteEditor.d.ts +18 -11
  31. package/types/src/BlockNoteExtensions.d.ts +0 -19
  32. package/types/src/extensions/Blocks/api/blockTypes.d.ts +3 -2
  33. package/types/src/extensions/FormattingToolbar/FormattingToolbarPlugin.d.ts +18 -24
  34. package/types/src/extensions/HyperlinkToolbar/HyperlinkToolbarPlugin.d.ts +37 -10
  35. package/types/src/extensions/SideMenu/SideMenuPlugin.d.ts +79 -0
  36. package/types/src/extensions/SlashMenu/BaseSlashMenuItem.d.ts +5 -18
  37. package/types/src/extensions/SlashMenu/SlashMenuPlugin.d.ts +13 -0
  38. package/types/src/extensions/SlashMenu/defaultSlashMenuItems.d.ts +1 -69
  39. package/types/src/index.d.ts +9 -8
  40. package/types/src/shared/BaseUiElementTypes.d.ts +7 -0
  41. package/types/src/shared/EditorElement.d.ts +0 -10
  42. package/types/src/shared/EventEmitter.d.ts +11 -0
  43. package/types/src/shared/plugins/suggestion/SuggestionItem.d.ts +2 -7
  44. package/types/src/shared/plugins/suggestion/SuggestionPlugin.d.ts +12 -43
  45. package/src/extensions/DraggableBlocks/BlockSideMenuFactoryTypes.ts +0 -29
  46. package/src/extensions/DraggableBlocks/DraggableBlocksExtension.ts +0 -37
  47. package/src/extensions/FormattingToolbar/FormattingToolbarExtension.ts +0 -37
  48. package/src/extensions/FormattingToolbar/FormattingToolbarFactoryTypes.ts +0 -18
  49. package/src/extensions/HyperlinkToolbar/HyperlinkMark.ts +0 -28
  50. package/src/extensions/HyperlinkToolbar/HyperlinkToolbarFactoryTypes.ts +0 -19
  51. package/src/extensions/SlashMenu/SlashMenuExtension.ts +0 -53
  52. package/src/extensions/SlashMenu/defaultSlashMenuItems.tsx +0 -195
  53. package/src/extensions/SlashMenu/index.ts +0 -5
  54. package/src/shared/plugins/suggestion/SuggestionsMenuFactoryTypes.ts +0 -21
  55. package/types/src/CustomBlock.d.ts +0 -15
  56. package/types/src/extensions/Blocks/nodes/BlockContent/TableContent/TableCol.d.ts +0 -2
  57. package/types/src/extensions/Blocks/nodes/BlockContent/TableContent/TableContent.d.ts +0 -2
  58. package/types/src/extensions/Blocks/nodes/BlockContent/TableContent/TableRow.d.ts +0 -2
  59. package/types/src/extensions/DraggableBlocks/BlockSideMenuFactoryTypes.d.ts +0 -17
  60. package/types/src/extensions/DraggableBlocks/DraggableBlocksExtension.d.ts +0 -16
  61. package/types/src/extensions/DraggableBlocks/DraggableBlocksPlugin.d.ts +0 -49
  62. package/types/src/extensions/FormattingToolbar/FormattingToolbarExtension.d.ts +0 -11
  63. package/types/src/extensions/FormattingToolbar/FormattingToolbarFactoryTypes.d.ts +0 -10
  64. package/types/src/extensions/HyperlinkToolbar/HyperlinkMark.d.ts +0 -8
  65. package/types/src/extensions/HyperlinkToolbar/HyperlinkToolbarFactoryTypes.d.ts +0 -12
  66. package/types/src/extensions/Placeholder/localisation/index.d.ts +0 -2
  67. package/types/src/extensions/Placeholder/localisation/translation.d.ts +0 -51
  68. package/types/src/extensions/SlashMenu/SlashMenuExtension.d.ts +0 -13
  69. package/types/src/extensions/SlashMenu/index.d.ts +0 -4
  70. package/types/src/shared/plugins/suggestion/SuggestionsMenuFactoryTypes.d.ts +0 -12
  71. /package/src/extensions/{DraggableBlocks → SideMenu}/MultipleNodeSelection.ts +0 -0
  72. /package/types/src/extensions/{DraggableBlocks → SideMenu}/MultipleNodeSelection.d.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.2",
6
+ "version": "0.8.4-alpha.0",
7
7
  "files": [
8
8
  "dist",
9
9
  "types",
@@ -93,9 +93,9 @@
93
93
  "jsdom": "^21.1.0",
94
94
  "prettier": "^2.7.1",
95
95
  "typescript": "^5.0.4",
96
- "vite": "^4.1.2",
96
+ "vite": "^4.4.8",
97
97
  "vite-plugin-eslint": "^1.8.1",
98
- "vitest": "^0.28.5"
98
+ "vitest": "^0.34.1"
99
99
  },
100
100
  "eslintConfig": {
101
101
  "extends": [
@@ -110,5 +110,5 @@
110
110
  "access": "public",
111
111
  "registry": "https://registry.npmjs.org/"
112
112
  },
113
- "gitHead": "8971bf90c88b71c0e1c52fc4f8b35579a2b82e28"
113
+ "gitHead": "fdb190e0948be3d79b12357db6a56af64413f651"
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,19 +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
- private ready = false;
153
-
154
- public get domElement() {
155
- return this._tiptapEditor.view.dom as HTMLDivElement;
156
- }
152
+ public ready = false;
157
153
 
158
- public isFocused() {
159
- return this._tiptapEditor.view.hasFocus();
160
- }
161
-
162
- public focus() {
163
- this._tiptapEditor.view.focus();
164
- }
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>;
165
158
 
166
159
  constructor(
167
160
  private readonly options: Partial<BlockNoteEditorOptions<BSchema>> = {}
@@ -181,32 +174,65 @@ export class BlockNoteEditor<BSchema extends BlockSchema = DefaultBlockSchema> {
181
174
  ...options,
182
175
  };
183
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
+
184
186
  const extensions = getBlockNoteExtensions<BSchema>({
185
187
  editor: this,
186
- uiFactories: newOptions.uiFactories || {},
187
- slashCommands: newOptions.slashCommands || defaultSlashMenuItems,
188
188
  blockSchema: newOptions.blockSchema,
189
189
  collaboration: newOptions.collaboration,
190
190
  });
191
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
+
192
206
  this.schema = newOptions.blockSchema;
193
207
 
208
+ const initialContent = newOptions.initialContent || [
209
+ {
210
+ type: "paragraph",
211
+ id: UniqueID.options.generateID(),
212
+ },
213
+ ];
214
+
194
215
  const tiptapOptions: EditorOptions = {
195
- // TODO: This approach to setting initial content is "cleaner" but requires the PM editor schema, which is only
196
- // created after initializing the TipTap editor. Not sure it's feasible.
197
- // content:
198
- // options.initialContent &&
199
- // options.initialContent.map((block) =>
200
- // blockToNode(block, this._tiptapEditor.schema).toJSON()
201
- // ),
202
216
  ...blockNoteTipTapOptions,
203
217
  ...newOptions._tiptapOptions,
204
218
  onCreate: () => {
205
219
  newOptions.onEditorReady?.(this);
206
- newOptions.initialContent &&
207
- this.replaceBlocks(this.topLevelBlocks, newOptions.initialContent);
208
220
  this.ready = true;
209
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();
235
+ },
210
236
  onUpdate: () => {
211
237
  // This seems to be necessary due to a bug in TipTap:
212
238
  // https://github.com/ueberdosis/tiptap/issues/2583
@@ -253,6 +279,22 @@ export class BlockNoteEditor<BSchema extends BlockSchema = DefaultBlockSchema> {
253
279
  };
254
280
  }
255
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
+
256
298
  /**
257
299
  * Gets a snapshot of all top-level (non-nested) blocks in the editor.
258
300
  * @returns A snapshot of all top-level (non-nested) blocks in the editor.
@@ -344,6 +386,14 @@ export class BlockNoteEditor<BSchema extends BlockSchema = DefaultBlockSchema> {
344
386
  this._tiptapEditor.on("update", callback);
345
387
  }
346
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
+
347
397
  /**
348
398
  * Gets a snapshot of the current text cursor position.
349
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",