@blocknote/core 0.21.0 → 0.23.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 (444) hide show
  1. package/dist/blocknote.js +2320 -1692
  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/tsconfig.tsbuildinfo +1 -1
  7. package/dist/webpack-stats.json +1 -1
  8. package/package.json +3 -3
  9. package/src/api/clipboard/__snapshots__/external/pasteEndOfParagraph.html +96 -0
  10. package/src/api/clipboard/__snapshots__/external/pasteEndOfParagraphText.html +96 -0
  11. package/src/api/clipboard/__snapshots__/external/pasteImage.html +111 -0
  12. package/src/api/clipboard/__snapshots__/external/pasteParagraphInCustomBlock.html +96 -0
  13. package/src/api/clipboard/__snapshots__/external/pasteTable.html +149 -0
  14. package/src/api/clipboard/__snapshots__/external/pasteTableInExistingTable.html +124 -0
  15. package/src/api/clipboard/__snapshots__/internal/basicBlocks.html +1 -0
  16. package/src/api/clipboard/__snapshots__/internal/basicBlocksWithProps.html +1 -0
  17. package/src/api/clipboard/__snapshots__/internal/paragraphInCustomBlock.html +1 -0
  18. package/src/api/clipboard/clipboardExternal.test.ts +161 -0
  19. package/src/api/clipboard/{clipboard.test.ts → clipboardInternal.test.ts} +186 -38
  20. package/src/api/clipboard/testUtil.ts +27 -0
  21. package/src/api/clipboard/toClipboard/copyExtension.ts +1 -0
  22. package/src/api/exporters/html/__snapshots__/pageBreak/basic/external.html +1 -0
  23. package/src/api/exporters/html/__snapshots__/pageBreak/basic/internal.html +1 -0
  24. package/src/api/exporters/html/util/serializeBlocksExternalHTML.ts +7 -1
  25. package/src/api/exporters/html/util/serializeBlocksInternalHTML.ts +3 -1
  26. package/src/api/exporters/markdown/__snapshots__/pageBreak/basic/markdown.md +0 -0
  27. package/src/api/nodeConversions/__snapshots__/nodeConversions.test.ts.snap +16 -0
  28. package/src/api/nodeConversions/nodeToBlock.ts +4 -1
  29. package/src/api/parsers/html/__snapshots__/parse-codeblocks.json +62 -0
  30. package/src/api/parsers/html/parseHTML.test.ts +9 -0
  31. package/src/api/parsers/markdown/__snapshots__/pasted/styled.json +2 -2
  32. package/src/api/testUtil/cases/defaultSchema.ts +15 -1
  33. package/src/api/testUtil/partialBlockTestUtil.ts +4 -1
  34. package/src/blocks/CodeBlockContent/CodeBlockContent.ts +32 -11
  35. package/src/blocks/HeadingBlockContent/HeadingBlockContent.ts +3 -28
  36. package/src/blocks/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.ts +1 -1
  37. package/src/blocks/ListItemBlockContent/CheckListItemBlockContent/CheckListItemBlockContent.ts +4 -16
  38. package/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListIndexingPlugin.ts +11 -3
  39. package/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.ts +26 -6
  40. package/src/blocks/PageBreakBlockContent/PageBreakBlockContent.ts +49 -0
  41. package/src/blocks/PageBreakBlockContent/getPageBreakSlashMenuItems.ts +45 -0
  42. package/src/blocks/PageBreakBlockContent/schema.ts +40 -0
  43. package/src/editor/Block.css +18 -4
  44. package/src/editor/BlockNoteEditor.test.ts +21 -1
  45. package/src/editor/BlockNoteEditor.ts +17 -0
  46. package/src/editor/BlockNoteExtensions.ts +111 -16
  47. package/src/editor/editor.css +28 -13
  48. package/src/editor/transformPasted.ts +57 -4
  49. package/src/extensions/SideMenu/SideMenuPlugin.ts +115 -23
  50. package/src/extensions/SideMenu/dragging.ts +0 -1
  51. package/src/extensions/SuggestionMenu/DefaultSuggestionItem.ts +1 -1
  52. package/src/i18n/locales/ar.ts +6 -0
  53. package/src/i18n/locales/de.ts +6 -0
  54. package/src/i18n/locales/en.ts +6 -0
  55. package/src/i18n/locales/es.ts +6 -0
  56. package/src/i18n/locales/fr.ts +47 -17
  57. package/src/i18n/locales/hr.ts +72 -54
  58. package/src/i18n/locales/index.ts +1 -0
  59. package/src/i18n/locales/is.ts +6 -0
  60. package/src/i18n/locales/it.ts +315 -0
  61. package/src/i18n/locales/ja.ts +6 -0
  62. package/src/i18n/locales/ko.ts +6 -0
  63. package/src/i18n/locales/nl.ts +6 -0
  64. package/src/i18n/locales/pl.ts +6 -0
  65. package/src/i18n/locales/pt.ts +6 -0
  66. package/src/i18n/locales/ru.ts +6 -0
  67. package/src/i18n/locales/vi.ts +6 -0
  68. package/src/i18n/locales/zh.ts +6 -0
  69. package/src/index.ts +3 -0
  70. package/src/schema/blocks/createSpec.ts +1 -1
  71. package/src/schema/blocks/internal.ts +16 -6
  72. package/src/schema/inlineContent/internal.ts +4 -1
  73. package/src/schema/propTypes.ts +41 -18
  74. package/types/src/api/blockManipulation/setupTestEnv.d.ts +8 -0
  75. package/types/src/api/clipboard/clipboardInternal.test.d.ts +1 -0
  76. package/types/src/api/clipboard/testUtil.d.ts +509 -0
  77. package/types/src/api/testUtil/cases/customBlocks.d.ts +8 -0
  78. package/types/src/api/testUtil/cases/customInlineContent.d.ts +8 -0
  79. package/types/src/api/testUtil/cases/customStyles.d.ts +8 -0
  80. package/types/src/api/testUtil/cases/defaultSchema.d.ts +2 -1
  81. package/types/src/blocks/CodeBlockContent/CodeBlockContent.d.ts +2 -0
  82. package/types/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.d.ts +12 -0
  83. package/types/src/blocks/PageBreakBlockContent/PageBreakBlockContent.d.ts +31 -0
  84. package/types/src/blocks/PageBreakBlockContent/getPageBreakSlashMenuItems.d.ts +8 -0
  85. package/types/src/blocks/PageBreakBlockContent/schema.d.ts +86 -0
  86. package/types/src/blocks/defaultBlocks.d.ts +16 -0
  87. package/types/src/editor/BlockNoteEditor.d.ts +15 -0
  88. package/types/src/editor/BlockNoteExtensions.d.ts +2 -0
  89. package/types/src/editor/transformPasted.d.ts +8 -4
  90. package/types/src/extensions/SideMenu/SideMenuPlugin.d.ts +25 -5
  91. package/types/src/extensions/SuggestionMenu/DefaultSuggestionItem.d.ts +1 -1
  92. package/types/src/i18n/locales/de.d.ts +6 -0
  93. package/types/src/i18n/locales/en.d.ts +6 -0
  94. package/types/src/i18n/locales/es.d.ts +6 -0
  95. package/types/src/i18n/locales/hr.d.ts +6 -0
  96. package/types/src/i18n/locales/index.d.ts +1 -0
  97. package/types/src/i18n/locales/it.d.ts +245 -0
  98. package/types/src/index.d.ts +3 -0
  99. package/types/src/schema/propTypes.d.ts +20 -2
  100. package/dist/src/api/blockManipulation/commands/insertBlocks/insertBlocks.js +0 -30
  101. package/dist/src/api/blockManipulation/commands/insertBlocks/insertBlocks.js.map +0 -1
  102. package/dist/src/api/blockManipulation/commands/insertBlocks/insertBlocks.test.js +0 -99
  103. package/dist/src/api/blockManipulation/commands/insertBlocks/insertBlocks.test.js.map +0 -1
  104. package/dist/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.js +0 -97
  105. package/dist/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.js.map +0 -1
  106. package/dist/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.test.js +0 -88
  107. package/dist/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.test.js.map +0 -1
  108. package/dist/src/api/blockManipulation/commands/moveBlocks/moveBlocks.js +0 -219
  109. package/dist/src/api/blockManipulation/commands/moveBlocks/moveBlocks.js.map +0 -1
  110. package/dist/src/api/blockManipulation/commands/moveBlocks/moveBlocks.test.js +0 -175
  111. package/dist/src/api/blockManipulation/commands/moveBlocks/moveBlocks.test.js.map +0 -1
  112. package/dist/src/api/blockManipulation/commands/nestBlock/nestBlock.js +0 -57
  113. package/dist/src/api/blockManipulation/commands/nestBlock/nestBlock.js.map +0 -1
  114. package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.js +0 -5
  115. package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.js.map +0 -1
  116. package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.test.js +0 -31
  117. package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.test.js.map +0 -1
  118. package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.js +0 -71
  119. package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.js.map +0 -1
  120. package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.test.js +0 -157
  121. package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.test.js.map +0 -1
  122. package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.js +0 -27
  123. package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.js.map +0 -1
  124. package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.test.js +0 -67
  125. package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.test.js.map +0 -1
  126. package/dist/src/api/blockManipulation/commands/updateBlock/updateBlock.js +0 -148
  127. package/dist/src/api/blockManipulation/commands/updateBlock/updateBlock.js.map +0 -1
  128. package/dist/src/api/blockManipulation/commands/updateBlock/updateBlock.test.js +0 -252
  129. package/dist/src/api/blockManipulation/commands/updateBlock/updateBlock.test.js.map +0 -1
  130. package/dist/src/api/blockManipulation/getBlock/getBlock.js +0 -56
  131. package/dist/src/api/blockManipulation/getBlock/getBlock.js.map +0 -1
  132. package/dist/src/api/blockManipulation/insertContentAt.js +0 -64
  133. package/dist/src/api/blockManipulation/insertContentAt.js.map +0 -1
  134. package/dist/src/api/blockManipulation/selections/selection.js +0 -149
  135. package/dist/src/api/blockManipulation/selections/selection.js.map +0 -1
  136. package/dist/src/api/blockManipulation/selections/selection.test.js +0 -39
  137. package/dist/src/api/blockManipulation/selections/selection.test.js.map +0 -1
  138. package/dist/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.js +0 -79
  139. package/dist/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.js.map +0 -1
  140. package/dist/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.test.js +0 -33
  141. package/dist/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.test.js.map +0 -1
  142. package/dist/src/api/blockManipulation/setupTestEnv.js +0 -172
  143. package/dist/src/api/blockManipulation/setupTestEnv.js.map +0 -1
  144. package/dist/src/api/clipboard/clipboard.test.js +0 -249
  145. package/dist/src/api/clipboard/clipboard.test.js.map +0 -1
  146. package/dist/src/api/clipboard/fromClipboard/acceptedMIMETypes.js +0 -8
  147. package/dist/src/api/clipboard/fromClipboard/acceptedMIMETypes.js.map +0 -1
  148. package/dist/src/api/clipboard/fromClipboard/fileDropExtension.js +0 -38
  149. package/dist/src/api/clipboard/fromClipboard/fileDropExtension.js.map +0 -1
  150. package/dist/src/api/clipboard/fromClipboard/handleFileInsertion.js +0 -111
  151. package/dist/src/api/clipboard/fromClipboard/handleFileInsertion.js.map +0 -1
  152. package/dist/src/api/clipboard/fromClipboard/handleVSCodePaste.js +0 -25
  153. package/dist/src/api/clipboard/fromClipboard/handleVSCodePaste.js.map +0 -1
  154. package/dist/src/api/clipboard/fromClipboard/pasteExtension.js +0 -57
  155. package/dist/src/api/clipboard/fromClipboard/pasteExtension.js.map +0 -1
  156. package/dist/src/api/clipboard/toClipboard/copyExtension.js +0 -134
  157. package/dist/src/api/clipboard/toClipboard/copyExtension.js.map +0 -1
  158. package/dist/src/api/exporters/html/externalHTMLExporter.js +0 -35
  159. package/dist/src/api/exporters/html/externalHTMLExporter.js.map +0 -1
  160. package/dist/src/api/exporters/html/htmlConversion.test.js +0 -72
  161. package/dist/src/api/exporters/html/htmlConversion.test.js.map +0 -1
  162. package/dist/src/api/exporters/html/internalHTMLSerializer.js +0 -21
  163. package/dist/src/api/exporters/html/internalHTMLSerializer.js.map +0 -1
  164. package/dist/src/api/exporters/html/util/serializeBlocksExternalHTML.js +0 -141
  165. package/dist/src/api/exporters/html/util/serializeBlocksExternalHTML.js.map +0 -1
  166. package/dist/src/api/exporters/html/util/serializeBlocksInternalHTML.js +0 -96
  167. package/dist/src/api/exporters/html/util/serializeBlocksInternalHTML.js.map +0 -1
  168. package/dist/src/api/exporters/markdown/markdownExporter.js +0 -31
  169. package/dist/src/api/exporters/markdown/markdownExporter.js.map +0 -1
  170. package/dist/src/api/exporters/markdown/markdownExporter.test.js +0 -57
  171. package/dist/src/api/exporters/markdown/markdownExporter.test.js.map +0 -1
  172. package/dist/src/api/exporters/markdown/removeUnderlinesRehypePlugin.js +0 -33
  173. package/dist/src/api/exporters/markdown/removeUnderlinesRehypePlugin.js.map +0 -1
  174. package/dist/src/api/exporters/markdown/util/addSpacesToCheckboxesRehypePlugin.js +0 -37
  175. package/dist/src/api/exporters/markdown/util/addSpacesToCheckboxesRehypePlugin.js.map +0 -1
  176. package/dist/src/api/getBlockInfoFromPos.js +0 -165
  177. package/dist/src/api/getBlockInfoFromPos.js.map +0 -1
  178. package/dist/src/api/nodeConversions/blockToNode.js +0 -197
  179. package/dist/src/api/nodeConversions/blockToNode.js.map +0 -1
  180. package/dist/src/api/nodeConversions/fragmentToBlocks.js +0 -50
  181. package/dist/src/api/nodeConversions/fragmentToBlocks.js.map +0 -1
  182. package/dist/src/api/nodeConversions/nodeConversions.test.js +0 -54
  183. package/dist/src/api/nodeConversions/nodeConversions.test.js.map +0 -1
  184. package/dist/src/api/nodeConversions/nodeToBlock.js +0 -316
  185. package/dist/src/api/nodeConversions/nodeToBlock.js.map +0 -1
  186. package/dist/src/api/nodeUtil.js +0 -28
  187. package/dist/src/api/nodeUtil.js.map +0 -1
  188. package/dist/src/api/parsers/html/parseHTML.js +0 -19
  189. package/dist/src/api/parsers/html/parseHTML.js.map +0 -1
  190. package/dist/src/api/parsers/html/parseHTML.test.js +0 -470
  191. package/dist/src/api/parsers/html/parseHTML.test.js.map +0 -1
  192. package/dist/src/api/parsers/html/util/nestedLists.js +0 -106
  193. package/dist/src/api/parsers/html/util/nestedLists.js.map +0 -1
  194. package/dist/src/api/parsers/html/util/nestedLists.test.js +0 -166
  195. package/dist/src/api/parsers/html/util/nestedLists.test.js.map +0 -1
  196. package/dist/src/api/parsers/markdown/parseMarkdown.js +0 -52
  197. package/dist/src/api/parsers/markdown/parseMarkdown.js.map +0 -1
  198. package/dist/src/api/parsers/markdown/parseMarkdown.test.js +0 -112
  199. package/dist/src/api/parsers/markdown/parseMarkdown.test.js.map +0 -1
  200. package/dist/src/api/testUtil/cases/customBlocks.js +0 -313
  201. package/dist/src/api/testUtil/cases/customBlocks.js.map +0 -1
  202. package/dist/src/api/testUtil/cases/customInlineContent.js +0 -91
  203. package/dist/src/api/testUtil/cases/customInlineContent.js.map +0 -1
  204. package/dist/src/api/testUtil/cases/customStyles.js +0 -83
  205. package/dist/src/api/testUtil/cases/customStyles.js.map +0 -1
  206. package/dist/src/api/testUtil/cases/defaultSchema.js +0 -673
  207. package/dist/src/api/testUtil/cases/defaultSchema.js.map +0 -1
  208. package/dist/src/api/testUtil/index.js +0 -2
  209. package/dist/src/api/testUtil/index.js.map +0 -1
  210. package/dist/src/api/testUtil/partialBlockTestUtil.js +0 -114
  211. package/dist/src/api/testUtil/partialBlockTestUtil.js.map +0 -1
  212. package/dist/src/api/testUtil/paste.js +0 -29
  213. package/dist/src/api/testUtil/paste.js.map +0 -1
  214. package/dist/src/blocks/AudioBlockContent/AudioBlockContent.js +0 -104
  215. package/dist/src/blocks/AudioBlockContent/AudioBlockContent.js.map +0 -1
  216. package/dist/src/blocks/AudioBlockContent/parseAudioElement.js +0 -5
  217. package/dist/src/blocks/AudioBlockContent/parseAudioElement.js.map +0 -1
  218. package/dist/src/blocks/CodeBlockContent/CodeBlockContent.js +0 -281
  219. package/dist/src/blocks/CodeBlockContent/CodeBlockContent.js.map +0 -1
  220. package/dist/src/blocks/CodeBlockContent/defaultSupportedLanguages.js +0 -110
  221. package/dist/src/blocks/CodeBlockContent/defaultSupportedLanguages.js.map +0 -1
  222. package/dist/src/blocks/FileBlockContent/FileBlockContent.js +0 -71
  223. package/dist/src/blocks/FileBlockContent/FileBlockContent.js.map +0 -1
  224. package/dist/src/blocks/FileBlockContent/helpers/parse/parseEmbedElement.js +0 -5
  225. package/dist/src/blocks/FileBlockContent/helpers/parse/parseEmbedElement.js.map +0 -1
  226. package/dist/src/blocks/FileBlockContent/helpers/parse/parseFigureElement.js +0 -10
  227. package/dist/src/blocks/FileBlockContent/helpers/parse/parseFigureElement.js.map +0 -1
  228. package/dist/src/blocks/FileBlockContent/helpers/render/createAddFileButton.js +0 -39
  229. package/dist/src/blocks/FileBlockContent/helpers/render/createAddFileButton.js.map +0 -1
  230. package/dist/src/blocks/FileBlockContent/helpers/render/createFileBlockWrapper.js +0 -51
  231. package/dist/src/blocks/FileBlockContent/helpers/render/createFileBlockWrapper.js.map +0 -1
  232. package/dist/src/blocks/FileBlockContent/helpers/render/createFileNameWithIcon.js +0 -17
  233. package/dist/src/blocks/FileBlockContent/helpers/render/createFileNameWithIcon.js.map +0 -1
  234. package/dist/src/blocks/FileBlockContent/helpers/render/createResizableFileBlockWrapper.js +0 -147
  235. package/dist/src/blocks/FileBlockContent/helpers/render/createResizableFileBlockWrapper.js.map +0 -1
  236. package/dist/src/blocks/FileBlockContent/helpers/toExternalHTML/createFigureWithCaption.js +0 -9
  237. package/dist/src/blocks/FileBlockContent/helpers/toExternalHTML/createFigureWithCaption.js.map +0 -1
  238. package/dist/src/blocks/FileBlockContent/helpers/toExternalHTML/createLinkWithCaption.js +0 -11
  239. package/dist/src/blocks/FileBlockContent/helpers/toExternalHTML/createLinkWithCaption.js.map +0 -1
  240. package/dist/src/blocks/FileBlockContent/uploadToTmpFilesDotOrg_DEV_ONLY.js +0 -15
  241. package/dist/src/blocks/FileBlockContent/uploadToTmpFilesDotOrg_DEV_ONLY.js.map +0 -1
  242. package/dist/src/blocks/HeadingBlockContent/HeadingBlockContent.js +0 -145
  243. package/dist/src/blocks/HeadingBlockContent/HeadingBlockContent.js.map +0 -1
  244. package/dist/src/blocks/ImageBlockContent/ImageBlockContent.js +0 -114
  245. package/dist/src/blocks/ImageBlockContent/ImageBlockContent.js.map +0 -1
  246. package/dist/src/blocks/ImageBlockContent/parseImageElement.js +0 -6
  247. package/dist/src/blocks/ImageBlockContent/parseImageElement.js.map +0 -1
  248. package/dist/src/blocks/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.js +0 -113
  249. package/dist/src/blocks/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.js.map +0 -1
  250. package/dist/src/blocks/ListItemBlockContent/CheckListItemBlockContent/CheckListItemBlockContent.js +0 -224
  251. package/dist/src/blocks/ListItemBlockContent/CheckListItemBlockContent/CheckListItemBlockContent.js.map +0 -1
  252. package/dist/src/blocks/ListItemBlockContent/ListItemKeyboardShortcuts.js +0 -45
  253. package/dist/src/blocks/ListItemBlockContent/ListItemKeyboardShortcuts.js.map +0 -1
  254. package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListIndexingPlugin.js +0 -58
  255. package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListIndexingPlugin.js.map +0 -1
  256. package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.js +0 -130
  257. package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.js.map +0 -1
  258. package/dist/src/blocks/ParagraphBlockContent/ParagraphBlockContent.js +0 -52
  259. package/dist/src/blocks/ParagraphBlockContent/ParagraphBlockContent.js.map +0 -1
  260. package/dist/src/blocks/TableBlockContent/TableBlockContent.js +0 -129
  261. package/dist/src/blocks/TableBlockContent/TableBlockContent.js.map +0 -1
  262. package/dist/src/blocks/TableBlockContent/TableExtension.js +0 -64
  263. package/dist/src/blocks/TableBlockContent/TableExtension.js.map +0 -1
  264. package/dist/src/blocks/VideoBlockContent/VideoBlockContent.js +0 -114
  265. package/dist/src/blocks/VideoBlockContent/VideoBlockContent.js.map +0 -1
  266. package/dist/src/blocks/VideoBlockContent/parseVideoElement.js +0 -6
  267. package/dist/src/blocks/VideoBlockContent/parseVideoElement.js.map +0 -1
  268. package/dist/src/blocks/defaultBlockHelpers.js +0 -50
  269. package/dist/src/blocks/defaultBlockHelpers.js.map +0 -1
  270. package/dist/src/blocks/defaultBlockTypeGuards.js +0 -40
  271. package/dist/src/blocks/defaultBlockTypeGuards.js.map +0 -1
  272. package/dist/src/blocks/defaultBlocks.js +0 -50
  273. package/dist/src/blocks/defaultBlocks.js.map +0 -1
  274. package/dist/src/blocks/defaultProps.js +0 -19
  275. package/dist/src/blocks/defaultProps.js.map +0 -1
  276. package/dist/src/editor/BlockNoteEditor.js +0 -751
  277. package/dist/src/editor/BlockNoteEditor.js.map +0 -1
  278. package/dist/src/editor/BlockNoteEditor.test.js +0 -65
  279. package/dist/src/editor/BlockNoteEditor.test.js.map +0 -1
  280. package/dist/src/editor/BlockNoteExtensions.js +0 -192
  281. package/dist/src/editor/BlockNoteExtensions.js.map +0 -1
  282. package/dist/src/editor/BlockNoteSchema.js +0 -38
  283. package/dist/src/editor/BlockNoteSchema.js.map +0 -1
  284. package/dist/src/editor/BlockNoteTipTapEditor.js +0 -169
  285. package/dist/src/editor/BlockNoteTipTapEditor.js.map +0 -1
  286. package/dist/src/editor/cursorPositionTypes.js +0 -2
  287. package/dist/src/editor/cursorPositionTypes.js.map +0 -1
  288. package/dist/src/editor/defaultColors.js +0 -77
  289. package/dist/src/editor/defaultColors.js.map +0 -1
  290. package/dist/src/editor/selectionTypes.js +0 -2
  291. package/dist/src/editor/selectionTypes.js.map +0 -1
  292. package/dist/src/editor/transformPasted.js +0 -79
  293. package/dist/src/editor/transformPasted.js.map +0 -1
  294. package/dist/src/exporter/Exporter.js +0 -36
  295. package/dist/src/exporter/Exporter.js.map +0 -1
  296. package/dist/src/exporter/index.js +0 -3
  297. package/dist/src/exporter/index.js.map +0 -1
  298. package/dist/src/exporter/mapping.js +0 -12
  299. package/dist/src/exporter/mapping.js.map +0 -1
  300. package/dist/src/extensions/BackgroundColor/BackgroundColorExtension.js +0 -30
  301. package/dist/src/extensions/BackgroundColor/BackgroundColorExtension.js.map +0 -1
  302. package/dist/src/extensions/BackgroundColor/BackgroundColorMark.js +0 -39
  303. package/dist/src/extensions/BackgroundColor/BackgroundColorMark.js.map +0 -1
  304. package/dist/src/extensions/FilePanel/FilePanelPlugin.js +0 -131
  305. package/dist/src/extensions/FilePanel/FilePanelPlugin.js.map +0 -1
  306. package/dist/src/extensions/FormattingToolbar/FormattingToolbarPlugin.js +0 -197
  307. package/dist/src/extensions/FormattingToolbar/FormattingToolbarPlugin.js.map +0 -1
  308. package/dist/src/extensions/KeyboardShortcuts/KeyboardShortcutsExtension.js +0 -341
  309. package/dist/src/extensions/KeyboardShortcuts/KeyboardShortcutsExtension.js.map +0 -1
  310. package/dist/src/extensions/LinkToolbar/LinkToolbarPlugin.js +0 -251
  311. package/dist/src/extensions/LinkToolbar/LinkToolbarPlugin.js.map +0 -1
  312. package/dist/src/extensions/LinkToolbar/protocols.js +0 -14
  313. package/dist/src/extensions/LinkToolbar/protocols.js.map +0 -1
  314. package/dist/src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.js +0 -54
  315. package/dist/src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.js.map +0 -1
  316. package/dist/src/extensions/Placeholder/PlaceholderPlugin.js +0 -90
  317. package/dist/src/extensions/Placeholder/PlaceholderPlugin.js.map +0 -1
  318. package/dist/src/extensions/PreviousBlockType/PreviousBlockTypePlugin.js +0 -187
  319. package/dist/src/extensions/PreviousBlockType/PreviousBlockTypePlugin.js.map +0 -1
  320. package/dist/src/extensions/SideMenu/MultipleNodeSelection.js +0 -68
  321. package/dist/src/extensions/SideMenu/MultipleNodeSelection.js.map +0 -1
  322. package/dist/src/extensions/SideMenu/SideMenuPlugin.js +0 -347
  323. package/dist/src/extensions/SideMenu/SideMenuPlugin.js.map +0 -1
  324. package/dist/src/extensions/SideMenu/dragging.js +0 -135
  325. package/dist/src/extensions/SideMenu/dragging.js.map +0 -1
  326. package/dist/src/extensions/SuggestionMenu/DefaultGridSuggestionItem.js +0 -2
  327. package/dist/src/extensions/SuggestionMenu/DefaultGridSuggestionItem.js.map +0 -1
  328. package/dist/src/extensions/SuggestionMenu/DefaultSuggestionItem.js +0 -2
  329. package/dist/src/extensions/SuggestionMenu/DefaultSuggestionItem.js.map +0 -1
  330. package/dist/src/extensions/SuggestionMenu/SuggestionPlugin.js +0 -245
  331. package/dist/src/extensions/SuggestionMenu/SuggestionPlugin.js.map +0 -1
  332. package/dist/src/extensions/SuggestionMenu/getDefaultEmojiPickerItems.js +0 -26
  333. package/dist/src/extensions/SuggestionMenu/getDefaultEmojiPickerItems.js.map +0 -1
  334. package/dist/src/extensions/SuggestionMenu/getDefaultSlashMenuItems.js +0 -241
  335. package/dist/src/extensions/SuggestionMenu/getDefaultSlashMenuItems.js.map +0 -1
  336. package/dist/src/extensions/TableHandles/TableHandlesPlugin.js +0 -579
  337. package/dist/src/extensions/TableHandles/TableHandlesPlugin.js.map +0 -1
  338. package/dist/src/extensions/TextAlignment/TextAlignmentExtension.js +0 -36
  339. package/dist/src/extensions/TextAlignment/TextAlignmentExtension.js.map +0 -1
  340. package/dist/src/extensions/TextColor/TextColorExtension.js +0 -29
  341. package/dist/src/extensions/TextColor/TextColorExtension.js.map +0 -1
  342. package/dist/src/extensions/TextColor/TextColorMark.js +0 -37
  343. package/dist/src/extensions/TextColor/TextColorMark.js.map +0 -1
  344. package/dist/src/extensions/TrailingNode/TrailingNodeExtension.js +0 -58
  345. package/dist/src/extensions/TrailingNode/TrailingNodeExtension.js.map +0 -1
  346. package/dist/src/extensions/UniqueID/UniqueID.js +0 -283
  347. package/dist/src/extensions/UniqueID/UniqueID.js.map +0 -1
  348. package/dist/src/extensions/getDraggableBlockFromElement.js +0 -13
  349. package/dist/src/extensions/getDraggableBlockFromElement.js.map +0 -1
  350. package/dist/src/extensions-shared/UiElementPosition.js +0 -2
  351. package/dist/src/extensions-shared/UiElementPosition.js.map +0 -1
  352. package/dist/src/i18n/dictionary.js +0 -4
  353. package/dist/src/i18n/dictionary.js.map +0 -1
  354. package/dist/src/i18n/locales/ar.js +0 -298
  355. package/dist/src/i18n/locales/ar.js.map +0 -1
  356. package/dist/src/i18n/locales/de.js +0 -313
  357. package/dist/src/i18n/locales/de.js.map +0 -1
  358. package/dist/src/i18n/locales/en.js +0 -314
  359. package/dist/src/i18n/locales/en.js.map +0 -1
  360. package/dist/src/i18n/locales/es.js +0 -312
  361. package/dist/src/i18n/locales/es.js.map +0 -1
  362. package/dist/src/i18n/locales/fr.js +0 -313
  363. package/dist/src/i18n/locales/fr.js.map +0 -1
  364. package/dist/src/i18n/locales/hr.js +0 -308
  365. package/dist/src/i18n/locales/hr.js.map +0 -1
  366. package/dist/src/i18n/locales/index.js +0 -16
  367. package/dist/src/i18n/locales/index.js.map +0 -1
  368. package/dist/src/i18n/locales/is.js +0 -305
  369. package/dist/src/i18n/locales/is.js.map +0 -1
  370. package/dist/src/i18n/locales/ja.js +0 -333
  371. package/dist/src/i18n/locales/ja.js.map +0 -1
  372. package/dist/src/i18n/locales/ko.js +0 -326
  373. package/dist/src/i18n/locales/ko.js.map +0 -1
  374. package/dist/src/i18n/locales/nl.js +0 -313
  375. package/dist/src/i18n/locales/nl.js.map +0 -1
  376. package/dist/src/i18n/locales/pl.js +0 -297
  377. package/dist/src/i18n/locales/pl.js.map +0 -1
  378. package/dist/src/i18n/locales/pt.js +0 -305
  379. package/dist/src/i18n/locales/pt.js.map +0 -1
  380. package/dist/src/i18n/locales/ru.js +0 -340
  381. package/dist/src/i18n/locales/ru.js.map +0 -1
  382. package/dist/src/i18n/locales/vi.js +0 -312
  383. package/dist/src/i18n/locales/vi.js.map +0 -1
  384. package/dist/src/i18n/locales/zh.js +0 -346
  385. package/dist/src/i18n/locales/zh.js.map +0 -1
  386. package/dist/src/index.js +0 -63
  387. package/dist/src/index.js.map +0 -1
  388. package/dist/src/pm-nodes/BlockContainer.js +0 -72
  389. package/dist/src/pm-nodes/BlockContainer.js.map +0 -1
  390. package/dist/src/pm-nodes/BlockGroup.js +0 -43
  391. package/dist/src/pm-nodes/BlockGroup.js.map +0 -1
  392. package/dist/src/pm-nodes/Doc.js +0 -7
  393. package/dist/src/pm-nodes/Doc.js.map +0 -1
  394. package/dist/src/pm-nodes/index.js +0 -4
  395. package/dist/src/pm-nodes/index.js.map +0 -1
  396. package/dist/src/schema/blocks/createSpec.js +0 -126
  397. package/dist/src/schema/blocks/createSpec.js.map +0 -1
  398. package/dist/src/schema/blocks/internal.js +0 -147
  399. package/dist/src/schema/blocks/internal.js.map +0 -1
  400. package/dist/src/schema/blocks/types.js +0 -2
  401. package/dist/src/schema/blocks/types.js.map +0 -1
  402. package/dist/src/schema/index.js +0 -11
  403. package/dist/src/schema/index.js.map +0 -1
  404. package/dist/src/schema/inlineContent/createSpec.js +0 -64
  405. package/dist/src/schema/inlineContent/createSpec.js.map +0 -1
  406. package/dist/src/schema/inlineContent/internal.js +0 -52
  407. package/dist/src/schema/inlineContent/internal.js.map +0 -1
  408. package/dist/src/schema/inlineContent/types.js +0 -10
  409. package/dist/src/schema/inlineContent/types.js.map +0 -1
  410. package/dist/src/schema/propTypes.js +0 -2
  411. package/dist/src/schema/propTypes.js.map +0 -1
  412. package/dist/src/schema/styles/createSpec.js +0 -48
  413. package/dist/src/schema/styles/createSpec.js.map +0 -1
  414. package/dist/src/schema/styles/internal.js +0 -53
  415. package/dist/src/schema/styles/internal.js.map +0 -1
  416. package/dist/src/schema/styles/types.js +0 -2
  417. package/dist/src/schema/styles/types.js.map +0 -1
  418. package/dist/src/util/EventEmitter.js +0 -33
  419. package/dist/src/util/EventEmitter.js.map +0 -1
  420. package/dist/src/util/browser.js +0 -17
  421. package/dist/src/util/browser.js.map +0 -1
  422. package/dist/src/util/combineByGroup.js +0 -20
  423. package/dist/src/util/combineByGroup.js.map +0 -1
  424. package/dist/src/util/esmDependencies.js +0 -35
  425. package/dist/src/util/esmDependencies.js.map +0 -1
  426. package/dist/src/util/string.js +0 -14
  427. package/dist/src/util/string.js.map +0 -1
  428. package/dist/src/util/typescript.js +0 -12
  429. package/dist/src/util/typescript.js.map +0 -1
  430. /package/src/api/clipboard/__snapshots__/{childToParent.html → internal/childToParent.html} +0 -0
  431. /package/src/api/clipboard/__snapshots__/{childrenToNextParent.html → internal/childrenToNextParent.html} +0 -0
  432. /package/src/api/clipboard/__snapshots__/{childrenToNextParentsChildren.html → internal/childrenToNextParentsChildren.html} +0 -0
  433. /package/src/api/clipboard/__snapshots__/{image.html → internal/image.html} +0 -0
  434. /package/src/api/clipboard/__snapshots__/{multipleChildren.html → internal/multipleChildren.html} +0 -0
  435. /package/src/api/clipboard/__snapshots__/{multipleStyledText.html → internal/multipleStyledText.html} +0 -0
  436. /package/src/api/clipboard/__snapshots__/{nestedImage.html → internal/nestedImage.html} +0 -0
  437. /package/src/api/clipboard/__snapshots__/{partialChildToParent.html → internal/partialChildToParent.html} +0 -0
  438. /package/src/api/clipboard/__snapshots__/{styledText.html → internal/styledText.html} +0 -0
  439. /package/src/api/clipboard/__snapshots__/{tableAllCells.html → internal/tableAllCells.html} +0 -0
  440. /package/src/api/clipboard/__snapshots__/{tableCell.html → internal/tableCell.html} +0 -0
  441. /package/src/api/clipboard/__snapshots__/{tableCellText.html → internal/tableCellText.html} +0 -0
  442. /package/src/api/clipboard/__snapshots__/{tableRow.html → internal/tableRow.html} +0 -0
  443. /package/src/api/clipboard/__snapshots__/{unstyledText.html → internal/unstyledText.html} +0 -0
  444. /package/types/src/api/clipboard/{clipboard.test.d.ts → clipboardExternal.test.d.ts} +0 -0
