@blocknote/core 0.24.1 → 0.25.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 (149) hide show
  1. package/dist/blocknote.cjs +12 -0
  2. package/dist/blocknote.cjs.map +1 -0
  3. package/dist/blocknote.js +5028 -3444
  4. package/dist/blocknote.js.map +1 -1
  5. package/dist/comments.cjs +2 -0
  6. package/dist/comments.cjs.map +1 -0
  7. package/dist/comments.js +593 -0
  8. package/dist/comments.js.map +1 -0
  9. package/dist/style.css +1 -1
  10. package/dist/tsconfig.tsbuildinfo +1 -1
  11. package/dist/webpack-stats.json +1 -1
  12. package/package.json +39 -26
  13. package/src/api/blockManipulation/commands/insertBlocks/__snapshots__/insertBlocks.test.ts.snap +1022 -378
  14. package/src/api/blockManipulation/commands/mergeBlocks/__snapshots__/mergeBlocks.test.ts.snap +730 -270
  15. package/src/api/blockManipulation/commands/moveBlocks/__snapshots__/moveBlocks.test.ts.snap +3100 -1260
  16. package/src/api/blockManipulation/commands/removeBlocks/__snapshots__/removeBlocks.test.ts.snap +438 -162
  17. package/src/api/blockManipulation/commands/replaceBlocks/__snapshots__/replaceBlocks.test.ts.snap +1168 -432
  18. package/src/api/blockManipulation/commands/splitBlock/__snapshots__/splitBlock.test.ts.snap +930 -378
  19. package/src/api/blockManipulation/commands/updateBlock/__snapshots__/updateBlock.test.ts.snap +2485 -1015
  20. package/src/api/blockManipulation/commands/updateBlock/updateBlock.test.ts +28 -1
  21. package/src/api/blockManipulation/commands/updateBlock/updateBlock.ts +1 -1
  22. package/src/api/blockManipulation/selections/__snapshots__/selection.test.ts.snap +292 -108
  23. package/src/api/blockManipulation/setupTestEnv.ts +14 -1
  24. package/src/api/blockManipulation/tables/tables.test.ts +1987 -0
  25. package/src/api/blockManipulation/tables/tables.ts +887 -0
  26. package/src/api/clipboard/__snapshots__/external/pasteEndOfParagraph.html +66 -24
  27. package/src/api/clipboard/__snapshots__/external/pasteEndOfParagraphText.html +66 -24
  28. package/src/api/clipboard/__snapshots__/external/pasteImage.html +66 -24
  29. package/src/api/clipboard/__snapshots__/external/pasteParagraphInCustomBlock.html +66 -24
  30. package/src/api/clipboard/__snapshots__/external/pasteTable.html +132 -48
  31. package/src/api/clipboard/__snapshots__/external/pasteTableInExistingTable.html +136 -44
  32. package/src/api/clipboard/fromClipboard/handleFileInsertion.ts +36 -14
  33. package/src/api/clipboard/toClipboard/copyExtension.ts +2 -3
  34. package/src/api/exporters/html/__snapshots__/table/headerCols/external.html +1 -0
  35. package/src/api/exporters/html/__snapshots__/table/headerCols/internal.html +1 -0
  36. package/src/api/exporters/html/__snapshots__/table/headerRows/external.html +1 -0
  37. package/src/api/exporters/html/__snapshots__/table/headerRows/internal.html +1 -0
  38. package/src/api/exporters/html/__snapshots__/table/headersRows/external.html +1 -0
  39. package/src/api/exporters/html/__snapshots__/table/headersRows/internal.html +1 -0
  40. package/src/api/exporters/html/__snapshots__/table/mixedCellColors/external.html +1 -0
  41. package/src/api/exporters/html/__snapshots__/table/mixedCellColors/internal.html +1 -0
  42. package/src/api/exporters/html/__snapshots__/table/mixedRowspansAndColspans/external.html +1 -0
  43. package/src/api/exporters/html/__snapshots__/table/mixedRowspansAndColspans/internal.html +1 -0
  44. package/src/api/exporters/markdown/__snapshots__/table/headerCols/markdown.md +4 -0
  45. package/src/api/exporters/markdown/__snapshots__/table/headerRows/markdown.md +4 -0
  46. package/src/api/exporters/markdown/__snapshots__/table/mixedCellColors/markdown.md +5 -0
  47. package/src/api/exporters/markdown/__snapshots__/table/mixedRowspansAndColspans/markdown.md +5 -0
  48. package/src/api/nodeConversions/__snapshots__/nodeConversions.test.ts.snap +985 -20
  49. package/src/api/nodeConversions/blockToNode.ts +63 -20
  50. package/src/api/nodeConversions/nodeToBlock.ts +75 -13
  51. package/src/api/parsers/html/__snapshots__/parse-notion-html.json +145 -54
  52. package/src/api/testUtil/cases/defaultSchema.ts +782 -9
  53. package/src/api/testUtil/partialBlockTestUtil.ts +39 -4
  54. package/src/blocks/TableBlockContent/TableBlockContent.ts +11 -5
  55. package/src/blocks/defaultBlockTypeGuards.ts +8 -0
  56. package/src/comments/index.ts +9 -0
  57. package/src/comments/models/User.ts +8 -0
  58. package/src/comments/threadstore/DefaultThreadStoreAuth.ts +106 -0
  59. package/src/comments/threadstore/ThreadStore.ts +134 -0
  60. package/src/comments/threadstore/ThreadStoreAuth.ts +13 -0
  61. package/src/comments/threadstore/TipTapThreadStore.ts +292 -0
  62. package/src/comments/threadstore/yjs/RESTYjsThreadStore.ts +144 -0
  63. package/src/comments/threadstore/yjs/YjsThreadStore.test.ts +294 -0
  64. package/src/comments/threadstore/yjs/YjsThreadStore.ts +340 -0
  65. package/src/comments/threadstore/yjs/YjsThreadStoreBase.ts +48 -0
  66. package/src/comments/threadstore/yjs/yjsHelpers.ts +121 -0
  67. package/src/comments/types.ts +117 -0
  68. package/src/editor/Block.css +16 -8
  69. package/src/editor/BlockNoteEditor.ts +269 -92
  70. package/src/editor/BlockNoteExtensions.ts +24 -1
  71. package/src/editor/BlockNoteTipTapEditor.ts +5 -1
  72. package/src/editor/editor.css +17 -0
  73. package/src/extensions/BackgroundColor/BackgroundColorExtension.ts +1 -1
  74. package/src/extensions/Comments/CommentMark.ts +61 -0
  75. package/src/extensions/Comments/CommentsPlugin.ts +301 -0
  76. package/src/extensions/Comments/userstore/UserStore.ts +72 -0
  77. package/src/extensions/FormattingToolbar/FormattingToolbarPlugin.ts +16 -10
  78. package/src/extensions/LinkToolbar/LinkToolbarPlugin.ts +3 -3
  79. package/src/extensions/ShowSelection/ShowSelectionPlugin.ts +52 -0
  80. package/src/extensions/SideMenu/SideMenuPlugin.ts +22 -9
  81. package/src/extensions/TableHandles/TableHandlesPlugin.ts +409 -57
  82. package/src/extensions/TextAlignment/TextAlignmentExtension.ts +2 -0
  83. package/src/extensions/TextColor/TextColorExtension.ts +1 -1
  84. package/src/extensions/UniqueID/UniqueID.ts +8 -3
  85. package/src/i18n/locales/ar.ts +23 -0
  86. package/src/i18n/locales/de.ts +15 -0
  87. package/src/i18n/locales/en.ts +25 -1
  88. package/src/i18n/locales/es.ts +16 -1
  89. package/src/i18n/locales/fr.ts +23 -0
  90. package/src/i18n/locales/hr.ts +18 -0
  91. package/src/i18n/locales/index.ts +1 -0
  92. package/src/i18n/locales/is.ts +24 -1
  93. package/src/i18n/locales/it.ts +21 -0
  94. package/src/i18n/locales/ja.ts +23 -0
  95. package/src/i18n/locales/ko.ts +23 -0
  96. package/src/i18n/locales/nl.ts +23 -0
  97. package/src/i18n/locales/no.ts +346 -0
  98. package/src/i18n/locales/pl.ts +23 -0
  99. package/src/i18n/locales/pt.ts +23 -0
  100. package/src/i18n/locales/ru.ts +23 -0
  101. package/src/i18n/locales/uk.ts +23 -0
  102. package/src/i18n/locales/vi.ts +23 -0
  103. package/src/i18n/locales/zh.ts +23 -0
  104. package/src/index.ts +6 -4
  105. package/src/schema/blocks/types.ts +32 -2
  106. package/src/util/browser.ts +1 -1
  107. package/src/util/table.ts +107 -0
  108. package/types/src/api/blockManipulation/tables/tables.d.ts +343 -0
  109. package/types/src/api/blockManipulation/tables/tables.test.d.ts +1 -0
  110. package/types/src/api/clipboard/toClipboard/copyExtension.d.ts +1 -1
  111. package/types/src/blocks/TableBlockContent/TableBlockContent.d.ts +1 -2
  112. package/types/src/blocks/defaultBlockTypeGuards.d.ts +3 -0
  113. package/types/src/comments/index.d.ts +9 -0
  114. package/types/src/comments/models/User.d.ts +8 -0
  115. package/types/src/comments/threadstore/DefaultThreadStoreAuth.d.ts +47 -0
  116. package/types/src/comments/threadstore/ThreadStore.d.ts +121 -0
  117. package/types/src/comments/threadstore/ThreadStoreAuth.d.ts +12 -0
  118. package/types/src/comments/threadstore/TipTapThreadStore.d.ts +97 -0
  119. package/types/src/comments/threadstore/yjs/RESTYjsThreadStore.d.ts +83 -0
  120. package/types/src/comments/threadstore/yjs/YjsThreadStore.d.ts +79 -0
  121. package/types/src/comments/threadstore/yjs/YjsThreadStore.test.d.ts +1 -0
  122. package/types/src/comments/threadstore/yjs/YjsThreadStoreBase.d.ts +15 -0
  123. package/types/src/comments/threadstore/yjs/yjsHelpers.d.ts +13 -0
  124. package/types/src/comments/types.d.ts +109 -0
  125. package/types/src/editor/BlockNoteEditor.d.ts +146 -66
  126. package/types/src/editor/BlockNoteExtensions.d.ts +4 -0
  127. package/types/src/extensions/Collaboration/createCollaborationExtensions.d.ts +1 -1
  128. package/types/src/extensions/Comments/CommentMark.d.ts +2 -0
  129. package/types/src/extensions/Comments/CommentsPlugin.d.ts +49 -0
  130. package/types/src/extensions/Comments/userstore/UserStore.d.ts +31 -0
  131. package/types/src/extensions/FormattingToolbar/FormattingToolbarPlugin.d.ts +1 -1
  132. package/types/src/extensions/ShowSelection/ShowSelectionPlugin.d.ts +15 -0
  133. package/types/src/extensions/SideMenu/SideMenuPlugin.d.ts +1 -0
  134. package/types/src/extensions/TableHandles/TableHandlesPlugin.d.ts +66 -1
  135. package/types/src/i18n/locales/de.d.ts +15 -0
  136. package/types/src/i18n/locales/en.d.ts +20 -0
  137. package/types/src/i18n/locales/es.d.ts +15 -0
  138. package/types/src/i18n/locales/hr.d.ts +18 -0
  139. package/types/src/i18n/locales/index.d.ts +1 -0
  140. package/types/src/i18n/locales/it.d.ts +21 -0
  141. package/types/src/i18n/locales/no.d.ts +2 -0
  142. package/types/src/index.d.ts +5 -4
  143. package/types/src/pm-nodes/BlockContainer.d.ts +2 -2
  144. package/types/src/pm-nodes/BlockGroup.d.ts +2 -2
  145. package/types/src/schema/blocks/types.d.ts +23 -2
  146. package/types/src/util/browser.d.ts +1 -1
  147. package/types/src/util/table.d.ts +12 -0
  148. package/dist/blocknote.umd.cjs +0 -11
  149. package/dist/blocknote.umd.cjs.map +0 -1
