@blocknote/core 0.9.5 → 0.10.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 (367) hide show
  1. package/dist/blocknote.js +3699 -2600
  2. package/dist/blocknote.js.map +1 -1
  3. package/dist/blocknote.umd.cjs +7 -7
  4. package/dist/blocknote.umd.cjs.map +1 -1
  5. package/dist/style.css +1 -1
  6. package/dist/webpack-stats.json +1 -0
  7. package/package.json +8 -4
  8. package/src/api/README.md +8 -0
  9. package/src/api/blockManipulation/blockManipulation.test.ts +72 -10
  10. package/src/api/blockManipulation/blockManipulation.ts +38 -18
  11. package/src/api/exporters/copyExtension.ts +68 -0
  12. package/src/api/exporters/html/__snapshots__/complex/misc/external.html +1 -0
  13. package/src/api/exporters/html/__snapshots__/complex/misc/internal.html +1 -0
  14. package/src/api/exporters/html/__snapshots__/customParagraph/basic/external.html +1 -0
  15. package/src/api/exporters/html/__snapshots__/customParagraph/basic/internal.html +1 -0
  16. package/src/api/exporters/html/__snapshots__/customParagraph/nested/external.html +1 -0
  17. package/src/api/exporters/html/__snapshots__/customParagraph/nested/internal.html +1 -0
  18. package/src/api/exporters/html/__snapshots__/customParagraph/styled/external.html +1 -0
  19. package/src/api/exporters/html/__snapshots__/customParagraph/styled/internal.html +1 -0
  20. package/src/api/exporters/html/__snapshots__/fontSize/basic/external.html +1 -0
  21. package/src/api/exporters/html/__snapshots__/fontSize/basic/internal.html +1 -0
  22. package/src/api/exporters/html/__snapshots__/hardbreak/basic/external.html +1 -0
  23. package/src/api/exporters/html/__snapshots__/hardbreak/basic/internal.html +1 -0
  24. package/src/api/exporters/html/__snapshots__/hardbreak/between-links/external.html +1 -0
  25. package/src/api/exporters/html/__snapshots__/hardbreak/between-links/internal.html +1 -0
  26. package/src/api/exporters/html/__snapshots__/hardbreak/end/external.html +1 -0
  27. package/src/api/exporters/html/__snapshots__/hardbreak/end/internal.html +1 -0
  28. package/src/api/exporters/html/__snapshots__/hardbreak/link/external.html +1 -0
  29. package/src/api/exporters/html/__snapshots__/hardbreak/link/internal.html +1 -0
  30. package/src/api/exporters/html/__snapshots__/hardbreak/multiple/external.html +1 -0
  31. package/src/api/exporters/html/__snapshots__/hardbreak/multiple/internal.html +1 -0
  32. package/src/api/exporters/html/__snapshots__/hardbreak/only/external.html +1 -0
  33. package/src/api/exporters/html/__snapshots__/hardbreak/only/internal.html +1 -0
  34. package/src/api/exporters/html/__snapshots__/hardbreak/start/external.html +1 -0
  35. package/src/api/exporters/html/__snapshots__/hardbreak/start/internal.html +1 -0
  36. package/src/api/exporters/html/__snapshots__/hardbreak/styles/external.html +1 -0
  37. package/src/api/exporters/html/__snapshots__/hardbreak/styles/internal.html +1 -0
  38. package/src/api/exporters/html/__snapshots__/image/basic/external.html +1 -0
  39. package/src/api/exporters/html/__snapshots__/image/basic/internal.html +1 -0
  40. package/src/api/exporters/html/__snapshots__/image/button/external.html +1 -0
  41. package/src/api/exporters/html/__snapshots__/image/button/internal.html +1 -0
  42. package/src/api/exporters/html/__snapshots__/image/nested/external.html +1 -0
  43. package/src/api/exporters/html/__snapshots__/image/nested/internal.html +1 -0
  44. package/src/api/exporters/html/__snapshots__/link/adjacent/external.html +1 -0
  45. package/src/api/exporters/html/__snapshots__/link/adjacent/internal.html +1 -0
  46. package/src/api/exporters/html/__snapshots__/link/basic/external.html +1 -0
  47. package/src/api/exporters/html/__snapshots__/link/basic/internal.html +1 -0
  48. package/src/api/exporters/html/__snapshots__/link/styled/external.html +1 -0
  49. package/src/api/exporters/html/__snapshots__/link/styled/internal.html +1 -0
  50. package/src/api/exporters/html/__snapshots__/mention/basic/external.html +1 -0
  51. package/src/api/exporters/html/__snapshots__/mention/basic/internal.html +1 -0
  52. package/src/api/exporters/html/__snapshots__/paragraph/basic/external.html +1 -0
  53. package/src/api/exporters/html/__snapshots__/paragraph/basic/internal.html +1 -0
  54. package/src/api/exporters/html/__snapshots__/paragraph/empty/external.html +1 -0
  55. package/src/api/exporters/html/__snapshots__/paragraph/empty/internal.html +1 -0
  56. package/src/api/exporters/html/__snapshots__/paragraph/nested/external.html +1 -0
  57. package/src/api/exporters/html/__snapshots__/paragraph/nested/internal.html +1 -0
  58. package/src/api/exporters/html/__snapshots__/paragraph/styled/external.html +1 -0
  59. package/src/api/exporters/html/__snapshots__/paragraph/styled/internal.html +1 -0
  60. package/src/api/exporters/html/__snapshots__/paste/parse-basic-block-types.json +140 -0
  61. package/src/api/exporters/html/__snapshots__/paste/parse-deep-nested-content.json +240 -0
  62. package/src/api/exporters/html/__snapshots__/paste/parse-div-with-inline-content.json +91 -0
  63. package/src/api/exporters/html/__snapshots__/paste/parse-divs.json +19 -0
  64. package/src/api/exporters/html/__snapshots__/paste/parse-fake-image-caption.json +31 -0
  65. package/src/api/exporters/html/__snapshots__/paste/parse-mixed-nested-lists.json +70 -0
  66. package/src/api/exporters/html/__snapshots__/paste/parse-nested-lists-with-paragraphs.json +70 -0
  67. package/src/api/exporters/html/__snapshots__/paste/parse-nested-lists.json +70 -0
  68. package/src/api/exporters/html/__snapshots__/simpleCustomParagraph/basic/external.html +1 -0
  69. package/src/api/exporters/html/__snapshots__/simpleCustomParagraph/basic/internal.html +1 -0
  70. package/src/api/exporters/html/__snapshots__/simpleCustomParagraph/nested/external.html +1 -0
  71. package/src/api/exporters/html/__snapshots__/simpleCustomParagraph/nested/internal.html +1 -0
  72. package/src/api/exporters/html/__snapshots__/simpleCustomParagraph/styled/external.html +1 -0
  73. package/src/api/exporters/html/__snapshots__/simpleCustomParagraph/styled/internal.html +1 -0
  74. package/src/api/exporters/html/__snapshots__/simpleImage/basic/external.html +1 -0
  75. package/src/api/exporters/html/__snapshots__/simpleImage/basic/internal.html +1 -0
  76. package/src/api/exporters/html/__snapshots__/simpleImage/button/external.html +1 -0
  77. package/src/api/exporters/html/__snapshots__/simpleImage/button/internal.html +1 -0
  78. package/src/api/exporters/html/__snapshots__/simpleImage/nested/external.html +1 -0
  79. package/src/api/exporters/html/__snapshots__/simpleImage/nested/internal.html +1 -0
  80. package/src/api/exporters/html/__snapshots__/small/basic/external.html +1 -0
  81. package/src/api/exporters/html/__snapshots__/small/basic/internal.html +1 -0
  82. package/src/api/exporters/html/__snapshots__/tag/basic/external.html +1 -0
  83. package/src/api/exporters/html/__snapshots__/tag/basic/internal.html +1 -0
  84. package/src/api/exporters/html/externalHTMLExporter.ts +98 -0
  85. package/src/api/exporters/html/htmlConversion.test.ts +100 -0
  86. package/src/api/exporters/html/internalHTMLSerializer.ts +80 -0
  87. package/src/api/exporters/html/util/sharedHTMLConversion.ts +128 -0
  88. package/src/api/{formatConversions → exporters/html/util}/simplifyBlocksRehypePlugin.ts +13 -0
  89. package/src/api/exporters/markdown/__snapshots__/complex/misc/markdown.md +5 -0
  90. package/src/api/exporters/markdown/__snapshots__/customParagraph/basic/markdown.md +1 -0
  91. package/src/api/exporters/markdown/__snapshots__/customParagraph/nested/markdown.md +5 -0
  92. package/src/api/exporters/markdown/__snapshots__/customParagraph/styled/markdown.md +1 -0
  93. package/src/api/exporters/markdown/__snapshots__/fontSize/basic/markdown.md +1 -0
  94. package/src/api/exporters/markdown/__snapshots__/hardbreak/basic/markdown.md +2 -0
  95. package/src/api/exporters/markdown/__snapshots__/hardbreak/between-links/markdown.md +2 -0
  96. package/src/api/exporters/markdown/__snapshots__/hardbreak/end/markdown.md +1 -0
  97. package/src/api/exporters/markdown/__snapshots__/hardbreak/link/markdown.md +2 -0
  98. package/src/api/exporters/markdown/__snapshots__/hardbreak/multiple/markdown.md +3 -0
  99. package/src/api/exporters/markdown/__snapshots__/hardbreak/start/markdown.md +1 -0
  100. package/src/api/exporters/markdown/__snapshots__/hardbreak/styles/markdown.md +2 -0
  101. package/src/api/exporters/markdown/__snapshots__/image/basic/markdown.md +3 -0
  102. package/src/api/exporters/markdown/__snapshots__/image/button/markdown.md +1 -0
  103. package/src/api/exporters/markdown/__snapshots__/image/nested/markdown.md +7 -0
  104. package/src/api/exporters/markdown/__snapshots__/link/adjacent/markdown.md +1 -0
  105. package/src/api/exporters/markdown/__snapshots__/link/basic/markdown.md +1 -0
  106. package/src/api/exporters/markdown/__snapshots__/link/styled/markdown.md +1 -0
  107. package/src/api/exporters/markdown/__snapshots__/mention/basic/markdown.md +1 -0
  108. package/src/api/exporters/markdown/__snapshots__/paragraph/basic/markdown.md +1 -0
  109. package/src/api/exporters/markdown/__snapshots__/paragraph/empty/markdown.md +0 -0
  110. package/src/api/exporters/markdown/__snapshots__/paragraph/nested/markdown.md +5 -0
  111. package/src/api/exporters/markdown/__snapshots__/paragraph/styled/markdown.md +1 -0
  112. package/src/api/exporters/markdown/__snapshots__/simpleCustomParagraph/basic/markdown.md +1 -0
  113. package/src/api/exporters/markdown/__snapshots__/simpleCustomParagraph/nested/markdown.md +5 -0
  114. package/src/api/exporters/markdown/__snapshots__/simpleCustomParagraph/styled/markdown.md +1 -0
  115. package/src/api/exporters/markdown/__snapshots__/simpleImage/basic/markdown.md +1 -0
  116. package/src/api/exporters/markdown/__snapshots__/simpleImage/button/markdown.md +1 -0
  117. package/src/api/exporters/markdown/__snapshots__/simpleImage/nested/markdown.md +3 -0
  118. package/src/api/exporters/markdown/__snapshots__/small/basic/markdown.md +1 -0
  119. package/src/api/exporters/markdown/__snapshots__/tag/basic/markdown.md +1 -0
  120. package/src/api/exporters/markdown/markdownExporter.test.ts +85 -0
  121. package/src/api/exporters/markdown/markdownExporter.ts +42 -0
  122. package/src/api/nodeConversions/__snapshots__/nodeConversions.test.ts.snap +486 -125
  123. package/src/api/nodeConversions/nodeConversions.test.ts +67 -498
  124. package/src/api/nodeConversions/nodeConversions.ts +311 -98
  125. package/src/api/parsers/html/__snapshots__/paste/list-test.json +105 -0
  126. package/src/api/parsers/html/__snapshots__/paste/parse-basic-block-types.json +140 -0
  127. package/src/api/parsers/html/__snapshots__/paste/parse-deep-nested-content.json +240 -0
  128. package/src/api/parsers/html/__snapshots__/paste/parse-div-with-inline-content.json +91 -0
  129. package/src/api/parsers/html/__snapshots__/paste/parse-divs.json +121 -0
  130. package/src/api/parsers/html/__snapshots__/paste/parse-fake-image-caption.json +31 -0
  131. package/src/api/parsers/html/__snapshots__/paste/parse-google-docs-html.json +476 -0
  132. package/src/api/parsers/html/__snapshots__/paste/parse-mixed-nested-lists.json +140 -0
  133. package/src/api/parsers/html/__snapshots__/paste/parse-nested-lists-with-paragraphs.json +140 -0
  134. package/src/api/parsers/html/__snapshots__/paste/parse-nested-lists.json +157 -0
  135. package/src/api/parsers/html/__snapshots__/paste/parse-notion-html.json +470 -0
  136. package/src/api/parsers/html/__snapshots__/paste/parse-two-divs.json +36 -0
  137. package/src/api/parsers/html/parseHTML.test.ts +440 -0
  138. package/src/api/parsers/html/parseHTML.ts +42 -0
  139. package/src/api/parsers/html/util/__snapshots__/nestedLists.test.ts.snap +129 -0
  140. package/src/api/parsers/html/util/nestedLists.test.ts +176 -0
  141. package/src/api/parsers/html/util/nestedLists.ts +113 -0
  142. package/src/api/parsers/markdown/__snapshots__/complex.json +353 -0
  143. package/src/api/parsers/markdown/__snapshots__/issue-226-1.json +71 -0
  144. package/src/api/parsers/markdown/__snapshots__/issue-226-2.json +144 -0
  145. package/src/api/parsers/markdown/__snapshots__/nested.json +72 -0
  146. package/src/api/parsers/markdown/__snapshots__/non-nested.json +71 -0
  147. package/src/api/parsers/markdown/__snapshots__/styled.json +58 -0
  148. package/src/api/parsers/markdown/parseMarkdown.test.ts +114 -0
  149. package/src/api/parsers/markdown/parseMarkdown.ts +84 -0
  150. package/src/api/parsers/pasteExtension.ts +59 -0
  151. package/src/api/testUtil/cases/customBlocks.ts +282 -0
  152. package/src/api/testUtil/cases/customInlineContent.ts +114 -0
  153. package/src/api/testUtil/cases/customStyles.ts +100 -0
  154. package/src/api/testUtil/cases/defaultSchema.ts +399 -0
  155. package/src/api/testUtil/index.ts +17 -0
  156. package/src/api/testUtil/partialBlockTestUtil.ts +127 -0
  157. package/src/blocks/HeadingBlockContent/HeadingBlockContent.ts +136 -0
  158. package/src/{extensions/Blocks/nodes/BlockContent → blocks}/ImageBlockContent/ImageBlockContent.ts +117 -31
  159. package/src/{extensions/Blocks/nodes/BlockContent → blocks}/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.ts +34 -47
  160. package/src/{extensions/Blocks/nodes/BlockContent → blocks}/ListItemBlockContent/ListItemKeyboardShortcuts.ts +1 -1
  161. package/src/{extensions/Blocks/nodes/BlockContent → blocks}/ListItemBlockContent/NumberedListItemBlockContent/NumberedListIndexingPlugin.ts +1 -1
  162. package/src/{extensions/Blocks/nodes/BlockContent → blocks}/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.ts +34 -56
  163. package/src/blocks/ParagraphBlockContent/ParagraphBlockContent.ts +43 -0
  164. package/src/blocks/README.md +3 -0
  165. package/src/blocks/TableBlockContent/TableBlockContent.ts +74 -0
  166. package/src/blocks/TableBlockContent/TableExtension.ts +63 -0
  167. package/src/blocks/defaultBlockHelpers.ts +95 -0
  168. package/src/blocks/defaultBlocks.ts +60 -0
  169. package/src/blocks/defaultProps.ts +24 -0
  170. package/src/{extensions/Blocks/nodes/Block.module.css → editor/Block.css} +70 -66
  171. package/src/{BlockNoteEditor.test.ts → editor/BlockNoteEditor.test.ts} +2 -2
  172. package/src/{BlockNoteEditor.ts → editor/BlockNoteEditor.ts} +382 -159
  173. package/src/{BlockNoteExtensions.ts → editor/BlockNoteExtensions.ts} +59 -40
  174. package/src/editor/README.md +3 -0
  175. package/src/editor/cursorPositionTypes.ts +16 -0
  176. package/src/{editor.module.css → editor/editor.css} +42 -15
  177. package/src/editor/selectionTypes.ts +14 -0
  178. package/src/editor/transformPasted.ts +58 -0
  179. package/src/extensions/BackgroundColor/BackgroundColorExtension.ts +1 -36
  180. package/src/extensions/BackgroundColor/BackgroundColorMark.ts +12 -27
  181. package/src/extensions/FormattingToolbar/FormattingToolbarPlugin.ts +16 -24
  182. package/src/extensions/HyperlinkToolbar/HyperlinkToolbarPlugin.ts +12 -10
  183. package/src/extensions/ImageToolbar/ImageToolbarPlugin.ts +35 -73
  184. package/src/extensions/Placeholder/PlaceholderExtension.ts +4 -4
  185. package/src/extensions/README.md +3 -0
  186. package/src/extensions/SideMenu/SideMenuPlugin.ts +77 -37
  187. package/src/extensions/SlashMenu/BaseSlashMenuItem.ts +7 -6
  188. package/src/extensions/SlashMenu/SlashMenuPlugin.ts +9 -7
  189. package/src/extensions/SlashMenu/defaultSlashMenuItems.ts +98 -35
  190. package/src/extensions/TableHandles/TableHandlesPlugin.ts +617 -0
  191. package/src/extensions/TextAlignment/TextAlignmentExtension.ts +3 -51
  192. package/src/extensions/TextColor/TextColorExtension.ts +1 -29
  193. package/src/extensions/TextColor/TextColorMark.ts +7 -27
  194. package/src/extensions/UniqueID/UniqueID.ts +28 -2
  195. package/src/extensions-shared/README.md +3 -0
  196. package/src/{shared/plugins → extensions-shared}/suggestion/SuggestionPlugin.ts +19 -13
  197. package/src/index.ts +21 -15
  198. package/src/{extensions/Blocks/nodes → pm-nodes}/BlockContainer.ts +161 -96
  199. package/src/pm-nodes/BlockGroup.ts +54 -0
  200. package/src/pm-nodes/Doc.ts +7 -0
  201. package/src/pm-nodes/README.md +42 -0
  202. package/src/pm-nodes/index.ts +3 -0
  203. package/src/schema/README.md +3 -0
  204. package/src/schema/blocks/createSpec.ts +220 -0
  205. package/src/schema/blocks/internal.ts +253 -0
  206. package/src/schema/blocks/types.ts +252 -0
  207. package/src/schema/index.ts +10 -0
  208. package/src/schema/inlineContent/createSpec.ts +119 -0
  209. package/src/schema/inlineContent/internal.ts +105 -0
  210. package/src/schema/inlineContent/types.ts +144 -0
  211. package/src/schema/propTypes.ts +32 -0
  212. package/src/schema/styles/createSpec.ts +85 -0
  213. package/src/schema/styles/internal.ts +96 -0
  214. package/src/schema/styles/types.ts +42 -0
  215. package/src/util/README.md +3 -0
  216. package/src/{shared/utils.ts → util/browser.ts} +4 -8
  217. package/src/util/string.ts +3 -0
  218. package/src/util/typescript.ts +5 -0
  219. package/types/src/BlockNoteEditor.d.ts +51 -37
  220. package/types/src/BlockNoteExtensions.d.ts +8 -3
  221. package/types/src/api/blockManipulation/blockManipulation.d.ts +5 -4
  222. package/types/src/api/exporters/copyExtension.d.ts +6 -0
  223. package/types/src/api/exporters/html/externalHTMLExporter.d.ts +8 -0
  224. package/types/src/api/exporters/html/internalHTMLSerializer.d.ts +8 -0
  225. package/types/src/api/exporters/html/util/sharedHTMLConversion.d.ts +7 -0
  226. package/types/src/api/exporters/markdown/markdownExporter.d.ts +5 -0
  227. package/types/src/api/exporters/markdown/markdownExporter.test.d.ts +1 -0
  228. package/types/src/api/getBlockInfoFromPos.d.ts +27 -0
  229. package/types/src/api/nodeConversions/nodeConversions.d.ts +14 -6
  230. package/types/src/api/nodeConversions/testUtil.d.ts +7 -2
  231. package/types/src/api/nodeUtil.d.ts +8 -0
  232. package/types/src/api/parsers/html/parseHTML.d.ts +3 -0
  233. package/types/src/api/parsers/html/parseHTML.test.d.ts +1 -0
  234. package/types/src/api/parsers/html/util/nestedLists.d.ts +1 -0
  235. package/types/src/api/parsers/html/util/nestedLists.test.d.ts +1 -0
  236. package/types/src/api/parsers/markdown/parseMarkdown.d.ts +3 -0
  237. package/types/src/api/parsers/markdown/parseMarkdown.test.d.ts +1 -0
  238. package/types/src/api/parsers/pasteExtension.d.ts +6 -0
  239. package/types/src/api/testCases/cases/customBlocks.d.ts +345 -0
  240. package/types/src/api/testCases/cases/customInlineContent.d.ts +29 -0
  241. package/types/src/api/testCases/cases/customStyles.d.ts +64 -0
  242. package/types/src/api/testCases/cases/defaultSchema.d.ts +3 -0
  243. package/types/src/api/testCases/index.d.ts +12 -0
  244. package/types/src/api/testUtil/cases/customBlocks.d.ts +345 -0
  245. package/types/src/api/testUtil/cases/customInlineContent.d.ts +29 -0
  246. package/types/src/api/testUtil/cases/customStyles.d.ts +64 -0
  247. package/types/src/api/testUtil/cases/defaultSchema.d.ts +3 -0
  248. package/types/src/api/testUtil/index.d.ts +12 -0
  249. package/types/src/api/testUtil/partialBlockTestUtil.d.ts +7 -0
  250. package/types/src/blocks/HeadingBlockContent/HeadingBlockContent.d.ts +58 -0
  251. package/types/src/blocks/ImageBlockContent/ImageBlockContent.d.ts +93 -0
  252. package/types/src/blocks/ImageBlockContent/uploadToTmpFilesDotOrg_DEV_ONLY.d.ts +1 -0
  253. package/types/src/blocks/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.d.ts +46 -0
  254. package/types/src/blocks/ListItemBlockContent/ListItemKeyboardShortcuts.d.ts +2 -0
  255. package/types/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListIndexingPlugin.d.ts +2 -0
  256. package/types/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.d.ts +46 -0
  257. package/types/src/blocks/ParagraphBlockContent/ParagraphBlockContent.d.ts +52 -0
  258. package/types/src/blocks/TableBlockContent/TableBlockContent.d.ts +53 -0
  259. package/types/src/blocks/TableBlockContent/TableExtension.d.ts +2 -0
  260. package/types/src/blocks/defaultBlockHelpers.d.ts +10 -0
  261. package/types/src/blocks/defaultBlocks.d.ts +577 -0
  262. package/types/src/blocks/defaultProps.d.ts +15 -0
  263. package/types/src/editor/BlockNoteEditor.d.ts +299 -0
  264. package/types/src/editor/BlockNoteEditor.test.d.ts +1 -0
  265. package/types/src/editor/BlockNoteExtensions.d.ts +24 -0
  266. package/types/src/editor/cursorPositionTypes.d.ts +6 -0
  267. package/types/src/editor/selectionTypes.d.ts +4 -0
  268. package/types/src/editor/transformPasted.d.ts +12 -0
  269. package/types/src/extensions/BackgroundColor/BackgroundColorExtension.d.ts +0 -7
  270. package/types/src/extensions/BackgroundColor/BackgroundColorMark.d.ts +7 -9
  271. package/types/src/extensions/Blocks/api/blocks/createSpec.d.ts +35 -0
  272. package/types/src/extensions/Blocks/api/blocks/internal.d.ts +45 -0
  273. package/types/src/extensions/Blocks/api/blocks/types.d.ts +114 -0
  274. package/types/src/extensions/Blocks/api/cursorPositionTypes.d.ts +7 -5
  275. package/types/src/extensions/Blocks/api/defaultBlocks.d.ts +573 -113
  276. package/types/src/extensions/Blocks/api/defaultProps.d.ts +2 -1
  277. package/types/src/extensions/Blocks/api/inlineContent/createSpec.d.ts +21 -0
  278. package/types/src/extensions/Blocks/api/inlineContent/internal.d.ts +25 -0
  279. package/types/src/extensions/Blocks/api/inlineContent/types.d.ts +62 -0
  280. package/types/src/extensions/Blocks/api/selectionTypes.d.ts +5 -3
  281. package/types/src/extensions/Blocks/api/styles/createSpec.d.ts +13 -0
  282. package/types/src/extensions/Blocks/api/styles/internal.d.ts +22 -0
  283. package/types/src/extensions/Blocks/api/styles/types.d.ts +21 -0
  284. package/types/src/extensions/Blocks/nodes/BlockContainer.d.ts +8 -4
  285. package/types/src/extensions/Blocks/nodes/BlockContent/HeadingBlockContent/HeadingBlockContent.d.ts +38 -23
  286. package/types/src/extensions/Blocks/nodes/BlockContent/ImageBlockContent/ImageBlockContent.d.ts +75 -17
  287. package/types/src/extensions/Blocks/nodes/BlockContent/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.d.ts +30 -19
  288. package/types/src/extensions/Blocks/nodes/BlockContent/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.d.ts +30 -19
  289. package/types/src/extensions/Blocks/nodes/BlockContent/ParagraphBlockContent/ParagraphBlockContent.d.ts +36 -28
  290. package/types/src/extensions/Blocks/nodes/BlockContent/TableBlockContent/TableBlockContent.d.ts +53 -0
  291. package/types/src/extensions/Blocks/nodes/BlockContent/TableBlockContent/TableExtension.d.ts +2 -0
  292. package/types/src/extensions/Blocks/nodes/BlockContent/defaultBlockHelpers.d.ts +12 -0
  293. package/types/src/extensions/Blocks/nodes/BlockGroup.d.ts +1 -1
  294. package/types/src/extensions/FormattingToolbar/FormattingToolbarPlugin.d.ts +8 -6
  295. package/types/src/extensions/HyperlinkToolbar/HyperlinkToolbarPlugin.d.ts +6 -6
  296. package/types/src/extensions/ImageToolbar/ImageToolbarPlugin.d.ts +11 -16
  297. package/types/src/extensions/NonEditableBlocks/NonEditableBlockPlugin.d.ts +2 -0
  298. package/types/src/extensions/PreviousBlockType/PreviousBlockTypePlugin.d.ts +14 -0
  299. package/types/src/extensions/SideMenu/SideMenuPlugin.d.ts +19 -11
  300. package/types/src/extensions/SlashMenu/BaseSlashMenuItem.d.ts +5 -6
  301. package/types/src/extensions/SlashMenu/SlashMenuPlugin.d.ts +6 -6
  302. package/types/src/extensions/SlashMenu/defaultSlashMenuItems.d.ts +2 -1
  303. package/types/src/extensions/TableHandles/TableHandlesPlugin.d.ts +74 -0
  304. package/types/src/extensions/TextAlignment/TextAlignmentExtension.d.ts +0 -7
  305. package/types/src/extensions/TextColor/TextColorExtension.d.ts +0 -7
  306. package/types/src/extensions/TextColor/TextColorMark.d.ts +7 -9
  307. package/types/src/extensions/UniqueID/UniqueID.d.ts +1 -1
  308. package/types/src/extensions-shared/BaseUiElementTypes.d.ts +7 -0
  309. package/types/src/extensions-shared/suggestion/SuggestionItem.d.ts +3 -0
  310. package/types/src/extensions-shared/suggestion/SuggestionPlugin.d.ts +36 -0
  311. package/types/src/index.d.ts +20 -15
  312. package/types/src/pm-nodes/BlockContainer.d.ts +28 -0
  313. package/types/src/pm-nodes/BlockGroup.d.ts +10 -0
  314. package/types/src/pm-nodes/Doc.d.ts +2 -0
  315. package/types/src/pm-nodes/index.d.ts +3 -0
  316. package/types/src/schema/blocks/createSpec.d.ts +35 -0
  317. package/types/src/schema/blocks/internal.d.ts +45 -0
  318. package/types/src/schema/blocks/types.d.ts +107 -0
  319. package/types/src/schema/index.d.ts +10 -0
  320. package/types/src/schema/inlineContent/createSpec.d.ts +21 -0
  321. package/types/src/schema/inlineContent/internal.d.ts +28 -0
  322. package/types/src/schema/inlineContent/types.d.ts +62 -0
  323. package/types/src/schema/propTypes.d.ts +8 -0
  324. package/types/src/schema/styles/createSpec.d.ts +13 -0
  325. package/types/src/schema/styles/internal.d.ts +22 -0
  326. package/types/src/schema/styles/types.d.ts +21 -0
  327. package/types/src/shared/plugins/suggestion/SuggestionPlugin.d.ts +4 -2
  328. package/types/src/util/EventEmitter.d.ts +11 -0
  329. package/types/src/util/browser.d.ts +3 -0
  330. package/types/src/util/string.d.ts +1 -0
  331. package/types/src/util/typescript.d.ts +3 -0
  332. package/src/api/formatConversions/__snapshots__/formatConversions.test.ts.snap +0 -346
  333. package/src/api/formatConversions/formatConversions.test.ts +0 -753
  334. package/src/api/formatConversions/formatConversions.ts +0 -133
  335. package/src/api/nodeConversions/testUtil.ts +0 -65
  336. package/src/extensions/Blocks/api/block.ts +0 -307
  337. package/src/extensions/Blocks/api/blockTypes.ts +0 -249
  338. package/src/extensions/Blocks/api/cursorPositionTypes.ts +0 -7
  339. package/src/extensions/Blocks/api/defaultBlocks.ts +0 -16
  340. package/src/extensions/Blocks/api/defaultProps.ts +0 -16
  341. package/src/extensions/Blocks/api/inlineContentTypes.ts +0 -36
  342. package/src/extensions/Blocks/api/selectionTypes.ts +0 -5
  343. package/src/extensions/Blocks/api/serialization.ts +0 -29
  344. package/src/extensions/Blocks/helpers/findBlock.ts +0 -5
  345. package/src/extensions/Blocks/index.ts +0 -8
  346. package/src/extensions/Blocks/nodes/BlockAttributes.ts +0 -10
  347. package/src/extensions/Blocks/nodes/BlockContent/HeadingBlockContent/HeadingBlockContent.ts +0 -142
  348. package/src/extensions/Blocks/nodes/BlockContent/ParagraphBlockContent/ParagraphBlockContent.ts +0 -62
  349. package/src/extensions/Blocks/nodes/BlockGroup.ts +0 -53
  350. package/types/src/api/formatConversions/formatConversions.d.ts +0 -6
  351. package/types/src/extensions/Blocks/api/block.d.ts +0 -20
  352. package/types/src/extensions/Blocks/api/blockTypes.d.ts +0 -103
  353. package/types/src/extensions/Blocks/api/inlineContentTypes.d.ts +0 -30
  354. package/types/src/extensions/Blocks/api/serialization.d.ts +0 -2
  355. /package/src/{shared/EditorElement.ts → api/exporters/markdown/__snapshots__/hardbreak/only/markdown.md} +0 -0
  356. /package/src/api/{formatConversions → exporters/markdown}/removeUnderlinesRehypePlugin.ts +0 -0
  357. /package/src/{extensions/Blocks/helpers → api}/getBlockInfoFromPos.ts +0 -0
  358. /package/src/api/{util/nodeUtil.ts → nodeUtil.ts} +0 -0
  359. /package/src/{extensions/Blocks/nodes/BlockContent → blocks}/ImageBlockContent/uploadToTmpFilesDotOrg_DEV_ONLY.ts +0 -0
  360. /package/src/extensions/{Blocks → NonEditableBlocks}/NonEditableBlockPlugin.ts +0 -0
  361. /package/src/extensions/{Blocks → PreviousBlockType}/PreviousBlockTypePlugin.ts +0 -0
  362. /package/src/{shared → extensions-shared}/BaseUiElementTypes.ts +0 -0
  363. /package/src/{shared/plugins → extensions-shared}/suggestion/SuggestionItem.ts +0 -0
  364. /package/src/{shared → util}/EventEmitter.ts +0 -0
  365. /package/types/src/api/{formatConversions/formatConversions.test.d.ts → exporters/html/htmlConversion.test.d.ts} +0 -0
  366. /package/types/src/api/{formatConversions → exporters/html/util}/simplifyBlocksRehypePlugin.d.ts +0 -0
  367. /package/types/src/api/{formatConversions → exporters/markdown}/removeUnderlinesRehypePlugin.d.ts +0 -0