@@ -1,114 +0,0 @@
1
- import UniqueID from "../../extensions/UniqueID/UniqueID.js";
2
- import { isPartialLinkInlineContent, isStyledTextInlineContent, } from "../../schema/inlineContent/types.js";
3
- function textShorthandToStyledText(content = "") {
4
- if (typeof content === "string") {
5
- return [
6
- {
7
- type: "text",
8
- text: content,
9
- styles: {},
10
- },
11
- ];
12
- }
13
- return content;
14
- }
15
- function partialContentToInlineContent(content) {
16
- if (typeof content === "string") {
17
- return textShorthandToStyledText(content);
18
- }
19
- if (Array.isArray(content)) {
20
- return content.flatMap((partialContent) => {
21
- if (typeof partialContent === "string") {
22
- return textShorthandToStyledText(partialContent);
23
- }
24
- else if (isPartialLinkInlineContent(partialContent)) {
25
- return {
26
- ...partialContent,
27
- content: textShorthandToStyledText(partialContent.content),
28
- };
29
- }
30
- else if (isStyledTextInlineContent(partialContent)) {
31
- return partialContent;
32
- }
33
- else {
34
- // custom inline content
35
- return {
36
- props: {},
37
- ...partialContent,
38
- content: partialContentToInlineContent(partialContent.content),
39
- };
40
- }
41
- });
42
- }
43
- else if (content?.type === "tableContent") {
44
- return {
45
- type: "tableContent",
46
- columnWidths: content.columnWidths,
47
- rows: content.rows.map((row) => ({
48
- ...row,
49
- cells: row.cells.map((cell) => partialContentToInlineContent(cell)),
50
- })),
51
- };
52
- }
53
- return content;
54
- }
55
- export function partialBlocksToBlocksForTesting(schema, partialBlocks) {
56
- return partialBlocks.map((partialBlock) => partialBlockToBlockForTesting(schema.blockSchema, partialBlock));
57
- }
58
- export function partialBlockToBlockForTesting(schema, partialBlock) {
59
- const contentType = schema[partialBlock.type].content;
60
- const withDefaults = {
61
- id: "",
62
- type: partialBlock.type,
63
- props: {},
64
- content: contentType === "inline"
65
- ? []
66
- : contentType === "table"
67
- ? { type: "tableContent", columnWidths: [], rows: [] }
68
- : undefined,
69
- children: [],
70
- ...partialBlock,
71
- };
72
- Object.entries(schema[partialBlock.type].propSchema).forEach(([propKey, propValue]) => {
73
- if (withDefaults.props[propKey] === undefined) {
74
- withDefaults.props[propKey] = propValue.default;
75
- }
76
- });
77
- if (contentType === "inline") {
78
- const content = withDefaults.content;
79
- withDefaults.content = partialContentToInlineContent(content);
80
- }
81
- else if (contentType === "table") {
82
- const content = withDefaults.content;
83
- withDefaults.content = {
84
- type: "tableContent",
85
- columnWidths: content?.columnWidths ||
86
- content?.rows[0]?.cells.map(() => undefined) ||
87
- [],
88
- rows: content?.rows.map((row) => ({
89
- cells: row.cells.map((cell) => partialContentToInlineContent(cell)),
90
- })) || [],
91
- };
92
- }
93
- return {
94
- ...withDefaults,
95
- content: partialContentToInlineContent(withDefaults.content),
96
- children: withDefaults.children.map((c) => {
97
- return partialBlockToBlockForTesting(schema, c);
98
- }),
99
- };
100
- }
101
- export function addIdsToBlock(block) {
102
- if (!block.id) {
103
- block.id = UniqueID.options.generateID();
104
- }
105
- if (block.children) {
106
- addIdsToBlocks(block.children);
107
- }
108
- }
109
- export function addIdsToBlocks(blocks) {
110
- for (const block of blocks) {
111
- addIdsToBlock(block);
112
- }
113
- }
114
- //# sourceMappingURL=partialBlockTestUtil.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"partialBlockTestUtil.js","sourceRoot":"","sources":["../../../../src/api/testUtil/partialBlockTestUtil.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import { Slice } from "@tiptap/pm/model";
2
- import * as pmView from "@tiptap/pm/view";
3
- function sliceSingleNode(slice) {
4
- return slice.openStart === 0 &&
5
- slice.openEnd === 0 &&
6
- slice.content.childCount === 1
7
- ? slice.content.firstChild
8
- : null;
9
- }
10
- // This function is a copy of the `doPaste` function from `@tiptap/pm/view`,
11
- // but made to work in a JSDOM environment. To do this, the `tr.scrollIntoView`
12
- // call has been removed.
13
- // https://github.com/ProseMirror/prosemirror-view/blob/17b508f618c944c54776f8ddac45edcb49970796/src/input.ts#L624
14
- export function doPaste(view, text, html, preferPlain, event) {
15
- const slice = pmView.__parseFromClipboard(view, text, html, preferPlain, view.state.selection.$from);
16
- if (view.someProp("handlePaste", (f) => f(view, event, slice || Slice.empty))) {
17
- return true;
18
- }
19
- if (!slice) {
20
- return false;
21
- }
22
- const singleNode = sliceSingleNode(slice);
23
- const tr = singleNode
24
- ? view.state.tr.replaceSelectionWith(singleNode, preferPlain)
25
- : view.state.tr.replaceSelection(slice);
26
- view.dispatch(tr.setMeta("paste", true).setMeta("uiEvent", "paste"));
27
- return true;
28
- }
29
- //# sourceMappingURL=paste.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paste.js","sourceRoot":"","sources":["../../../../src/api/testUtil/paste.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,SAAS,eAAe,CAAC,KAAY;IACnC,OAAO,KAAK,CAAC,SAAS,KAAK,CAAC;QAC1B,KAAK,CAAC,OAAO,KAAK,CAAC;QACnB,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,CAAC;QAC9B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU;QAC1B,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,4EAA4E;AAC5E,+EAA+E;AAC/E,yBAAyB;AACzB,kHAAkH;AAClH,MAAM,UAAU,OAAO,CACrB,IAAgB,EAChB,IAAY,EACZ,IAAmB,EACnB,WAAoB,EACpB,KAAqB;IAErB,MAAM,KAAK,GAAI,MAAc,CAAC,oBAAoB,CAChD,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAC3B,CAAC;IACF,IACE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EACzE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,UAAU;QACnB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC;QAC7D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,104 +0,0 @@
1
- import { createBlockSpec, } from "../../schema/index.js";
2
- import { defaultProps } from "../defaultProps.js";
3
- import { parseFigureElement } from "../FileBlockContent/helpers/parse/parseFigureElement.js";
4
- import { createFileBlockWrapper } from "../FileBlockContent/helpers/render/createFileBlockWrapper.js";
5
- import { createFigureWithCaption } from "../FileBlockContent/helpers/toExternalHTML/createFigureWithCaption.js";
6
- import { createLinkWithCaption } from "../FileBlockContent/helpers/toExternalHTML/createLinkWithCaption.js";
7
- import { parseAudioElement } from "./parseAudioElement.js";
8
- export const FILE_AUDIO_ICON_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M2 16.0001H5.88889L11.1834 20.3319C11.2727 20.405 11.3846 20.4449 11.5 20.4449C11.7761 20.4449 12 20.2211 12 19.9449V4.05519C12 3.93977 11.9601 3.8279 11.887 3.73857C11.7121 3.52485 11.3971 3.49335 11.1834 3.66821L5.88889 8.00007H2C1.44772 8.00007 1 8.44778 1 9.00007V15.0001C1 15.5524 1.44772 16.0001 2 16.0001ZM23 12C23 15.292 21.5539 18.2463 19.2622 20.2622L17.8445 18.8444C19.7758 17.1937 21 14.7398 21 12C21 9.26016 19.7758 6.80629 17.8445 5.15557L19.2622 3.73779C21.5539 5.75368 23 8.70795 23 12ZM18 12C18 10.0883 17.106 8.38548 15.7133 7.28673L14.2842 8.71584C15.3213 9.43855 16 10.64 16 12C16 13.36 15.3213 14.5614 14.2842 15.2841L15.7133 16.7132C17.106 15.6145 18 13.9116 18 12Z"></path></svg>';
9
- export const audioPropSchema = {
10
- backgroundColor: defaultProps.backgroundColor,
11
- // File name.
12
- name: {
13
- default: "",
14
- },
15
- // File url.
16
- url: {
17
- default: "",
18
- },
19
- // File caption.
20
- caption: {
21
- default: "",
22
- },
23
- showPreview: {
24
- default: true,
25
- },
26
- };
27
- export const audioBlockConfig = {
28
- type: "audio",
29
- propSchema: audioPropSchema,
30
- content: "none",
31
- isFileBlock: true,
32
- fileBlockAccept: ["audio/*"],
33
- };
34
- export const audioRender = (block, editor) => {
35
- const icon = document.createElement("div");
36
- icon.innerHTML = FILE_AUDIO_ICON_SVG;
37
- const audio = document.createElement("audio");
38
- audio.className = "bn-audio";
39
- if (editor.resolveFileUrl) {
40
- editor.resolveFileUrl(block.props.url).then((downloadUrl) => {
41
- audio.src = downloadUrl;
42
- });
43
- }
44
- else {
45
- audio.src = block.props.url;
46
- }
47
- audio.controls = true;
48
- audio.contentEditable = "false";
49
- audio.draggable = false;
50
- return createFileBlockWrapper(block, editor, { dom: audio }, editor.dictionary.file_blocks.audio.add_button_text, icon.firstElementChild);
51
- };
52
- export const audioParse = (element) => {
53
- if (element.tagName === "AUDIO") {
54
- return parseAudioElement(element);
55
- }
56
- if (element.tagName === "FIGURE") {
57
- const parsedFigure = parseFigureElement(element, "audio");
58
- if (!parsedFigure) {
59
- return undefined;
60
- }
61
- const { targetElement, caption } = parsedFigure;
62
- return {
63
- ...parseAudioElement(targetElement),
64
- caption,
65
- };
66
- }
67
- return undefined;
68
- };
69
- export const audioToExternalHTML = (block) => {
70
- if (!block.props.url) {
71
- const div = document.createElement("p");
72
- div.textContent = "Add audio";
73
- return {
74
- dom: div,
75
- };
76
- }
77
- let audio;
78
- if (block.props.showPreview) {
79
- audio = document.createElement("audio");
80
- audio.src = block.props.url;
81
- }
82
- else {
83
- audio = document.createElement("a");
84
- audio.href = block.props.url;
85
- audio.textContent = block.props.name || block.props.url;
86
- }
87
- if (block.props.caption) {
88
- if (block.props.showPreview) {
89
- return createFigureWithCaption(audio, block.props.caption);
90
- }
91
- else {
92
- return createLinkWithCaption(audio, block.props.caption);
93
- }
94
- }
95
- return {
96
- dom: audio,
97
- };
98
- };
99
- export const AudioBlock = createBlockSpec(audioBlockConfig, {
100
- render: audioRender,
101
- parse: audioParse,
102
- toExternalHTML: audioToExternalHTML,
103
- });
104
- //# sourceMappingURL=AudioBlockContent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AudioBlockContent.js","sourceRoot":"","sources":["../../../../src/blocks/AudioBlockContent/AudioBlockContent.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export const parseAudioElement = (audioElement) => {
2
- const url = audioElement.src || undefined;
3
- return { url };
4
- };
5
- //# sourceMappingURL=parseAudioElement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseAudioElement.js","sourceRoot":"","sources":["../../../../src/blocks/AudioBlockContent/parseAudioElement.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,YAA8B,EAAE,EAAE;IAClE,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,IAAI,SAAS,CAAC;IAE1C,OAAO,EAAE,GAAG,EAAE,CAAC;AACjB,CAAC,CAAC"}
@@ -1,281 +0,0 @@
1
- import { InputRule, isTextSelection } from "@tiptap/core";
2
- import { TextSelection } from "@tiptap/pm/state";
3
- import { createHighlightPlugin } from "prosemirror-highlight";
4
- import { createParser } from "prosemirror-highlight/shiki";
5
- import { bundledLanguagesInfo, createHighlighter, } from "shiki";
6
- import { createBlockSpecFromStronglyTypedTiptapNode, createStronglyTypedTiptapNode, } from "../../schema/index.js";
7
- import { createDefaultBlockDOMOutputSpec } from "../defaultBlockHelpers.js";
8
- import { defaultSupportedLanguages, } from "./defaultSupportedLanguages.js";
9
- export const defaultCodeBlockPropSchema = {
10
- language: {
11
- default: "javascript",
12
- values: [...defaultSupportedLanguages.map((lang) => lang.id)],
13
- },
14
- };
15
- const CodeBlockContent = createStronglyTypedTiptapNode({
16
- name: "codeBlock",
17
- content: "inline*",
18
- group: "blockContent",
19
- marks: "",
20
- code: true,
21
- defining: true,
22
- addOptions() {
23
- return {
24
- defaultLanguage: "javascript",
25
- indentLineWithTab: true,
26
- supportedLanguages: defaultSupportedLanguages,
27
- };
28
- },
29
- addAttributes() {
30
- const supportedLanguages = this.options
31
- .supportedLanguages;
32
- return {
33
- language: {
34
- default: this.options.defaultLanguage,
35
- parseHTML: (inputElement) => {
36
- let element = inputElement;
37
- let language = null;
38
- if (element?.tagName === "DIV" &&
39
- element?.dataset.contentType === "codeBlock") {
40
- element = element.children[0];
41
- }
42
- if (element?.tagName === "PRE") {
43
- element = element?.children[0];
44
- }
45
- const dataLanguage = element?.getAttribute("data-language");
46
- if (dataLanguage) {
47
- language = dataLanguage.toLowerCase();
48
- }
49
- else {
50
- const classNames = [...(element?.className.split(" ") || [])];
51
- const languages = classNames
52
- .filter((className) => className.startsWith("language-"))
53
- .map((className) => className.replace("language-", ""));
54
- const [classLanguage] = languages;
55
- language = classLanguage.toLowerCase();
56
- }
57
- if (!language) {
58
- return null;
59
- }
60
- return (supportedLanguages.find(({ match }) => {
61
- return match.includes(language);
62
- })?.id || this.options.defaultLanguage);
63
- },
64
- renderHTML: (attributes) => {
65
- return attributes.language && attributes.language !== "text"
66
- ? {
67
- class: `language-${attributes.language}`,
68
- }
69
- : {};
70
- },
71
- },
72
- };
73
- },
74
- parseHTML() {
75
- return [
76
- {
77
- tag: "div[data-content-type=" + this.name + "]",
78
- },
79
- {
80
- tag: "pre",
81
- preserveWhitespace: "full",
82
- },
83
- ];
84
- },
85
- renderHTML({ HTMLAttributes }) {
86
- const pre = document.createElement("pre");
87
- const { dom, contentDOM } = createDefaultBlockDOMOutputSpec(this.name, "code", this.options.domAttributes?.blockContent || {}, {
88
- ...(this.options.domAttributes?.inlineContent || {}),
89
- ...HTMLAttributes,
90
- });
91
- dom.removeChild(contentDOM);
92
- dom.appendChild(pre);
93
- pre.appendChild(contentDOM);
94
- return {
95
- dom,
96
- contentDOM,
97
- };
98
- },
99
- addNodeView() {
100
- const supportedLanguages = this.options
101
- .supportedLanguages;
102
- return ({ editor, node, getPos, HTMLAttributes }) => {
103
- const pre = document.createElement("pre");
104
- const select = document.createElement("select");
105
- const selectWrapper = document.createElement("div");
106
- const { dom, contentDOM } = createDefaultBlockDOMOutputSpec(this.name, "code", {
107
- ...(this.options.domAttributes?.blockContent || {}),
108
- ...HTMLAttributes,
109
- }, this.options.domAttributes?.inlineContent || {});
110
- const handleLanguageChange = (event) => {
111
- const language = event.target.value;
112
- editor.commands.command(({ tr }) => {
113
- tr.setNodeAttribute(getPos(), "language", language);
114
- return true;
115
- });
116
- };
117
- supportedLanguages.forEach(({ id, name }) => {
118
- const option = document.createElement("option");
119
- option.value = id;
120
- option.text = name;
121
- select.appendChild(option);
122
- });
123
- selectWrapper.contentEditable = "false";
124
- select.value = node.attrs.language || this.options.defaultLanguage;
125
- dom.removeChild(contentDOM);
126
- dom.appendChild(selectWrapper);
127
- dom.appendChild(pre);
128
- pre.appendChild(contentDOM);
129
- selectWrapper.appendChild(select);
130
- select.addEventListener("change", handleLanguageChange);
131
- return {
132
- dom,
133
- contentDOM,
134
- update: (newNode) => {
135
- if (newNode.type !== this.type) {
136
- return false;
137
- }
138
- return true;
139
- },
140
- destroy: () => {
141
- select.removeEventListener("change", handleLanguageChange);
142
- },
143
- };
144
- };
145
- },
146
- addProseMirrorPlugins() {
147
- let highlighter;
148
- let parser;
149
- const supportedLanguages = this.options
150
- .supportedLanguages;
151
- const lazyParser = (options) => {
152
- if (!highlighter) {
153
- return createHighlighter({
154
- themes: ["github-dark"],
155
- langs: [],
156
- }).then((createdHighlighter) => {
157
- highlighter = createdHighlighter;
158
- });
159
- }
160
- const language = options.language;
161
- if (language &&
162
- language !== "text" &&
163
- !highlighter.getLoadedLanguages().includes(language) &&
164
- supportedLanguages.find(({ id }) => id === language) &&
165
- bundledLanguagesInfo.find(({ id }) => id === language)) {
166
- return highlighter.loadLanguage(language);
167
- }
168
- if (!parser) {
169
- parser = createParser(highlighter);
170
- }
171
- return parser(options);
172
- };
173
- const shikiLazyPlugin = createHighlightPlugin({
174
- parser: lazyParser,
175
- languageExtractor: (node) => node.attrs.language,
176
- nodeTypes: [this.name],
177
- });
178
- return [shikiLazyPlugin];
179
- },
180
- addInputRules() {
181
- const supportedLanguages = this.options
182
- .supportedLanguages;
183
- return [
184
- new InputRule({
185
- find: /^```(.*?)\s$/,
186
- handler: ({ state, range, match }) => {
187
- const $start = state.doc.resolve(range.from);
188
- const languageName = match[1].trim();
189
- const attributes = {
190
- language: supportedLanguages.find(({ match }) => {
191
- return match.includes(languageName);
192
- })?.id || this.options.defaultLanguage,
193
- };
194
- if (!$start
195
- .node(-1)
196
- .canReplaceWith($start.index(-1), $start.indexAfter(-1), this.type)) {
197
- return null;
198
- }
199
- state.tr
200
- .delete(range.from, range.to)
201
- .setBlockType(range.from, range.from, this.type, attributes)
202
- .setSelection(TextSelection.create(state.tr.doc, range.from));
203
- return;
204
- },
205
- }),
206
- ];
207
- },
208
- addKeyboardShortcuts() {
209
- return {
210
- Delete: ({ editor }) => {
211
- const { selection } = editor.state;
212
- const { $from } = selection;
213
- // When inside empty codeblock, on `DELETE` key press, delete the codeblock
214
- if (editor.isActive(this.name) &&
215
- !$from.parent.textContent &&
216
- isTextSelection(selection)) {
217
- // Get the start position of the codeblock for node selection
218
- const from = $from.pos - $from.parentOffset - 2;
219
- editor.chain().setNodeSelection(from).deleteSelection().run();
220
- return true;
221
- }
222
- return false;
223
- },
224
- Tab: ({ editor }) => {
225
- if (!this.options.indentLineWithTab) {
226
- return false;
227
- }
228
- if (editor.isActive(this.name)) {
229
- editor.commands.insertContent(" ");
230
- return true;
231
- }
232
- return false;
233
- },
234
- Enter: ({ editor }) => {
235
- const { $from } = editor.state.selection;
236
- if (!editor.isActive(this.name)) {
237
- return false;
238
- }
239
- const isAtEnd = $from.parentOffset === $from.parent.nodeSize - 2;
240
- const endsWithDoubleNewline = $from.parent.textContent.endsWith("\n\n");
241
- if (!isAtEnd || !endsWithDoubleNewline) {
242
- editor.commands.insertContent("\n");
243
- return true;
244
- }
245
- return editor
246
- .chain()
247
- .command(({ tr }) => {
248
- tr.delete($from.pos - 2, $from.pos);
249
- return true;
250
- })
251
- .exitCode()
252
- .run();
253
- },
254
- "Shift-Enter": ({ editor }) => {
255
- const { $from } = editor.state.selection;
256
- if (!editor.isActive(this.name)) {
257
- return false;
258
- }
259
- editor
260
- .chain()
261
- .insertContentAt($from.pos - $from.parentOffset + $from.parent.nodeSize, {
262
- type: "paragraph",
263
- })
264
- .run();
265
- return true;
266
- },
267
- };
268
- },
269
- });
270
- export const CodeBlock = createBlockSpecFromStronglyTypedTiptapNode(CodeBlockContent, defaultCodeBlockPropSchema);
271
- export function customizeCodeBlock(options) {
272
- return createBlockSpecFromStronglyTypedTiptapNode(CodeBlockContent.configure(options), {
273
- language: {
274
- default: options.defaultLanguage ||
275
- defaultCodeBlockPropSchema.language.default,
276
- values: options.supportedLanguages?.map((lang) => lang.id) ||
277
- defaultCodeBlockPropSchema.language.values,
278
- },
279
- });
280
- }
281
- //# sourceMappingURL=CodeBlockContent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CodeBlockContent.js","sourceRoot":"","sources":["../../../../src/blocks/CodeBlockContent/CodeBlockContent.ts"],"names":[],"mappings":"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"}