@@ -24,68 +24,160 @@
24
24
  undefined,
25
25
  undefined,
26
26
  ],
27
+ "headerCols": undefined,
28
+ "headerRows": undefined,
27
29
  "rows": [
28
30
  {
29
31
  "cells": [
30
- [
31
- {
32
- "styles": {},
33
- "text": "Table Cell",
34
- "type": "text",
32
+ {
33
+ "content": [
34
+ {
35
+ "styles": {},
36
+ "text": "Table Cell",
37
+ "type": "text",
38
+ },
39
+ ],
40
+ "props": {
41
+ "backgroundColor": "default",
42
+ "colspan": 1,
43
+ "rowspan": 1,
44
+ "textAlignment": "left",
45
+ "textColor": "default",
35
46
  },
36
- ],
37
- [
38
- {
39
- "styles": {},
40
- "text": "Table Cell",
41
- "type": "text",
47
+ "type": "tableCell",
48
+ },
49
+ {
50
+ "content": [
51
+ {
52
+ "styles": {},
53
+ "text": "Table Cell",
54
+ "type": "text",
55
+ },
56
+ ],
57
+ "props": {
58
+ "backgroundColor": "default",
59
+ "colspan": 1,
60
+ "rowspan": 1,
61
+ "textAlignment": "left",
62
+ "textColor": "default",
42
63
  },
43
- ],
44
- [],
64
+ "type": "tableCell",
65
+ },
66
+ {
67
+ "content": [],
68
+ "props": {
69
+ "backgroundColor": "default",
70
+ "colspan": 1,
71
+ "rowspan": 1,
72
+ "textAlignment": "left",
73
+ "textColor": "default",
74
+ },
75
+ "type": "tableCell",
76
+ },
45
77
  ],
46
78
  },
47
79
  {
48
80
  "cells": [
49
- [
50
- {
51
- "styles": {},
52
- "text": "Table Cell",
53
- "type": "text",
81
+ {
82
+ "content": [
83
+ {
84
+ "styles": {},
85
+ "text": "Table Cell",
86
+ "type": "text",
87
+ },
88
+ ],
89
+ "props": {
90
+ "backgroundColor": "default",
91
+ "colspan": 1,
92
+ "rowspan": 1,
93
+ "textAlignment": "left",
94
+ "textColor": "default",
54
95
  },
55
- ],
56
- [
57
- {
58
- "styles": {},
59
- "text": "Cell 1",
60
- "type": "text",
96
+ "type": "tableCell",
97
+ },
98
+ {
99
+ "content": [
100
+ {
101
+ "styles": {},
102
+ "text": "Cell 1",
103
+ "type": "text",
104
+ },
105
+ ],
106
+ "props": {
107
+ "backgroundColor": "default",
108
+ "colspan": 1,
109
+ "rowspan": 1,
110
+ "textAlignment": "left",
111
+ "textColor": "default",
61
112
  },
62
- ],
63
- [
64
- {
65
- "styles": {},
66
- "text": "Cell 2",
67
- "type": "text",
113
+ "type": "tableCell",
114
+ },
115
+ {
116
+ "content": [
117
+ {
118
+ "styles": {},
119
+ "text": "Cell 2",
120
+ "type": "text",
121
+ },
122
+ ],
123
+ "props": {
124
+ "backgroundColor": "default",
125
+ "colspan": 1,
126
+ "rowspan": 1,
127
+ "textAlignment": "left",
128
+ "textColor": "default",
68
129
  },
69
- ],
130
+ "type": "tableCell",
131
+ },
70
132
  ],
71
133
  },
72
134
  {
73
135
  "cells": [
74
- [],
75
- [
76
- {
77
- "styles": {},
78
- "text": "Cell 3",
79
- "type": "text",
136
+ {
137
+ "content": [],
138
+ "props": {
139
+ "backgroundColor": "default",
140
+ "colspan": 1,
141
+ "rowspan": 1,
142
+ "textAlignment": "left",
143
+ "textColor": "default",
144
+ },
145
+ "type": "tableCell",
146
+ },
147
+ {
148
+ "content": [
149
+ {
150
+ "styles": {},
151
+ "text": "Cell 3",
152
+ "type": "text",
153
+ },
154
+ ],
155
+ "props": {
156
+ "backgroundColor": "default",
157
+ "colspan": 1,
158
+ "rowspan": 1,
159
+ "textAlignment": "left",
160
+ "textColor": "default",
80
161
  },
81
- ],
82
- [
83
- {
84
- "styles": {},
85
- "text": "Cell 4",
86
- "type": "text",
162
+ "type": "tableCell",
163
+ },
164
+ {
165
+ "content": [
166
+ {
167
+ "styles": {},
168
+ "text": "Cell 4",
169
+ "type": "text",
170
+ },
171
+ ],
172
+ "props": {
173
+ "backgroundColor": "default",
174
+ "colspan": 1,
175
+ "rowspan": 1,
176
+ "textAlignment": "left",
177
+ "textColor": "default",
87
178
  },
88
- ],
179
+ "type": "tableCell",
180
+ },
89
181
  ],
90
182
  },
91
183
  ],
@@ -1,4 +1,4 @@
1
- import { PartialBlock } from "../../../blocks/defaultBlocks.js";
1
+ import { Block, PartialBlock } from "../../../blocks/defaultBlocks.js";
2
2
  import type { BlockNoteEditor } from "../../../editor/BlockNoteEditor";
3
3
  import {
4
4
  BlockSchema,
@@ -6,7 +6,7 @@ import {
6
6
  InlineContentSchema,
7
7
  StyleSchema,
8
8
  } from "../../../schema/index.js";
9
- import { getBlockInfo, getNearestBlockPos } from "../../getBlockInfoFromPos.js";
9
+ import { getNearestBlockPos } from "../../getBlockInfoFromPos.js";
10
10
  import { acceptedMIMETypes } from "./acceptedMIMETypes.js";
11
11
 
12
12
  function checkFileExtensionsMatch(
@@ -41,6 +41,33 @@ function checkMIMETypesMatch(mimeType1: string, mimeType2: string) {
41
41
  return types1[0] === types2[0] && types1[1] === types2[1];
42
42
  }
43
43
 
44
+ function insertOrUpdateBlock<
45
+ BSchema extends BlockSchema,
46
+ I extends InlineContentSchema,
47
+ S extends StyleSchema
48
+ >(
49
+ editor: BlockNoteEditor<BSchema, I, S>,
50
+ referenceBlock: Block<BSchema, I, S>,
51
+ newBlock: PartialBlock<BSchema, I, S>
52
+ ) {
53
+ let insertedBlockId: string | undefined;
54
+
55
+ if (
56
+ Array.isArray(referenceBlock.content) &&
57
+ referenceBlock.content.length === 0
58
+ ) {
59
+ insertedBlockId = editor.updateBlock(referenceBlock, newBlock).id;
60
+ } else {
61
+ insertedBlockId = editor.insertBlocks(
62
+ [newBlock],
63
+ referenceBlock,
64
+ "after"
65
+ )[0].id;
66
+ }
67
+
68
+ return insertedBlockId;
69
+ }
70
+
44
71
  export async function handleFileInsertion<
45
72
  BSchema extends BlockSchema,
46
73
  I extends InlineContentSchema,
@@ -120,11 +147,8 @@ export async function handleFileInsertion<
120
147
  let insertedBlockId: string | undefined = undefined;
121
148
 
122
149
  if (event.type === "paste") {
123
- insertedBlockId = editor.insertBlocks(
124
- [fileBlock],
125
- editor.getTextCursorPosition().block,
126
- "after"
127
- )[0].id;
150
+ const currentBlock = editor.getTextCursorPosition().block;
151
+ insertedBlockId = insertOrUpdateBlock(editor, currentBlock, fileBlock);
128
152
  } else if (event.type === "drop") {
129
153
  const coords = {
130
154
  left: (event as DragEvent).clientX,
@@ -141,13 +165,11 @@ export async function handleFileInsertion<
141
165
  pos.pos
142
166
  );
143
167
 
144
- const blockInfo = getBlockInfo(posInfo);
145
-
146
- insertedBlockId = editor.insertBlocks(
147
- [fileBlock],
148
- blockInfo.bnBlock.node.attrs.id,
149
- "after"
150
- )[0].id;
168
+ insertedBlockId = insertOrUpdateBlock(
169
+ editor,
170
+ editor.getBlock(posInfo.node.attrs.id)!,
171
+ fileBlock
172
+ );
151
173
  } else {
152
174
  return;
153
175
  }
@@ -2,9 +2,8 @@ import { Extension } from "@tiptap/core";
2
2
  import { Fragment, Node } from "prosemirror-model";
3
3
  import { NodeSelection, Plugin } from "prosemirror-state";
4
4
  import { CellSelection } from "prosemirror-tables";
5
- import * as pmView from "prosemirror-view";
5
+ import type { EditorView } from "prosemirror-view";
6
6
 
7
- import { EditorView } from "prosemirror-view";
8
7
  import type { BlockNoteEditor } from "../../../editor/BlockNoteEditor.js";
9
8
  import {
10
9
  BlockSchema,
@@ -24,7 +23,7 @@ function fragmentToExternalHTML<
24
23
  I extends InlineContentSchema,
25
24
  S extends StyleSchema
26
25
  >(
27
- view: pmView.EditorView,
26
+ view: EditorView,
28
27
  selectedFragment: Fragment,
29
28
  editor: BlockNoteEditor<BSchema, I, S>
30
29
  ) {
@@ -0,0 +1 @@
1
+ <table><tr><th colspan="1" rowspan="1"><p>Table Cell</p></th><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr><tr><th colspan="1" rowspan="1"><p>Table Cell</p></th><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr><tr><th colspan="1" rowspan="1"><p>Table Cell</p></th><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr></table>
@@ -0,0 +1 @@
1
+ <div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="table"><table class="bn-inline-content"><tr><th colspan="1" rowspan="1"><p>Table Cell</p></th><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr><tr><th colspan="1" rowspan="1"><p>Table Cell</p></th><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr><tr><th colspan="1" rowspan="1"><p>Table Cell</p></th><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr></table></div></div></div></div>
@@ -0,0 +1 @@
1
+ <table><tr><th colspan="1" rowspan="1"><p>Table Cell</p></th><th colspan="1" rowspan="1"><p>Table Cell</p></th><th colspan="1" rowspan="1"><p>Table Cell</p></th></tr><tr><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr></table>
@@ -0,0 +1 @@
1
+ <div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="table"><table class="bn-inline-content"><tr><th colspan="1" rowspan="1"><p>Table Cell</p></th><th colspan="1" rowspan="1"><p>Table Cell</p></th><th colspan="1" rowspan="1"><p>Table Cell</p></th></tr><tr><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td></tr></table></div></div></div></div>
@@ -0,0 +1 @@
1
+ <table><tr><th colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></th><th colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></th><th colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></th></tr><tr><td colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></td></tr></table>
@@ -0,0 +1 @@
1
+ <div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="table"><table class="bn-inline-content"><tr><th colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></th><th colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></th><th colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></th></tr><tr><td colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth=""><p>Table Cell</p></td></tr></table></div></div></div></div>
@@ -0,0 +1 @@
1
+ <table><tr><td data-text-color="blue" data-background-color="red" colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td data-background-color="blue" colspan="1" rowspan="1"><p>Table Cell</p></td><td data-text-color="red" data-background-color="yellow" colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr></table>
@@ -0,0 +1 @@
1
+ <div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="table"><table class="bn-inline-content"><tr><td data-text-color="blue" data-background-color="red" colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td data-background-color="blue" colspan="1" rowspan="1"><p>Table Cell</p></td><td data-text-color="red" data-background-color="yellow" colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="100"><p>Table Cell</p></td><td colspan="1" rowspan="1"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr></table></div></div></div></div>
@@ -0,0 +1 @@
1
+ <table><tr><td data-text-color="blue" data-background-color="red" colspan="2" rowspan="1" colwidth="100,200"><p>Table Cell</p></td><td data-text-color="red" data-background-color="yellow" colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="2" colwidth="100"><p>Table Cell</p></td><td colspan="2" rowspan="1" colwidth="200,300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="200"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr></table>
@@ -0,0 +1 @@
1
+ <div class="bn-block-group" data-node-type="blockGroup"><div class="bn-block-outer" data-node-type="blockOuter" data-id="1"><div class="bn-block" data-node-type="blockContainer" data-id="1"><div class="bn-block-content" data-content-type="table"><table class="bn-inline-content"><tr><td data-text-color="blue" data-background-color="red" colspan="2" rowspan="1" colwidth="100,200"><p>Table Cell</p></td><td data-text-color="red" data-background-color="yellow" colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="2" colwidth="100"><p>Table Cell</p></td><td colspan="2" rowspan="1" colwidth="200,300"><p>Table Cell</p></td></tr><tr><td colspan="1" rowspan="1" colwidth="200"><p>Table Cell</p></td><td colspan="1" rowspan="1" colwidth="300"><p>Table Cell</p></td></tr></table></div></div></div></div>
@@ -0,0 +1,4 @@
1
+ | Table Cell | Table Cell | Table Cell |
2
+ | ---------- | ---------- | ---------- |
3
+ | Table Cell | Table Cell | Table Cell |
4
+ | Table Cell | Table Cell | Table Cell |
@@ -0,0 +1,4 @@
1
+ | Table Cell | Table Cell | Table Cell |
2
+ | ---------- | ---------- | ---------- |
3
+ | Table Cell | Table Cell | Table Cell |
4
+ | Table Cell | Table Cell | Table Cell |
@@ -0,0 +1,5 @@
1
+ | | | |
2
+ | ---------- | ---------- | ---------- |
3
+ | Table Cell | Table Cell | Table Cell |
4
+ | Table Cell | Table Cell | Table Cell |
5
+ | Table Cell | Table Cell | Table Cell |
@@ -0,0 +1,5 @@
1
+ | | | |
2
+ | ---------- | ---------- | ---------- |
3
+ | Table Cell | | Table Cell |
4
+ | Table Cell | Table Cell | |
5
+ | | Table Cell | Table Cell |