@blocknote/core 0.9.6 → 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 +3697 -2609
  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 -85
  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 +87 -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} +69 -62
  171. package/src/{BlockNoteEditor.test.ts → editor/BlockNoteEditor.test.ts} +2 -2
  172. package/src/{BlockNoteEditor.ts → editor/BlockNoteEditor.ts} +364 -153
  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 +66 -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 +49 -36
  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 +18 -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
@@ -1,4 +1,4 @@
1
- import { Props } from "./blockTypes";
1
+ import { Props } from "./blocks/types";
2
2
  export declare const defaultProps: {
3
3
  backgroundColor: {
4
4
  default: "default";
@@ -12,3 +12,4 @@ export declare const defaultProps: {
12
12
  };
13
13
  };
14
14
  export type DefaultProps = Props<typeof defaultProps>;
15
+ export declare const inheritedProps: string[];
@@ -0,0 +1,21 @@
1
+ import { ParseRule } from "@tiptap/pm/model";
2
+ import { StyleSchema } from "../styles/types";
3
+ import { CustomInlineContentConfig, InlineContentConfig, InlineContentFromConfig, InlineContentSpec } from "./types";
4
+ export type CustomInlineContentImplementation<T extends InlineContentConfig, S extends StyleSchema> = {
5
+ render: (
6
+ /**
7
+ * The custom inline content to render
8
+ */
9
+ inlineContent: InlineContentFromConfig<T, S>
10
+ /**
11
+ * The BlockNote editor instance
12
+ * This is typed generically. If you want an editor with your custom schema, you need to
13
+ * cast it manually, e.g.: `const e = editor as BlockNoteEditor<typeof mySchema>;`
14
+ */
15
+ ) => {
16
+ dom: HTMLElement;
17
+ contentDOM?: HTMLElement;
18
+ };
19
+ };
20
+ export declare function getInlineContentParseRules(config: CustomInlineContentConfig): ParseRule[];
21
+ export declare function createInlineContentSpec<T extends CustomInlineContentConfig, S extends StyleSchema>(inlineContentConfig: T, inlineContentImplementation: CustomInlineContentImplementation<T, S>): InlineContentSpec<T>;
@@ -0,0 +1,25 @@
1
+ import { Node } from "@tiptap/core";
2
+ import { Props, PropSchema } from "../blocks/types";
3
+ import { InlineContentConfig, InlineContentImplementation, InlineContentSchemaFromSpecs, InlineContentSpecs } from "./types";
4
+ export declare function addInlineContentAttributes<IType extends string, PSchema extends PropSchema>(element: {
5
+ dom: HTMLElement;
6
+ contentDOM?: HTMLElement;
7
+ }, inlineContentType: IType, inlineContentProps: Props<PSchema>, propSchema: PSchema): {
8
+ dom: HTMLElement;
9
+ contentDOM?: HTMLElement;
10
+ };
11
+ export declare function createInternalInlineContentSpec<T extends InlineContentConfig>(config: T, implementation: InlineContentImplementation<T>): {
12
+ config: T;
13
+ implementation: InlineContentImplementation<T>;
14
+ };
15
+ export declare function createInlineContentSpecFromTipTapNode<T extends Node, P extends PropSchema>(node: T, propSchema: P): {
16
+ config: {
17
+ type: T["name"];
18
+ propSchema: P;
19
+ content: "styled" | "none";
20
+ };
21
+ implementation: {
22
+ node: Node<any, any>;
23
+ };
24
+ };
25
+ export declare function getInlineContentSchemaFromSpecs<T extends InlineContentSpecs>(specs: T): InlineContentSchemaFromSpecs<T>;
@@ -0,0 +1,62 @@
1
+ import { Node } from "@tiptap/core";
2
+ import { PropSchema, Props } from "../blocks/types";
3
+ import { StyleSchema, Styles } from "../styles/types";
4
+ export type CustomInlineContentConfig = {
5
+ type: string;
6
+ content: "styled" | "none";
7
+ readonly propSchema: PropSchema;
8
+ };
9
+ export type InlineContentConfig = CustomInlineContentConfig | "text" | "link";
10
+ export type InlineContentImplementation<T extends InlineContentConfig> = T extends "link" | "text" ? undefined : {
11
+ node: Node;
12
+ };
13
+ export type InlineContentSpec<T extends InlineContentConfig> = {
14
+ config: T;
15
+ implementation: InlineContentImplementation<T>;
16
+ };
17
+ export type InlineContentSchema = Record<string, InlineContentConfig>;
18
+ export type InlineContentSpecs = {
19
+ text: {
20
+ config: "text";
21
+ implementation: undefined;
22
+ };
23
+ link: {
24
+ config: "link";
25
+ implementation: undefined;
26
+ };
27
+ } & Record<string, InlineContentSpec<InlineContentConfig>>;
28
+ export type InlineContentSchemaFromSpecs<T extends InlineContentSpecs> = {
29
+ [K in keyof T]: T[K]["config"];
30
+ };
31
+ export type CustomInlineContentFromConfig<I extends CustomInlineContentConfig, S extends StyleSchema> = {
32
+ type: I["type"];
33
+ props: Props<I["propSchema"]>;
34
+ content: I["content"] extends "styled" ? StyledText<S>[] : I["content"] extends "plain" ? string : I["content"] extends "none" ? undefined : never;
35
+ };
36
+ export type InlineContentFromConfig<I extends InlineContentConfig, S extends StyleSchema> = I extends "text" ? StyledText<S> : I extends "link" ? Link<S> : I extends CustomInlineContentConfig ? CustomInlineContentFromConfig<I, S> : never;
37
+ export type PartialCustomInlineContentFromConfig<I extends CustomInlineContentConfig, S extends StyleSchema> = {
38
+ type: I["type"];
39
+ props?: Props<I["propSchema"]>;
40
+ content: I["content"] extends "styled" ? StyledText<S>[] | string : I["content"] extends "plain" ? string : I["content"] extends "none" ? undefined : never;
41
+ };
42
+ export type PartialInlineContentFromConfig<I extends InlineContentConfig, S extends StyleSchema> = I extends "text" ? string | StyledText<S> : I extends "link" ? PartialLink<S> : I extends CustomInlineContentConfig ? PartialCustomInlineContentFromConfig<I, S> : never;
43
+ export type StyledText<T extends StyleSchema> = {
44
+ type: "text";
45
+ text: string;
46
+ styles: Styles<T>;
47
+ };
48
+ export type Link<T extends StyleSchema> = {
49
+ type: "link";
50
+ href: string;
51
+ content: StyledText<T>[];
52
+ };
53
+ export type PartialLink<T extends StyleSchema> = Omit<Link<T>, "content"> & {
54
+ content: string | Link<T>["content"];
55
+ };
56
+ export type InlineContent<I extends InlineContentSchema, T extends StyleSchema> = InlineContentFromConfig<I[keyof I], T>;
57
+ type PartialInlineContentElement<I extends InlineContentSchema, T extends StyleSchema> = PartialInlineContentFromConfig<I[keyof I], T>;
58
+ export type PartialInlineContent<I extends InlineContentSchema, T extends StyleSchema> = PartialInlineContentElement<I, T>[] | string;
59
+ export declare function isLinkInlineContent<T extends StyleSchema>(content: InlineContent<any, T>): content is Link<T>;
60
+ export declare function isPartialLinkInlineContent<T extends StyleSchema>(content: PartialInlineContentElement<any, T>): content is PartialLink<T>;
61
+ export declare function isStyledTextInlineContent<T extends StyleSchema>(content: PartialInlineContentElement<any, T>): content is StyledText<T>;
62
+ export {};
@@ -1,4 +1,6 @@
1
- import { Block, BlockSchema } from "./blockTypes";
2
- export type Selection<BSchema extends BlockSchema> = {
3
- blocks: Block<BSchema>[];
1
+ import { Block, BlockSchema } from "./blocks/types";
2
+ import { InlineContentSchema } from "./inlineContent/types";
3
+ import { StyleSchema } from "./styles/types";
4
+ export type Selection<BSchema extends BlockSchema, I extends InlineContentSchema, S extends StyleSchema> = {
5
+ blocks: Block<BSchema, I, S>[];
4
6
  };
@@ -0,0 +1,13 @@
1
+ import { ParseRule } from "@tiptap/pm/model";
2
+ import { StyleConfig, StyleSpec } from "./types";
3
+ export type CustomStyleImplementation<T extends StyleConfig> = {
4
+ render: T["propSchema"] extends "boolean" ? () => {
5
+ dom: HTMLElement;
6
+ contentDOM?: HTMLElement;
7
+ } : (value: string) => {
8
+ dom: HTMLElement;
9
+ contentDOM?: HTMLElement;
10
+ };
11
+ };
12
+ export declare function getStyleParseRules(config: StyleConfig): ParseRule[];
13
+ export declare function createStyleSpec<T extends StyleConfig>(styleConfig: T, styleImplementation: CustomStyleImplementation<T>): StyleSpec<T>;
@@ -0,0 +1,22 @@
1
+ import { Attributes, Mark } from "@tiptap/core";
2
+ import { StyleConfig, StyleImplementation, StylePropSchema, StyleSchemaFromSpecs, StyleSpecs } from "./types";
3
+ export declare function stylePropsToAttributes(propSchema: StylePropSchema): Attributes;
4
+ export declare function addStyleAttributes<SType extends string, PSchema extends StylePropSchema>(element: {
5
+ dom: HTMLElement;
6
+ contentDOM?: HTMLElement;
7
+ }, styleType: SType, styleValue: PSchema extends "boolean" ? undefined : string, propSchema: PSchema): {
8
+ dom: HTMLElement;
9
+ contentDOM?: HTMLElement;
10
+ };
11
+ export declare function createInternalStyleSpec<T extends StyleConfig>(config: T, implementation: StyleImplementation): {
12
+ config: T;
13
+ implementation: StyleImplementation;
14
+ };
15
+ export declare function createStyleSpecFromTipTapMark<T extends Mark, P extends StylePropSchema>(mark: T, propSchema: P): {
16
+ config: {
17
+ type: T["name"];
18
+ propSchema: P;
19
+ };
20
+ implementation: StyleImplementation;
21
+ };
22
+ export declare function getStyleSchemaFromSpecs<T extends StyleSpecs>(specs: T): StyleSchemaFromSpecs<T>;
@@ -0,0 +1,21 @@
1
+ import { Mark } from "@tiptap/core";
2
+ export type StylePropSchema = "boolean" | "string";
3
+ export type StyleConfig = {
4
+ type: string;
5
+ readonly propSchema: StylePropSchema;
6
+ };
7
+ export type StyleImplementation = {
8
+ mark: Mark;
9
+ };
10
+ export type StyleSpec<T extends StyleConfig> = {
11
+ config: T;
12
+ implementation: StyleImplementation;
13
+ };
14
+ export type StyleSchema = Record<string, StyleConfig>;
15
+ export type StyleSpecs = Record<string, StyleSpec<StyleConfig>>;
16
+ export type StyleSchemaFromSpecs<T extends StyleSpecs> = {
17
+ [K in keyof T]: T[K]["config"];
18
+ };
19
+ export type Styles<T extends StyleSchema> = {
20
+ [K in keyof T]?: T[K]["propSchema"] extends "boolean" ? boolean : T[K]["propSchema"] extends "string" ? string : never;
21
+ };
@@ -1,5 +1,8 @@
1
1
  import { Node } from "@tiptap/core";
2
- import { BlockSchema, PartialBlock } from "../api/blockTypes";
2
+ import { BlockNoteEditor } from "../../../BlockNoteEditor";
3
+ import { BlockSchema, PartialBlock } from "../api/blocks/types";
4
+ import { InlineContentSchema } from "../api/inlineContent/types";
5
+ import { StyleSchema } from "../api/styles/types";
3
6
  declare module "@tiptap/core" {
4
7
  interface Commands<ReturnType> {
5
8
  block: {
@@ -7,8 +10,8 @@ declare module "@tiptap/core" {
7
10
  BNDeleteBlock: (posInBlock: number) => ReturnType;
8
11
  BNMergeBlocks: (posBetweenBlocks: number) => ReturnType;
9
12
  BNSplitBlock: (posInBlock: number, keepType: boolean) => ReturnType;
10
- BNUpdateBlock: <BSchema extends BlockSchema>(posInBlock: number, block: PartialBlock<BSchema>) => ReturnType;
11
- BNCreateOrUpdateBlock: <BSchema extends BlockSchema>(posInBlock: number, block: PartialBlock<BSchema>) => ReturnType;
13
+ BNUpdateBlock: <BSchema extends BlockSchema, I extends InlineContentSchema, S extends StyleSchema>(posInBlock: number, block: PartialBlock<BSchema, I, S>) => ReturnType;
14
+ BNCreateOrUpdateBlock: <BSchema extends BlockSchema, I extends InlineContentSchema, S extends StyleSchema>(posInBlock: number, block: PartialBlock<BSchema, I, S>) => ReturnType;
12
15
  };
13
16
  }
14
17
  }
@@ -17,10 +20,11 @@ declare module "@tiptap/core" {
17
20
  */
18
21
  export declare const BlockContainer: Node<{
19
22
  domAttributes?: Partial<{
23
+ editor: Record<string, string>;
20
24
  blockContainer: Record<string, string>;
21
25
  blockGroup: Record<string, string>;
22
- editor: Record<string, string>;
23
26
  blockContent: Record<string, string>;
24
27
  inlineContent: Record<string, string>;
25
28
  }> | undefined;
29
+ editor: BlockNoteEditor<BlockSchema, InlineContentSchema, StyleSchema>;
26
30
  }, any>;
@@ -15,29 +15,44 @@ export declare const headingPropSchema: {
15
15
  };
16
16
  };
17
17
  export declare const Heading: {
18
- node: import("../../../api/blockTypes").TipTapNode<"heading", true, {
19
- domAttributes?: Partial<{
20
- blockContainer: Record<string, string>;
21
- blockGroup: Record<string, string>;
22
- editor: Record<string, string>;
23
- blockContent: Record<string, string>;
24
- inlineContent: Record<string, string>;
25
- }> | undefined;
26
- }, any>;
27
- propSchema: {
28
- level: {
29
- default: number;
30
- values: readonly [1, 2, 3];
31
- };
32
- backgroundColor: {
33
- default: "default";
34
- };
35
- textColor: {
36
- default: "default";
37
- };
38
- textAlignment: {
39
- default: "left";
40
- values: readonly ["left", "center", "right", "justify"];
18
+ config: {
19
+ type: "heading";
20
+ content: "inline";
21
+ propSchema: {
22
+ level: {
23
+ default: number;
24
+ values: readonly [1, 2, 3];
25
+ };
26
+ backgroundColor: {
27
+ default: "default";
28
+ };
29
+ textColor: {
30
+ default: "default";
31
+ };
32
+ textAlignment: {
33
+ default: "left";
34
+ values: readonly ["left", "center", "right", "justify"];
35
+ };
41
36
  };
42
37
  };
38
+ implementation: import("../../../api/blocks/types").TiptapBlockImplementation<{
39
+ type: "heading";
40
+ content: "inline";
41
+ propSchema: {
42
+ level: {
43
+ default: number;
44
+ values: readonly [1, 2, 3];
45
+ };
46
+ backgroundColor: {
47
+ default: "default";
48
+ };
49
+ textColor: {
50
+ default: "default";
51
+ };
52
+ textAlignment: {
53
+ default: "left";
54
+ values: readonly ["left", "center", "right", "justify"];
55
+ };
56
+ };
57
+ }, any, import("../../../../..").InlineContentSchema, import("../../../../..").StyleSchema>;
43
58
  };
@@ -1,4 +1,7 @@
1
- import { BlockSpec } from "../../../api/blockTypes";
1
+ import { BlockNoteEditor } from "../../../../../BlockNoteEditor";
2
+ import { BlockFromConfig, BlockSchemaWithBlock } from "../../../api/blocks/types";
3
+ import { InlineContentSchema } from "../../../api/inlineContent/types";
4
+ import { StyleSchema } from "../../../api/styles/types";
2
5
  export declare const imagePropSchema: {
3
6
  textAlignment: {
4
7
  default: "left";
@@ -17,21 +20,76 @@ export declare const imagePropSchema: {
17
20
  default: 512;
18
21
  };
19
22
  };
20
- export declare const Image: BlockSpec<"image", {
21
- textAlignment: {
22
- default: "left";
23
- values: readonly ["left", "center", "right", "justify"];
24
- };
25
- backgroundColor: {
26
- default: "default";
27
- };
28
- url: {
29
- default: "";
23
+ declare const blockConfig: {
24
+ type: "image";
25
+ propSchema: {
26
+ textAlignment: {
27
+ default: "left";
28
+ values: readonly ["left", "center", "right", "justify"];
29
+ };
30
+ backgroundColor: {
31
+ default: "default";
32
+ };
33
+ url: {
34
+ default: "";
35
+ };
36
+ caption: {
37
+ default: "";
38
+ };
39
+ width: {
40
+ default: 512;
41
+ };
30
42
  };
31
- caption: {
32
- default: "";
33
- };
34
- width: {
35
- default: 512;
43
+ content: "none";
44
+ };
45
+ export declare const renderImage: (block: BlockFromConfig<typeof blockConfig, InlineContentSchema, StyleSchema>, editor: BlockNoteEditor<BlockSchemaWithBlock<"image", typeof blockConfig>>) => {
46
+ dom: HTMLDivElement;
47
+ destroy: () => void;
48
+ };
49
+ export declare const Image: {
50
+ config: {
51
+ type: "image";
52
+ propSchema: {
53
+ textAlignment: {
54
+ default: "left";
55
+ values: readonly ["left", "center", "right", "justify"];
56
+ };
57
+ backgroundColor: {
58
+ default: "default";
59
+ };
60
+ url: {
61
+ default: "";
62
+ };
63
+ caption: {
64
+ default: "";
65
+ };
66
+ width: {
67
+ default: 512;
68
+ };
69
+ };
70
+ content: "none";
36
71
  };
37
- }, false>;
72
+ implementation: import("../../../api/blocks/types").TiptapBlockImplementation<{
73
+ type: "image";
74
+ propSchema: {
75
+ textAlignment: {
76
+ default: "left";
77
+ values: readonly ["left", "center", "right", "justify"];
78
+ };
79
+ backgroundColor: {
80
+ default: "default";
81
+ };
82
+ url: {
83
+ default: "";
84
+ };
85
+ caption: {
86
+ default: "";
87
+ };
88
+ width: {
89
+ default: 512;
90
+ };
91
+ };
92
+ content: "none";
93
+ }, any, InlineContentSchema, StyleSchema>;
94
+ };
95
+ export {};
@@ -11,25 +11,36 @@ export declare const bulletListItemPropSchema: {
11
11
  };
12
12
  };
13
13
  export declare const BulletListItem: {
14
- node: import("../../../../api/blockTypes").TipTapNode<"bulletListItem", true, {
15
- domAttributes?: Partial<{
16
- blockContainer: Record<string, string>;
17
- blockGroup: Record<string, string>;
18
- editor: Record<string, string>;
19
- blockContent: Record<string, string>;
20
- inlineContent: Record<string, string>;
21
- }> | undefined;
22
- }, any>;
23
- propSchema: {
24
- backgroundColor: {
25
- default: "default";
26
- };
27
- textColor: {
28
- default: "default";
29
- };
30
- textAlignment: {
31
- default: "left";
32
- values: readonly ["left", "center", "right", "justify"];
14
+ config: {
15
+ type: "bulletListItem";
16
+ content: "inline";
17
+ propSchema: {
18
+ backgroundColor: {
19
+ default: "default";
20
+ };
21
+ textColor: {
22
+ default: "default";
23
+ };
24
+ textAlignment: {
25
+ default: "left";
26
+ values: readonly ["left", "center", "right", "justify"];
27
+ };
33
28
  };
34
29
  };
30
+ implementation: import("../../../../api/blocks/types").TiptapBlockImplementation<{
31
+ type: "bulletListItem";
32
+ content: "inline";
33
+ propSchema: {
34
+ backgroundColor: {
35
+ default: "default";
36
+ };
37
+ textColor: {
38
+ default: "default";
39
+ };
40
+ textAlignment: {
41
+ default: "left";
42
+ values: readonly ["left", "center", "right", "justify"];
43
+ };
44
+ };
45
+ }, any, import("../../../../../..").InlineContentSchema, import("../../../../../..").StyleSchema>;
35
46
  };
@@ -11,25 +11,36 @@ export declare const numberedListItemPropSchema: {
11
11
  };
12
12
  };
13
13
  export declare const NumberedListItem: {
14
- node: import("../../../../api/blockTypes").TipTapNode<"numberedListItem", true, {
15
- domAttributes?: Partial<{
16
- blockContainer: Record<string, string>;
17
- blockGroup: Record<string, string>;
18
- editor: Record<string, string>;
19
- blockContent: Record<string, string>;
20
- inlineContent: Record<string, string>;
21
- }> | undefined;
22
- }, any>;
23
- propSchema: {
24
- backgroundColor: {
25
- default: "default";
26
- };
27
- textColor: {
28
- default: "default";
29
- };
30
- textAlignment: {
31
- default: "left";
32
- values: readonly ["left", "center", "right", "justify"];
14
+ config: {
15
+ type: "numberedListItem";
16
+ content: "inline";
17
+ propSchema: {
18
+ backgroundColor: {
19
+ default: "default";
20
+ };
21
+ textColor: {
22
+ default: "default";
23
+ };
24
+ textAlignment: {
25
+ default: "left";
26
+ values: readonly ["left", "center", "right", "justify"];
27
+ };
33
28
  };
34
29
  };
30
+ implementation: import("../../../../api/blocks/types").TiptapBlockImplementation<{
31
+ type: "numberedListItem";
32
+ content: "inline";
33
+ propSchema: {
34
+ backgroundColor: {
35
+ default: "default";
36
+ };
37
+ textColor: {
38
+ default: "default";
39
+ };
40
+ textAlignment: {
41
+ default: "left";
42
+ values: readonly ["left", "center", "right", "justify"];
43
+ };
44
+ };
45
+ }, any, import("../../../../../..").InlineContentSchema, import("../../../../../..").StyleSchema>;
35
46
  };
@@ -10,35 +10,43 @@ export declare const paragraphPropSchema: {
10
10
  values: readonly ["left", "center", "right", "justify"];
11
11
  };
12
12
  };
13
- export declare const ParagraphBlockContent: import("../../../api/blockTypes").TipTapNode<"paragraph", true, {
14
- domAttributes?: Partial<{
15
- blockContainer: Record<string, string>;
16
- blockGroup: Record<string, string>;
17
- editor: Record<string, string>;
18
- blockContent: Record<string, string>;
19
- inlineContent: Record<string, string>;
20
- }> | undefined;
21
- }, any>;
13
+ export declare const ParagraphBlockContent: import("@tiptap/core").Node<any, any> & {
14
+ name: "paragraph";
15
+ config: {
16
+ content: "inline*";
17
+ };
18
+ };
22
19
  export declare const Paragraph: {
23
- node: import("../../../api/blockTypes").TipTapNode<"paragraph", true, {
24
- domAttributes?: Partial<{
25
- blockContainer: Record<string, string>;
26
- blockGroup: Record<string, string>;
27
- editor: Record<string, string>;
28
- blockContent: Record<string, string>;
29
- inlineContent: Record<string, string>;
30
- }> | undefined;
31
- }, any>;
32
- propSchema: {
33
- backgroundColor: {
34
- default: "default";
35
- };
36
- textColor: {
37
- default: "default";
38
- };
39
- textAlignment: {
40
- default: "left";
41
- values: readonly ["left", "center", "right", "justify"];
20
+ config: {
21
+ type: "paragraph";
22
+ content: "inline";
23
+ propSchema: {
24
+ backgroundColor: {
25
+ default: "default";
26
+ };
27
+ textColor: {
28
+ default: "default";
29
+ };
30
+ textAlignment: {
31
+ default: "left";
32
+ values: readonly ["left", "center", "right", "justify"];
33
+ };
42
34
  };
43
35
  };
36
+ implementation: import("../../../../..").TiptapBlockImplementation<{
37
+ type: "paragraph";
38
+ content: "inline";
39
+ propSchema: {
40
+ backgroundColor: {
41
+ default: "default";
42
+ };
43
+ textColor: {
44
+ default: "default";
45
+ };
46
+ textAlignment: {
47
+ default: "left";
48
+ values: readonly ["left", "center", "right", "justify"];
49
+ };
50
+ };
51
+ }, any, import("../../../../..").InlineContentSchema, import("../../../../..").StyleSchema>;
44
52
  };
@@ -0,0 +1,53 @@
1
+ import { Node } from "@tiptap/core";
2
+ export declare const tablePropSchema: {
3
+ backgroundColor: {
4
+ default: "default";
5
+ };
6
+ textColor: {
7
+ default: "default";
8
+ };
9
+ textAlignment: {
10
+ default: "left";
11
+ values: readonly ["left", "center", "right", "justify"];
12
+ };
13
+ };
14
+ export declare const TableBlockContent: Node<any, any> & {
15
+ name: "table";
16
+ config: {
17
+ content: "tableRow+";
18
+ };
19
+ };
20
+ export declare const Table: {
21
+ config: {
22
+ type: "table";
23
+ content: "table";
24
+ propSchema: {
25
+ backgroundColor: {
26
+ default: "default";
27
+ };
28
+ textColor: {
29
+ default: "default";
30
+ };
31
+ textAlignment: {
32
+ default: "left";
33
+ values: readonly ["left", "center", "right", "justify"];
34
+ };
35
+ };
36
+ };
37
+ implementation: import("../../../../..").TiptapBlockImplementation<{
38
+ type: "table";
39
+ content: "table";
40
+ propSchema: {
41
+ backgroundColor: {
42
+ default: "default";
43
+ };
44
+ textColor: {
45
+ default: "default";
46
+ };
47
+ textAlignment: {
48
+ default: "left";
49
+ values: readonly ["left", "center", "right", "justify"];
50
+ };
51
+ };
52
+ }, any, import("../../../../..").InlineContentSchema, import("../../../../..").StyleSchema>;
53
+ };
@@ -0,0 +1,2 @@
1
+ import { Extension } from "@tiptap/core";
2
+ export declare const TableExtension: Extension<any, any>;
@@ -0,0 +1,12 @@
1
+ import { BlockNoteEditor } from "../../../../BlockNoteEditor";
2
+ import { Block } from "../../api/blocks/types";
3
+ import { InlineContentSchema } from "../../api/inlineContent/types";
4
+ import { StyleSchema } from "../../api/styles/types";
5
+ export declare function createDefaultBlockDOMOutputSpec(blockName: string, htmlTag: string, blockContentHTMLAttributes: Record<string, string>, inlineContentHTMLAttributes: Record<string, string>): {
6
+ dom: HTMLDivElement;
7
+ contentDOM: HTMLElement;
8
+ };
9
+ export declare const defaultBlockToHTML: <BSchema extends Record<string, import("../../api/blocks/types").BlockConfig>, I extends InlineContentSchema, S extends StyleSchema>(block: Block<BSchema, I, S>, editor: BlockNoteEditor<BSchema, I, S>) => {
10
+ dom: HTMLElement;
11
+ contentDOM?: HTMLElement;
12
+ };