@@ -0,0 +1,176 @@
1
+ import rehypeFormat from "rehype-format";
2
+ import rehypeParse from "rehype-parse";
3
+ import rehypeStringify from "rehype-stringify";
4
+ import { unified } from "unified";
5
+ import { describe, expect, it } from "vitest";
6
+ import { nestedListsToBlockNoteStructure } from "./nestedLists";
7
+
8
+ async function testHTML(html: string) {
9
+ const htmlNode = nestedListsToBlockNoteStructure(html);
10
+
11
+ const pretty = await unified()
12
+ .use(rehypeParse, { fragment: true })
13
+ .use(rehypeFormat)
14
+ .use(rehypeStringify)
15
+ .process(htmlNode.innerHTML);
16
+
17
+ expect(pretty.value).toMatchSnapshot();
18
+ }
19
+
20
+ describe("Lift nested lists", () => {
21
+ it("Lifts nested bullet lists", async () => {
22
+ const html = `<ul>
23
+ <li>
24
+ Bullet List Item 1
25
+ <ul>
26
+ <li>
27
+ Nested Bullet List Item 1
28
+ </li>
29
+ <li>
30
+ Nested Bullet List Item 2
31
+ </li>
32
+ </ul>
33
+ </li>
34
+ <li>
35
+ Bullet List Item 2
36
+ </li>
37
+ </ul>`;
38
+ await testHTML(html);
39
+ });
40
+
41
+ it("Lifts nested bullet lists without li", async () => {
42
+ const html = `<ul>
43
+ Bullet List Item 1
44
+ <ul>
45
+ <li>
46
+ Nested Bullet List Item 1
47
+ </li>
48
+ <li>
49
+ Nested Bullet List Item 2
50
+ </li>
51
+ </ul>
52
+ <li>
53
+ Bullet List Item 2
54
+ </li>
55
+ </ul>`;
56
+ await testHTML(html);
57
+ });
58
+
59
+ it("Lifts nested bullet lists with content after nested list", async () => {
60
+ const html = `<ul>
61
+ <li>
62
+ Bullet List Item 1
63
+ <ul>
64
+ <li>
65
+ Nested Bullet List Item 1
66
+ </li>
67
+ <li>
68
+ Nested Bullet List Item 2
69
+ </li>
70
+ </ul>
71
+ More content in list item 1
72
+ </li>
73
+ <li>
74
+ Bullet List Item 2
75
+ </li>
76
+ </ul>`;
77
+ await testHTML(html);
78
+ });
79
+
80
+ it("Lifts multiple bullet lists", async () => {
81
+ const html = `<ul>
82
+ <li>
83
+ Bullet List Item 1
84
+ <ul>
85
+ <li>
86
+ Nested Bullet List Item 1
87
+ </li>
88
+ <li>
89
+ Nested Bullet List Item 2
90
+ </li>
91
+ </ul>
92
+ <ul>
93
+ <li>
94
+ Nested Bullet List Item 3
95
+ </li>
96
+ <li>
97
+ Nested Bullet List Item 4
98
+ </li>
99
+ </ul>
100
+ </li>
101
+ <li>
102
+ Bullet List Item 2
103
+ </li>
104
+ </ul>`;
105
+ await testHTML(html);
106
+ });
107
+
108
+ it("Lifts multiple bullet lists with content in between", async () => {
109
+ const html = `<ul>
110
+ <li>
111
+ Bullet List Item 1
112
+ <ul>
113
+ <li>
114
+ Nested Bullet List Item 1
115
+ </li>
116
+ <li>
117
+ Nested Bullet List Item 2
118
+ </li>
119
+ </ul>
120
+ In between content
121
+ <ul>
122
+ <li>
123
+ Nested Bullet List Item 3
124
+ </li>
125
+ <li>
126
+ Nested Bullet List Item 4
127
+ </li>
128
+ </ul>
129
+ </li>
130
+ <li>
131
+ Bullet List Item 2
132
+ </li>
133
+ </ul>`;
134
+ await testHTML(html);
135
+ });
136
+
137
+ it("Lifts nested numbered lists", async () => {
138
+ const html = `<ol>
139
+ <li>
140
+ Numbered List Item 1
141
+ <ol>
142
+ <li>
143
+ Nested Numbered List Item 1
144
+ </li>
145
+ <li>
146
+ Nested Numbered List Item 2
147
+ </li>
148
+ </ol>
149
+ </li>
150
+ <li>
151
+ Numbered List Item 2
152
+ </li>
153
+ </ol>`;
154
+ await testHTML(html);
155
+ });
156
+
157
+ it("Lifts nested mixed lists", async () => {
158
+ const html = `<ol>
159
+ <li>
160
+ Numbered List Item 1
161
+ <ul>
162
+ <li>
163
+ Bullet List Item 1
164
+ </li>
165
+ <li>
166
+ Bullet List Item 2
167
+ </li>
168
+ </ul>
169
+ </li>
170
+ <li>
171
+ Numbered List Item 2
172
+ </li>
173
+ </ol>`;
174
+ await testHTML(html);
175
+ });
176
+ });
@@ -0,0 +1,113 @@
1
+ function getChildIndex(node: Element) {
2
+ return Array.prototype.indexOf.call(node.parentElement!.childNodes, node);
3
+ }
4
+
5
+ function isWhitespaceNode(node: Node) {
6
+ return node.nodeType === 3 && !/\S/.test(node.nodeValue || "");
7
+ }
8
+
9
+ /**
10
+ * Step 1, Turns:
11
+ *
12
+ * <ul>
13
+ * <li>item</li>
14
+ * <li>
15
+ * <ul>
16
+ * <li>...</li>
17
+ * <li>...</li>
18
+ * </ul>
19
+ * </li>
20
+ *
21
+ * Into:
22
+ * <ul>
23
+ * <li>item</li>
24
+ * <ul>
25
+ * <li>...</li>
26
+ * <li>...</li>
27
+ * </ul>
28
+ * </ul>
29
+ *
30
+ */
31
+ function liftNestedListsToParent(element: HTMLElement) {
32
+ element.querySelectorAll("li > ul, li > ol").forEach((list) => {
33
+ const index = getChildIndex(list);
34
+ const parentListItem = list.parentElement!;
35
+ const siblingsAfter = Array.from(parentListItem.childNodes).slice(
36
+ index + 1
37
+ );
38
+ list.remove();
39
+ siblingsAfter.forEach((sibling) => {
40
+ sibling.remove();
41
+ });
42
+
43
+ parentListItem.insertAdjacentElement("afterend", list);
44
+
45
+ siblingsAfter.reverse().forEach((sibling) => {
46
+ if (isWhitespaceNode(sibling)) {
47
+ return;
48
+ }
49
+ const siblingContainer = document.createElement("li");
50
+ siblingContainer.append(sibling);
51
+ list.insertAdjacentElement("afterend", siblingContainer);
52
+ });
53
+ if (parentListItem.childNodes.length === 0) {
54
+ parentListItem.remove();
55
+ }
56
+ });
57
+ }
58
+
59
+ /**
60
+ * Step 2, Turns (output of liftNestedListsToParent):
61
+ *
62
+ * <li>item</li>
63
+ * <ul>
64
+ * <li>...</li>
65
+ * <li>...</li>
66
+ * </ul>
67
+ *
68
+ * Into:
69
+ * <div>
70
+ * <li>item</li>
71
+ * <div data-node-type="blockGroup">
72
+ * <ul>
73
+ * <li>...</li>
74
+ * <li>...</li>
75
+ * </ul>
76
+ * </div>
77
+ * </div>
78
+ *
79
+ * This resulting format is parsed
80
+ */
81
+ function createGroups(element: HTMLElement) {
82
+ element.querySelectorAll("li + ul, li + ol").forEach((list) => {
83
+ const listItem = list.previousElementSibling as HTMLElement;
84
+ const blockContainer = document.createElement("div");
85
+
86
+ listItem.insertAdjacentElement("afterend", blockContainer);
87
+ blockContainer.append(listItem);
88
+
89
+ const blockGroup = document.createElement("div");
90
+ blockGroup.setAttribute("data-node-type", "blockGroup");
91
+ blockContainer.append(blockGroup);
92
+
93
+ while (
94
+ blockContainer.nextElementSibling?.nodeName === "UL" ||
95
+ blockContainer.nextElementSibling?.nodeName === "OL"
96
+ ) {
97
+ blockGroup.append(blockContainer.nextElementSibling);
98
+ }
99
+ });
100
+ }
101
+
102
+ export function nestedListsToBlockNoteStructure(
103
+ elementOrHTML: HTMLElement | string
104
+ ) {
105
+ if (typeof elementOrHTML === "string") {
106
+ const element = document.createElement("div");
107
+ element.innerHTML = elementOrHTML;
108
+ elementOrHTML = element;
109
+ }
110
+ liftNestedListsToParent(elementOrHTML);
111
+ createGroups(elementOrHTML);
112
+ return elementOrHTML;
113
+ }
@@ -0,0 +1,353 @@
1
+ [
2
+ {
3
+ "id": "1",
4
+ "type": "heading",
5
+ "props": {
6
+ "textColor": "default",
7
+ "backgroundColor": "default",
8
+ "textAlignment": "left",
9
+ "level": 1
10
+ },
11
+ "content": [
12
+ {
13
+ "type": "text",
14
+ "text": "Heading 1",
15
+ "styles": {}
16
+ }
17
+ ],
18
+ "children": []
19
+ },
20
+ {
21
+ "id": "2",
22
+ "type": "heading",
23
+ "props": {
24
+ "textColor": "default",
25
+ "backgroundColor": "default",
26
+ "textAlignment": "left",
27
+ "level": 2
28
+ },
29
+ "content": [
30
+ {
31
+ "type": "text",
32
+ "text": "Heading 2",
33
+ "styles": {}
34
+ }
35
+ ],
36
+ "children": []
37
+ },
38
+ {
39
+ "id": "3",
40
+ "type": "heading",
41
+ "props": {
42
+ "textColor": "default",
43
+ "backgroundColor": "default",
44
+ "textAlignment": "left",
45
+ "level": 3
46
+ },
47
+ "content": [
48
+ {
49
+ "type": "text",
50
+ "text": "Heading 3",
51
+ "styles": {}
52
+ }
53
+ ],
54
+ "children": []
55
+ },
56
+ {
57
+ "id": "4",
58
+ "type": "paragraph",
59
+ "props": {
60
+ "textColor": "default",
61
+ "backgroundColor": "default",
62
+ "textAlignment": "left"
63
+ },
64
+ "content": [
65
+ {
66
+ "type": "text",
67
+ "text": "Paragraph",
68
+ "styles": {}
69
+ }
70
+ ],
71
+ "children": []
72
+ },
73
+ {
74
+ "id": "5",
75
+ "type": "paragraph",
76
+ "props": {
77
+ "textColor": "default",
78
+ "backgroundColor": "default",
79
+ "textAlignment": "left"
80
+ },
81
+ "content": [
82
+ {
83
+ "type": "text",
84
+ "text": "P",
85
+ "styles": {}
86
+ },
87
+ {
88
+ "type": "text",
89
+ "text": "ara",
90
+ "styles": {
91
+ "bold": true
92
+ }
93
+ },
94
+ {
95
+ "type": "text",
96
+ "text": "grap",
97
+ "styles": {
98
+ "italic": true
99
+ }
100
+ },
101
+ {
102
+ "type": "text",
103
+ "text": "h",
104
+ "styles": {}
105
+ }
106
+ ],
107
+ "children": []
108
+ },
109
+ {
110
+ "id": "6",
111
+ "type": "paragraph",
112
+ "props": {
113
+ "textColor": "default",
114
+ "backgroundColor": "default",
115
+ "textAlignment": "left"
116
+ },
117
+ "content": [
118
+ {
119
+ "type": "text",
120
+ "text": "P",
121
+ "styles": {}
122
+ },
123
+ {
124
+ "type": "text",
125
+ "text": "ara",
126
+ "styles": {
127
+ "italic": true
128
+ }
129
+ },
130
+ {
131
+ "type": "text",
132
+ "text": "grap",
133
+ "styles": {
134
+ "strike": true
135
+ }
136
+ },
137
+ {
138
+ "type": "text",
139
+ "text": "h",
140
+ "styles": {}
141
+ }
142
+ ],
143
+ "children": []
144
+ },
145
+ {
146
+ "id": "7",
147
+ "type": "bulletListItem",
148
+ "props": {
149
+ "textColor": "default",
150
+ "backgroundColor": "default",
151
+ "textAlignment": "left"
152
+ },
153
+ "content": [
154
+ {
155
+ "type": "text",
156
+ "text": "Bullet List Item",
157
+ "styles": {}
158
+ }
159
+ ],
160
+ "children": []
161
+ },
162
+ {
163
+ "id": "8",
164
+ "type": "bulletListItem",
165
+ "props": {
166
+ "textColor": "default",
167
+ "backgroundColor": "default",
168
+ "textAlignment": "left"
169
+ },
170
+ "content": [
171
+ {
172
+ "type": "text",
173
+ "text": "Bullet List Item",
174
+ "styles": {}
175
+ }
176
+ ],
177
+ "children": [
178
+ {
179
+ "id": "9",
180
+ "type": "bulletListItem",
181
+ "props": {
182
+ "textColor": "default",
183
+ "backgroundColor": "default",
184
+ "textAlignment": "left"
185
+ },
186
+ "content": [
187
+ {
188
+ "type": "text",
189
+ "text": "Bullet List Item",
190
+ "styles": {}
191
+ }
192
+ ],
193
+ "children": [
194
+ {
195
+ "id": "10",
196
+ "type": "bulletListItem",
197
+ "props": {
198
+ "textColor": "default",
199
+ "backgroundColor": "default",
200
+ "textAlignment": "left"
201
+ },
202
+ "content": [
203
+ {
204
+ "type": "text",
205
+ "text": "Bullet List Item",
206
+ "styles": {}
207
+ }
208
+ ],
209
+ "children": []
210
+ }
211
+ ]
212
+ },
213
+ {
214
+ "id": "11",
215
+ "type": "bulletListItem",
216
+ "props": {
217
+ "textColor": "default",
218
+ "backgroundColor": "default",
219
+ "textAlignment": "left"
220
+ },
221
+ "content": [
222
+ {
223
+ "type": "text",
224
+ "text": "Paragraph",
225
+ "styles": {}
226
+ }
227
+ ],
228
+ "children": [
229
+ {
230
+ "id": "12",
231
+ "type": "numberedListItem",
232
+ "props": {
233
+ "textColor": "default",
234
+ "backgroundColor": "default",
235
+ "textAlignment": "left"
236
+ },
237
+ "content": [
238
+ {
239
+ "type": "text",
240
+ "text": "Numbered List Item",
241
+ "styles": {}
242
+ }
243
+ ],
244
+ "children": []
245
+ },
246
+ {
247
+ "id": "13",
248
+ "type": "numberedListItem",
249
+ "props": {
250
+ "textColor": "default",
251
+ "backgroundColor": "default",
252
+ "textAlignment": "left"
253
+ },
254
+ "content": [
255
+ {
256
+ "type": "text",
257
+ "text": "Numbered List Item",
258
+ "styles": {}
259
+ }
260
+ ],
261
+ "children": []
262
+ },
263
+ {
264
+ "id": "14",
265
+ "type": "numberedListItem",
266
+ "props": {
267
+ "textColor": "default",
268
+ "backgroundColor": "default",
269
+ "textAlignment": "left"
270
+ },
271
+ "content": [
272
+ {
273
+ "type": "text",
274
+ "text": "Numbered List Item",
275
+ "styles": {}
276
+ }
277
+ ],
278
+ "children": [
279
+ {
280
+ "id": "15",
281
+ "type": "numberedListItem",
282
+ "props": {
283
+ "textColor": "default",
284
+ "backgroundColor": "default",
285
+ "textAlignment": "left"
286
+ },
287
+ "content": [
288
+ {
289
+ "type": "text",
290
+ "text": "Numbered List Item",
291
+ "styles": {}
292
+ }
293
+ ],
294
+ "children": []
295
+ }
296
+ ]
297
+ },
298
+ {
299
+ "id": "16",
300
+ "type": "bulletListItem",
301
+ "props": {
302
+ "textColor": "default",
303
+ "backgroundColor": "default",
304
+ "textAlignment": "left"
305
+ },
306
+ "content": [
307
+ {
308
+ "type": "text",
309
+ "text": "Bullet List Item",
310
+ "styles": {}
311
+ }
312
+ ],
313
+ "children": []
314
+ }
315
+ ]
316
+ },
317
+ {
318
+ "id": "17",
319
+ "type": "bulletListItem",
320
+ "props": {
321
+ "textColor": "default",
322
+ "backgroundColor": "default",
323
+ "textAlignment": "left"
324
+ },
325
+ "content": [
326
+ {
327
+ "type": "text",
328
+ "text": "Bullet List Item",
329
+ "styles": {}
330
+ }
331
+ ],
332
+ "children": []
333
+ }
334
+ ]
335
+ },
336
+ {
337
+ "id": "18",
338
+ "type": "bulletListItem",
339
+ "props": {
340
+ "textColor": "default",
341
+ "backgroundColor": "default",
342
+ "textAlignment": "left"
343
+ },
344
+ "content": [
345
+ {
346
+ "type": "text",
347
+ "text": "Bullet List Item",
348
+ "styles": {}
349
+ }
350
+ ],
351
+ "children": []
352
+ }
353
+ ]
@@ -0,0 +1,71 @@
1
+ [
2
+ {
3
+ "id": "1",
4
+ "type": "bulletListItem",
5
+ "props": {
6
+ "textColor": "default",
7
+ "backgroundColor": "default",
8
+ "textAlignment": "left"
9
+ },
10
+ "content": [
11
+ {
12
+ "type": "text",
13
+ "text": "📝 item1",
14
+ "styles": {}
15
+ }
16
+ ],
17
+ "children": []
18
+ },
19
+ {
20
+ "id": "2",
21
+ "type": "bulletListItem",
22
+ "props": {
23
+ "textColor": "default",
24
+ "backgroundColor": "default",
25
+ "textAlignment": "left"
26
+ },
27
+ "content": [
28
+ {
29
+ "type": "text",
30
+ "text": "⚙️ item2",
31
+ "styles": {}
32
+ }
33
+ ],
34
+ "children": []
35
+ },
36
+ {
37
+ "id": "3",
38
+ "type": "bulletListItem",
39
+ "props": {
40
+ "textColor": "default",
41
+ "backgroundColor": "default",
42
+ "textAlignment": "left"
43
+ },
44
+ "content": [
45
+ {
46
+ "type": "text",
47
+ "text": "🔗 item3",
48
+ "styles": {}
49
+ }
50
+ ],
51
+ "children": []
52
+ },
53
+ {
54
+ "id": "4",
55
+ "type": "heading",
56
+ "props": {
57
+ "textColor": "default",
58
+ "backgroundColor": "default",
59
+ "textAlignment": "left",
60
+ "level": 1
61
+ },
62
+ "content": [
63
+ {
64
+ "type": "text",
65
+ "text": "h1",
66
+ "styles": {}
67
+ }
68
+ ],
69
+ "children": []
70
+ }
71
+ ]