@blocknote/core 0.20.0 → 0.22.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 (456) hide show
  1. package/dist/blocknote.js +1602 -1569
  2. package/dist/blocknote.js.map +1 -1
  3. package/dist/blocknote.umd.cjs +6 -6
  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/blockManipulation/commands/moveBlocks/moveBlocks.test.ts +3 -3
  10. package/src/api/blockManipulation/commands/moveBlocks/moveBlocks.ts +1 -3
  11. package/src/api/blockManipulation/commands/splitBlock/splitBlock.test.ts +1 -1
  12. package/src/api/blockManipulation/selections/selection.ts +5 -5
  13. package/src/api/clipboard/__snapshots__/external/pasteEndOfParagraph.html +96 -0
  14. package/src/api/clipboard/__snapshots__/external/pasteEndOfParagraphText.html +96 -0
  15. package/src/api/clipboard/__snapshots__/external/pasteImage.html +111 -0
  16. package/src/api/clipboard/__snapshots__/external/pasteParagraphInCustomBlock.html +96 -0
  17. package/src/api/clipboard/__snapshots__/external/pasteTable.html +149 -0
  18. package/src/api/clipboard/__snapshots__/external/pasteTableInExistingTable.html +124 -0
  19. package/src/api/clipboard/__snapshots__/internal/paragraphInCustomBlock.html +1 -0
  20. package/src/api/clipboard/__snapshots__/internal/tableAllCells.html +1 -0
  21. package/src/api/clipboard/__snapshots__/internal/tableCell.html +1 -0
  22. package/src/api/clipboard/__snapshots__/internal/tableRow.html +1 -0
  23. package/src/api/clipboard/clipboardExternal.test.ts +161 -0
  24. package/src/api/clipboard/{clipboard.test.ts → clipboardInternal.test.ts} +66 -40
  25. package/src/api/clipboard/fromClipboard/handleFileInsertion.ts +1 -1
  26. package/src/api/clipboard/fromClipboard/handleVSCodePaste.ts +7 -14
  27. package/src/api/clipboard/fromClipboard/pasteExtension.ts +6 -6
  28. package/src/api/clipboard/testUtil.ts +27 -0
  29. package/src/api/clipboard/toClipboard/copyExtension.ts +8 -2
  30. package/src/api/exporters/html/__snapshots__/file/basic/internal.html +1 -1
  31. package/src/api/exporters/html/__snapshots__/file/nested/internal.html +1 -1
  32. package/src/api/exporters/html/__snapshots__/file/noCaption/internal.html +1 -1
  33. package/src/api/exporters/html/__snapshots__/file/noName/internal.html +1 -1
  34. package/src/api/exporters/html/__snapshots__/image/basic/internal.html +1 -1
  35. package/src/api/exporters/html/__snapshots__/image/nested/internal.html +1 -1
  36. package/src/api/exporters/html/__snapshots__/image/noCaption/internal.html +1 -1
  37. package/src/api/exporters/html/__snapshots__/image/noName/internal.html +1 -1
  38. package/src/api/exporters/html/__snapshots__/image/noPreview/internal.html +1 -1
  39. package/src/api/exporters/html/__snapshots__/simpleImage/basic/external.html +1 -1
  40. package/src/api/exporters/html/__snapshots__/simpleImage/basic/internal.html +1 -1
  41. package/src/api/exporters/html/__snapshots__/simpleImage/nested/external.html +1 -1
  42. package/src/api/exporters/html/__snapshots__/simpleImage/nested/internal.html +1 -1
  43. package/src/api/exporters/html/__snapshots__/simpleImage/noCaption/external.html +1 -1
  44. package/src/api/exporters/html/__snapshots__/simpleImage/noCaption/internal.html +1 -1
  45. package/src/api/exporters/html/__snapshots__/simpleImage/noName/external.html +1 -1
  46. package/src/api/exporters/html/__snapshots__/simpleImage/noName/internal.html +1 -1
  47. package/src/api/exporters/html/__snapshots__/simpleImage/noPreview/external.html +1 -1
  48. package/src/api/exporters/html/__snapshots__/simpleImage/noPreview/internal.html +1 -1
  49. package/src/api/exporters/html/util/serializeBlocksExternalHTML.ts +7 -1
  50. package/src/api/exporters/html/util/serializeBlocksInternalHTML.ts +3 -1
  51. package/src/api/exporters/markdown/__snapshots__/simpleImage/basic/markdown.md +1 -1
  52. package/src/api/exporters/markdown/__snapshots__/simpleImage/nested/markdown.md +2 -2
  53. package/src/api/exporters/markdown/__snapshots__/simpleImage/noCaption/markdown.md +1 -1
  54. package/src/api/exporters/markdown/__snapshots__/simpleImage/noName/markdown.md +1 -1
  55. package/src/api/nodeConversions/nodeToBlock.ts +4 -1
  56. package/src/api/parsers/markdown/__snapshots__/pasted/styled.json +2 -2
  57. package/src/api/parsers/markdown/parseMarkdown.test.ts +5 -7
  58. package/src/api/testUtil/partialBlockTestUtil.ts +4 -1
  59. package/src/blocks/AudioBlockContent/AudioBlockContent.ts +13 -14
  60. package/src/blocks/FileBlockContent/FileBlockContent.ts +5 -12
  61. package/src/blocks/FileBlockContent/helpers/parse/parseEmbedElement.ts +5 -0
  62. package/src/blocks/FileBlockContent/helpers/parse/parseFigureElement.ts +16 -0
  63. package/src/blocks/FileBlockContent/helpers/render/createAddFileButton.ts +63 -0
  64. package/src/blocks/FileBlockContent/helpers/render/createFileBlockWrapper.ts +80 -0
  65. package/src/blocks/FileBlockContent/helpers/render/createFileNameWithIcon.ts +24 -0
  66. package/src/blocks/FileBlockContent/helpers/render/createResizableFileBlockWrapper.ts +204 -0
  67. package/src/blocks/FileBlockContent/helpers/toExternalHTML/createFigureWithCaption.ts +13 -0
  68. package/src/blocks/FileBlockContent/helpers/toExternalHTML/createLinkWithCaption.ts +15 -0
  69. package/src/blocks/HeadingBlockContent/HeadingBlockContent.ts +3 -19
  70. package/src/blocks/ImageBlockContent/ImageBlockContent.ts +20 -28
  71. package/src/blocks/ListItemBlockContent/CheckListItemBlockContent/CheckListItemBlockContent.ts +3 -15
  72. package/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListIndexingPlugin.ts +11 -3
  73. package/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.ts +25 -5
  74. package/src/blocks/VideoBlockContent/VideoBlockContent.ts +20 -27
  75. package/src/editor/Block.css +38 -54
  76. package/src/editor/BlockNoteEditor.test.ts +21 -1
  77. package/src/editor/BlockNoteEditor.ts +14 -7
  78. package/src/editor/BlockNoteExtensions.ts +7 -8
  79. package/src/editor/editor.css +7 -6
  80. package/src/editor/transformPasted.ts +57 -4
  81. package/src/extensions/LinkToolbar/protocols.ts +13 -0
  82. package/src/extensions/Placeholder/PlaceholderPlugin.ts +6 -6
  83. package/src/extensions/SideMenu/SideMenuPlugin.ts +5 -1
  84. package/src/extensions/SideMenu/dragging.ts +3 -0
  85. package/src/extensions/SuggestionMenu/SuggestionPlugin.ts +3 -6
  86. package/src/extensions/TableHandles/TableHandlesPlugin.ts +15 -3
  87. package/src/index.ts +9 -2
  88. package/src/schema/blocks/createSpec.ts +1 -1
  89. package/src/schema/blocks/internal.ts +16 -6
  90. package/src/schema/inlineContent/createSpec.ts +2 -2
  91. package/src/schema/inlineContent/internal.ts +4 -1
  92. package/src/schema/propTypes.ts +41 -18
  93. package/types/src/api/blockManipulation/setupTestEnv.d.ts +8 -0
  94. package/types/src/api/clipboard/clipboardInternal.test.d.ts +1 -0
  95. package/types/src/api/clipboard/fromClipboard/handleVSCodePaste.d.ts +2 -3
  96. package/types/src/api/clipboard/fromClipboard/pasteExtension.d.ts +1 -3
  97. package/types/src/api/clipboard/testUtil.d.ts +509 -0
  98. package/types/src/api/testUtil/cases/customBlocks.d.ts +8 -0
  99. package/types/src/api/testUtil/cases/customInlineContent.d.ts +8 -0
  100. package/types/src/api/testUtil/cases/customStyles.d.ts +8 -0
  101. package/types/src/blocks/AudioBlockContent/AudioBlockContent.d.ts +2 -5
  102. package/types/src/blocks/FileBlockContent/FileBlockContent.d.ts +2 -5
  103. package/types/src/blocks/FileBlockContent/helpers/parse/parseEmbedElement.d.ts +3 -0
  104. package/types/src/blocks/FileBlockContent/helpers/parse/parseFigureElement.d.ts +4 -0
  105. package/types/src/blocks/FileBlockContent/helpers/render/createAddFileButton.d.ts +6 -0
  106. package/types/src/blocks/FileBlockContent/helpers/render/createFileBlockWrapper.d.ts +9 -0
  107. package/types/src/blocks/FileBlockContent/helpers/render/createFileNameWithIcon.d.ts +6 -0
  108. package/types/src/blocks/FileBlockContent/helpers/render/createResizableFileBlockWrapper.d.ts +9 -0
  109. package/types/src/blocks/FileBlockContent/helpers/toExternalHTML/createFigureWithCaption.d.ts +3 -0
  110. package/types/src/blocks/FileBlockContent/helpers/toExternalHTML/createLinkWithCaption.d.ts +3 -0
  111. package/types/src/blocks/ImageBlockContent/ImageBlockContent.d.ts +2 -5
  112. package/types/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.d.ts +12 -0
  113. package/types/src/blocks/VideoBlockContent/VideoBlockContent.d.ts +2 -5
  114. package/types/src/blocks/defaultBlocks.d.ts +16 -0
  115. package/types/src/editor/BlockNoteEditor.d.ts +6 -4
  116. package/types/src/editor/transformPasted.d.ts +8 -4
  117. package/types/src/extensions/LinkToolbar/protocols.d.ts +2 -0
  118. package/types/src/index.d.ts +9 -2
  119. package/types/src/schema/propTypes.d.ts +20 -2
  120. package/dist/src/api/blockManipulation/commands/insertBlocks/insertBlocks.js +0 -30
  121. package/dist/src/api/blockManipulation/commands/insertBlocks/insertBlocks.js.map +0 -1
  122. package/dist/src/api/blockManipulation/commands/insertBlocks/insertBlocks.test.js +0 -99
  123. package/dist/src/api/blockManipulation/commands/insertBlocks/insertBlocks.test.js.map +0 -1
  124. package/dist/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.js +0 -97
  125. package/dist/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.js.map +0 -1
  126. package/dist/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.test.js +0 -88
  127. package/dist/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.test.js.map +0 -1
  128. package/dist/src/api/blockManipulation/commands/moveBlocks/moveBlocks.js +0 -219
  129. package/dist/src/api/blockManipulation/commands/moveBlocks/moveBlocks.js.map +0 -1
  130. package/dist/src/api/blockManipulation/commands/moveBlocks/moveBlocks.test.js +0 -175
  131. package/dist/src/api/blockManipulation/commands/moveBlocks/moveBlocks.test.js.map +0 -1
  132. package/dist/src/api/blockManipulation/commands/nestBlock/nestBlock.js +0 -57
  133. package/dist/src/api/blockManipulation/commands/nestBlock/nestBlock.js.map +0 -1
  134. package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.js +0 -5
  135. package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.js.map +0 -1
  136. package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.test.js +0 -31
  137. package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.test.js.map +0 -1
  138. package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.js +0 -71
  139. package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.js.map +0 -1
  140. package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.test.js +0 -157
  141. package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.test.js.map +0 -1
  142. package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.js +0 -27
  143. package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.js.map +0 -1
  144. package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.test.js +0 -67
  145. package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.test.js.map +0 -1
  146. package/dist/src/api/blockManipulation/commands/updateBlock/updateBlock.js +0 -148
  147. package/dist/src/api/blockManipulation/commands/updateBlock/updateBlock.js.map +0 -1
  148. package/dist/src/api/blockManipulation/commands/updateBlock/updateBlock.test.js +0 -252
  149. package/dist/src/api/blockManipulation/commands/updateBlock/updateBlock.test.js.map +0 -1
  150. package/dist/src/api/blockManipulation/getBlock/getBlock.js +0 -56
  151. package/dist/src/api/blockManipulation/getBlock/getBlock.js.map +0 -1
  152. package/dist/src/api/blockManipulation/insertContentAt.js +0 -64
  153. package/dist/src/api/blockManipulation/insertContentAt.js.map +0 -1
  154. package/dist/src/api/blockManipulation/selections/selection.js +0 -149
  155. package/dist/src/api/blockManipulation/selections/selection.js.map +0 -1
  156. package/dist/src/api/blockManipulation/selections/selection.test.js +0 -39
  157. package/dist/src/api/blockManipulation/selections/selection.test.js.map +0 -1
  158. package/dist/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.js +0 -79
  159. package/dist/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.js.map +0 -1
  160. package/dist/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.test.js +0 -33
  161. package/dist/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.test.js.map +0 -1
  162. package/dist/src/api/blockManipulation/setupTestEnv.js +0 -172
  163. package/dist/src/api/blockManipulation/setupTestEnv.js.map +0 -1
  164. package/dist/src/api/clipboard/clipboard.test.js +0 -246
  165. package/dist/src/api/clipboard/clipboard.test.js.map +0 -1
  166. package/dist/src/api/clipboard/fromClipboard/acceptedMIMETypes.js +0 -8
  167. package/dist/src/api/clipboard/fromClipboard/acceptedMIMETypes.js.map +0 -1
  168. package/dist/src/api/clipboard/fromClipboard/fileDropExtension.js +0 -38
  169. package/dist/src/api/clipboard/fromClipboard/fileDropExtension.js.map +0 -1
  170. package/dist/src/api/clipboard/fromClipboard/handleFileInsertion.js +0 -111
  171. package/dist/src/api/clipboard/fromClipboard/handleFileInsertion.js.map +0 -1
  172. package/dist/src/api/clipboard/fromClipboard/handleVSCodePaste.js +0 -26
  173. package/dist/src/api/clipboard/fromClipboard/handleVSCodePaste.js.map +0 -1
  174. package/dist/src/api/clipboard/fromClipboard/pasteExtension.js +0 -57
  175. package/dist/src/api/clipboard/fromClipboard/pasteExtension.js.map +0 -1
  176. package/dist/src/api/clipboard/toClipboard/copyExtension.js +0 -132
  177. package/dist/src/api/clipboard/toClipboard/copyExtension.js.map +0 -1
  178. package/dist/src/api/exporters/html/externalHTMLExporter.js +0 -35
  179. package/dist/src/api/exporters/html/externalHTMLExporter.js.map +0 -1
  180. package/dist/src/api/exporters/html/htmlConversion.test.js +0 -72
  181. package/dist/src/api/exporters/html/htmlConversion.test.js.map +0 -1
  182. package/dist/src/api/exporters/html/internalHTMLSerializer.js +0 -21
  183. package/dist/src/api/exporters/html/internalHTMLSerializer.js.map +0 -1
  184. package/dist/src/api/exporters/html/util/serializeBlocksExternalHTML.js +0 -141
  185. package/dist/src/api/exporters/html/util/serializeBlocksExternalHTML.js.map +0 -1
  186. package/dist/src/api/exporters/html/util/serializeBlocksInternalHTML.js +0 -96
  187. package/dist/src/api/exporters/html/util/serializeBlocksInternalHTML.js.map +0 -1
  188. package/dist/src/api/exporters/markdown/markdownExporter.js +0 -31
  189. package/dist/src/api/exporters/markdown/markdownExporter.js.map +0 -1
  190. package/dist/src/api/exporters/markdown/markdownExporter.test.js +0 -57
  191. package/dist/src/api/exporters/markdown/markdownExporter.test.js.map +0 -1
  192. package/dist/src/api/exporters/markdown/removeUnderlinesRehypePlugin.js +0 -33
  193. package/dist/src/api/exporters/markdown/removeUnderlinesRehypePlugin.js.map +0 -1
  194. package/dist/src/api/exporters/markdown/util/addSpacesToCheckboxesRehypePlugin.js +0 -37
  195. package/dist/src/api/exporters/markdown/util/addSpacesToCheckboxesRehypePlugin.js.map +0 -1
  196. package/dist/src/api/getBlockInfoFromPos.js +0 -165
  197. package/dist/src/api/getBlockInfoFromPos.js.map +0 -1
  198. package/dist/src/api/nodeConversions/blockToNode.js +0 -197
  199. package/dist/src/api/nodeConversions/blockToNode.js.map +0 -1
  200. package/dist/src/api/nodeConversions/fragmentToBlocks.js +0 -50
  201. package/dist/src/api/nodeConversions/fragmentToBlocks.js.map +0 -1
  202. package/dist/src/api/nodeConversions/nodeConversions.test.js +0 -54
  203. package/dist/src/api/nodeConversions/nodeConversions.test.js.map +0 -1
  204. package/dist/src/api/nodeConversions/nodeToBlock.js +0 -316
  205. package/dist/src/api/nodeConversions/nodeToBlock.js.map +0 -1
  206. package/dist/src/api/nodeUtil.js +0 -28
  207. package/dist/src/api/nodeUtil.js.map +0 -1
  208. package/dist/src/api/parsers/html/parseHTML.js +0 -19
  209. package/dist/src/api/parsers/html/parseHTML.js.map +0 -1
  210. package/dist/src/api/parsers/html/parseHTML.test.js +0 -470
  211. package/dist/src/api/parsers/html/parseHTML.test.js.map +0 -1
  212. package/dist/src/api/parsers/html/util/nestedLists.js +0 -106
  213. package/dist/src/api/parsers/html/util/nestedLists.js.map +0 -1
  214. package/dist/src/api/parsers/html/util/nestedLists.test.js +0 -166
  215. package/dist/src/api/parsers/html/util/nestedLists.test.js.map +0 -1
  216. package/dist/src/api/parsers/markdown/parseMarkdown.js +0 -52
  217. package/dist/src/api/parsers/markdown/parseMarkdown.js.map +0 -1
  218. package/dist/src/api/parsers/markdown/parseMarkdown.test.js +0 -109
  219. package/dist/src/api/parsers/markdown/parseMarkdown.test.js.map +0 -1
  220. package/dist/src/api/testUtil/cases/customBlocks.js +0 -313
  221. package/dist/src/api/testUtil/cases/customBlocks.js.map +0 -1
  222. package/dist/src/api/testUtil/cases/customInlineContent.js +0 -91
  223. package/dist/src/api/testUtil/cases/customInlineContent.js.map +0 -1
  224. package/dist/src/api/testUtil/cases/customStyles.js +0 -83
  225. package/dist/src/api/testUtil/cases/customStyles.js.map +0 -1
  226. package/dist/src/api/testUtil/cases/defaultSchema.js +0 -673
  227. package/dist/src/api/testUtil/cases/defaultSchema.js.map +0 -1
  228. package/dist/src/api/testUtil/index.js +0 -2
  229. package/dist/src/api/testUtil/index.js.map +0 -1
  230. package/dist/src/api/testUtil/partialBlockTestUtil.js +0 -114
  231. package/dist/src/api/testUtil/partialBlockTestUtil.js.map +0 -1
  232. package/dist/src/api/testUtil/paste.js +0 -29
  233. package/dist/src/api/testUtil/paste.js.map +0 -1
  234. package/dist/src/blocks/AudioBlockContent/AudioBlockContent.js +0 -97
  235. package/dist/src/blocks/AudioBlockContent/AudioBlockContent.js.map +0 -1
  236. package/dist/src/blocks/AudioBlockContent/audioBlockHelpers.js +0 -5
  237. package/dist/src/blocks/AudioBlockContent/audioBlockHelpers.js.map +0 -1
  238. package/dist/src/blocks/CodeBlockContent/CodeBlockContent.js +0 -281
  239. package/dist/src/blocks/CodeBlockContent/CodeBlockContent.js.map +0 -1
  240. package/dist/src/blocks/CodeBlockContent/defaultSupportedLanguages.js +0 -110
  241. package/dist/src/blocks/CodeBlockContent/defaultSupportedLanguages.js.map +0 -1
  242. package/dist/src/blocks/FileBlockContent/FileBlockContent.js +0 -70
  243. package/dist/src/blocks/FileBlockContent/FileBlockContent.js.map +0 -1
  244. package/dist/src/blocks/FileBlockContent/fileBlockHelpers.js +0 -317
  245. package/dist/src/blocks/FileBlockContent/fileBlockHelpers.js.map +0 -1
  246. package/dist/src/blocks/FileBlockContent/uploadToTmpFilesDotOrg_DEV_ONLY.js +0 -15
  247. package/dist/src/blocks/FileBlockContent/uploadToTmpFilesDotOrg_DEV_ONLY.js.map +0 -1
  248. package/dist/src/blocks/HeadingBlockContent/HeadingBlockContent.js +0 -145
  249. package/dist/src/blocks/HeadingBlockContent/HeadingBlockContent.js.map +0 -1
  250. package/dist/src/blocks/ImageBlockContent/ImageBlockContent.js +0 -106
  251. package/dist/src/blocks/ImageBlockContent/ImageBlockContent.js.map +0 -1
  252. package/dist/src/blocks/ImageBlockContent/imageBlockHelpers.js +0 -6
  253. package/dist/src/blocks/ImageBlockContent/imageBlockHelpers.js.map +0 -1
  254. package/dist/src/blocks/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.js +0 -113
  255. package/dist/src/blocks/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.js.map +0 -1
  256. package/dist/src/blocks/ListItemBlockContent/CheckListItemBlockContent/CheckListItemBlockContent.js +0 -224
  257. package/dist/src/blocks/ListItemBlockContent/CheckListItemBlockContent/CheckListItemBlockContent.js.map +0 -1
  258. package/dist/src/blocks/ListItemBlockContent/ListItemKeyboardShortcuts.js +0 -45
  259. package/dist/src/blocks/ListItemBlockContent/ListItemKeyboardShortcuts.js.map +0 -1
  260. package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListIndexingPlugin.js +0 -58
  261. package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListIndexingPlugin.js.map +0 -1
  262. package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.js +0 -130
  263. package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.js.map +0 -1
  264. package/dist/src/blocks/ParagraphBlockContent/ParagraphBlockContent.js +0 -52
  265. package/dist/src/blocks/ParagraphBlockContent/ParagraphBlockContent.js.map +0 -1
  266. package/dist/src/blocks/TableBlockContent/TableBlockContent.js +0 -129
  267. package/dist/src/blocks/TableBlockContent/TableBlockContent.js.map +0 -1
  268. package/dist/src/blocks/TableBlockContent/TableExtension.js +0 -64
  269. package/dist/src/blocks/TableBlockContent/TableExtension.js.map +0 -1
  270. package/dist/src/blocks/VideoBlockContent/VideoBlockContent.js +0 -103
  271. package/dist/src/blocks/VideoBlockContent/VideoBlockContent.js.map +0 -1
  272. package/dist/src/blocks/VideoBlockContent/videoBlockHelpers.js +0 -6
  273. package/dist/src/blocks/VideoBlockContent/videoBlockHelpers.js.map +0 -1
  274. package/dist/src/blocks/defaultBlockHelpers.js +0 -50
  275. package/dist/src/blocks/defaultBlockHelpers.js.map +0 -1
  276. package/dist/src/blocks/defaultBlockTypeGuards.js +0 -40
  277. package/dist/src/blocks/defaultBlockTypeGuards.js.map +0 -1
  278. package/dist/src/blocks/defaultBlocks.js +0 -50
  279. package/dist/src/blocks/defaultBlocks.js.map +0 -1
  280. package/dist/src/blocks/defaultProps.js +0 -19
  281. package/dist/src/blocks/defaultProps.js.map +0 -1
  282. package/dist/src/editor/BlockNoteEditor.js +0 -748
  283. package/dist/src/editor/BlockNoteEditor.js.map +0 -1
  284. package/dist/src/editor/BlockNoteEditor.test.js +0 -65
  285. package/dist/src/editor/BlockNoteEditor.test.js.map +0 -1
  286. package/dist/src/editor/BlockNoteExtensions.js +0 -196
  287. package/dist/src/editor/BlockNoteExtensions.js.map +0 -1
  288. package/dist/src/editor/BlockNoteSchema.js +0 -38
  289. package/dist/src/editor/BlockNoteSchema.js.map +0 -1
  290. package/dist/src/editor/BlockNoteTipTapEditor.js +0 -169
  291. package/dist/src/editor/BlockNoteTipTapEditor.js.map +0 -1
  292. package/dist/src/editor/cursorPositionTypes.js +0 -2
  293. package/dist/src/editor/cursorPositionTypes.js.map +0 -1
  294. package/dist/src/editor/defaultColors.js +0 -77
  295. package/dist/src/editor/defaultColors.js.map +0 -1
  296. package/dist/src/editor/selectionTypes.js +0 -2
  297. package/dist/src/editor/selectionTypes.js.map +0 -1
  298. package/dist/src/editor/transformPasted.js +0 -79
  299. package/dist/src/editor/transformPasted.js.map +0 -1
  300. package/dist/src/exporter/Exporter.js +0 -36
  301. package/dist/src/exporter/Exporter.js.map +0 -1
  302. package/dist/src/exporter/index.js +0 -3
  303. package/dist/src/exporter/index.js.map +0 -1
  304. package/dist/src/exporter/mapping.js +0 -12
  305. package/dist/src/exporter/mapping.js.map +0 -1
  306. package/dist/src/extensions/BackgroundColor/BackgroundColorExtension.js +0 -30
  307. package/dist/src/extensions/BackgroundColor/BackgroundColorExtension.js.map +0 -1
  308. package/dist/src/extensions/BackgroundColor/BackgroundColorMark.js +0 -39
  309. package/dist/src/extensions/BackgroundColor/BackgroundColorMark.js.map +0 -1
  310. package/dist/src/extensions/FilePanel/FilePanelPlugin.js +0 -131
  311. package/dist/src/extensions/FilePanel/FilePanelPlugin.js.map +0 -1
  312. package/dist/src/extensions/FormattingToolbar/FormattingToolbarPlugin.js +0 -197
  313. package/dist/src/extensions/FormattingToolbar/FormattingToolbarPlugin.js.map +0 -1
  314. package/dist/src/extensions/KeyboardShortcuts/KeyboardShortcutsExtension.js +0 -341
  315. package/dist/src/extensions/KeyboardShortcuts/KeyboardShortcutsExtension.js.map +0 -1
  316. package/dist/src/extensions/LinkToolbar/LinkToolbarPlugin.js +0 -251
  317. package/dist/src/extensions/LinkToolbar/LinkToolbarPlugin.js.map +0 -1
  318. package/dist/src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.js +0 -54
  319. package/dist/src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.js.map +0 -1
  320. package/dist/src/extensions/Placeholder/PlaceholderPlugin.js +0 -90
  321. package/dist/src/extensions/Placeholder/PlaceholderPlugin.js.map +0 -1
  322. package/dist/src/extensions/PreviousBlockType/PreviousBlockTypePlugin.js +0 -187
  323. package/dist/src/extensions/PreviousBlockType/PreviousBlockTypePlugin.js.map +0 -1
  324. package/dist/src/extensions/SideMenu/MultipleNodeSelection.js +0 -68
  325. package/dist/src/extensions/SideMenu/MultipleNodeSelection.js.map +0 -1
  326. package/dist/src/extensions/SideMenu/SideMenuPlugin.js +0 -343
  327. package/dist/src/extensions/SideMenu/SideMenuPlugin.js.map +0 -1
  328. package/dist/src/extensions/SideMenu/dragging.js +0 -132
  329. package/dist/src/extensions/SideMenu/dragging.js.map +0 -1
  330. package/dist/src/extensions/SuggestionMenu/DefaultGridSuggestionItem.js +0 -2
  331. package/dist/src/extensions/SuggestionMenu/DefaultGridSuggestionItem.js.map +0 -1
  332. package/dist/src/extensions/SuggestionMenu/DefaultSuggestionItem.js +0 -2
  333. package/dist/src/extensions/SuggestionMenu/DefaultSuggestionItem.js.map +0 -1
  334. package/dist/src/extensions/SuggestionMenu/SuggestionPlugin.js +0 -245
  335. package/dist/src/extensions/SuggestionMenu/SuggestionPlugin.js.map +0 -1
  336. package/dist/src/extensions/SuggestionMenu/getDefaultEmojiPickerItems.js +0 -26
  337. package/dist/src/extensions/SuggestionMenu/getDefaultEmojiPickerItems.js.map +0 -1
  338. package/dist/src/extensions/SuggestionMenu/getDefaultSlashMenuItems.js +0 -241
  339. package/dist/src/extensions/SuggestionMenu/getDefaultSlashMenuItems.js.map +0 -1
  340. package/dist/src/extensions/TableHandles/TableHandlesPlugin.js +0 -570
  341. package/dist/src/extensions/TableHandles/TableHandlesPlugin.js.map +0 -1
  342. package/dist/src/extensions/TextAlignment/TextAlignmentExtension.js +0 -36
  343. package/dist/src/extensions/TextAlignment/TextAlignmentExtension.js.map +0 -1
  344. package/dist/src/extensions/TextColor/TextColorExtension.js +0 -29
  345. package/dist/src/extensions/TextColor/TextColorExtension.js.map +0 -1
  346. package/dist/src/extensions/TextColor/TextColorMark.js +0 -37
  347. package/dist/src/extensions/TextColor/TextColorMark.js.map +0 -1
  348. package/dist/src/extensions/TrailingNode/TrailingNodeExtension.js +0 -58
  349. package/dist/src/extensions/TrailingNode/TrailingNodeExtension.js.map +0 -1
  350. package/dist/src/extensions/UniqueID/UniqueID.js +0 -283
  351. package/dist/src/extensions/UniqueID/UniqueID.js.map +0 -1
  352. package/dist/src/extensions/getDraggableBlockFromElement.js +0 -13
  353. package/dist/src/extensions/getDraggableBlockFromElement.js.map +0 -1
  354. package/dist/src/extensions-shared/UiElementPosition.js +0 -2
  355. package/dist/src/extensions-shared/UiElementPosition.js.map +0 -1
  356. package/dist/src/i18n/dictionary.js +0 -4
  357. package/dist/src/i18n/dictionary.js.map +0 -1
  358. package/dist/src/i18n/locales/ar.js +0 -298
  359. package/dist/src/i18n/locales/ar.js.map +0 -1
  360. package/dist/src/i18n/locales/de.js +0 -313
  361. package/dist/src/i18n/locales/de.js.map +0 -1
  362. package/dist/src/i18n/locales/en.js +0 -314
  363. package/dist/src/i18n/locales/en.js.map +0 -1
  364. package/dist/src/i18n/locales/es.js +0 -312
  365. package/dist/src/i18n/locales/es.js.map +0 -1
  366. package/dist/src/i18n/locales/fr.js +0 -313
  367. package/dist/src/i18n/locales/fr.js.map +0 -1
  368. package/dist/src/i18n/locales/hr.js +0 -308
  369. package/dist/src/i18n/locales/hr.js.map +0 -1
  370. package/dist/src/i18n/locales/index.js +0 -16
  371. package/dist/src/i18n/locales/index.js.map +0 -1
  372. package/dist/src/i18n/locales/is.js +0 -305
  373. package/dist/src/i18n/locales/is.js.map +0 -1
  374. package/dist/src/i18n/locales/ja.js +0 -333
  375. package/dist/src/i18n/locales/ja.js.map +0 -1
  376. package/dist/src/i18n/locales/ko.js +0 -326
  377. package/dist/src/i18n/locales/ko.js.map +0 -1
  378. package/dist/src/i18n/locales/nl.js +0 -313
  379. package/dist/src/i18n/locales/nl.js.map +0 -1
  380. package/dist/src/i18n/locales/pl.js +0 -297
  381. package/dist/src/i18n/locales/pl.js.map +0 -1
  382. package/dist/src/i18n/locales/pt.js +0 -305
  383. package/dist/src/i18n/locales/pt.js.map +0 -1
  384. package/dist/src/i18n/locales/ru.js +0 -340
  385. package/dist/src/i18n/locales/ru.js.map +0 -1
  386. package/dist/src/i18n/locales/vi.js +0 -312
  387. package/dist/src/i18n/locales/vi.js.map +0 -1
  388. package/dist/src/i18n/locales/zh.js +0 -346
  389. package/dist/src/i18n/locales/zh.js.map +0 -1
  390. package/dist/src/index.js +0 -56
  391. package/dist/src/index.js.map +0 -1
  392. package/dist/src/pm-nodes/BlockContainer.js +0 -72
  393. package/dist/src/pm-nodes/BlockContainer.js.map +0 -1
  394. package/dist/src/pm-nodes/BlockGroup.js +0 -43
  395. package/dist/src/pm-nodes/BlockGroup.js.map +0 -1
  396. package/dist/src/pm-nodes/Doc.js +0 -7
  397. package/dist/src/pm-nodes/Doc.js.map +0 -1
  398. package/dist/src/pm-nodes/index.js +0 -4
  399. package/dist/src/pm-nodes/index.js.map +0 -1
  400. package/dist/src/schema/blocks/createSpec.js +0 -126
  401. package/dist/src/schema/blocks/createSpec.js.map +0 -1
  402. package/dist/src/schema/blocks/internal.js +0 -147
  403. package/dist/src/schema/blocks/internal.js.map +0 -1
  404. package/dist/src/schema/blocks/types.js +0 -2
  405. package/dist/src/schema/blocks/types.js.map +0 -1
  406. package/dist/src/schema/index.js +0 -11
  407. package/dist/src/schema/index.js.map +0 -1
  408. package/dist/src/schema/inlineContent/createSpec.js +0 -64
  409. package/dist/src/schema/inlineContent/createSpec.js.map +0 -1
  410. package/dist/src/schema/inlineContent/internal.js +0 -52
  411. package/dist/src/schema/inlineContent/internal.js.map +0 -1
  412. package/dist/src/schema/inlineContent/types.js +0 -10
  413. package/dist/src/schema/inlineContent/types.js.map +0 -1
  414. package/dist/src/schema/propTypes.js +0 -2
  415. package/dist/src/schema/propTypes.js.map +0 -1
  416. package/dist/src/schema/styles/createSpec.js +0 -48
  417. package/dist/src/schema/styles/createSpec.js.map +0 -1
  418. package/dist/src/schema/styles/internal.js +0 -53
  419. package/dist/src/schema/styles/internal.js.map +0 -1
  420. package/dist/src/schema/styles/types.js +0 -2
  421. package/dist/src/schema/styles/types.js.map +0 -1
  422. package/dist/src/util/EventEmitter.js +0 -33
  423. package/dist/src/util/EventEmitter.js.map +0 -1
  424. package/dist/src/util/browser.js +0 -17
  425. package/dist/src/util/browser.js.map +0 -1
  426. package/dist/src/util/combineByGroup.js +0 -20
  427. package/dist/src/util/combineByGroup.js.map +0 -1
  428. package/dist/src/util/esmDependencies.js +0 -35
  429. package/dist/src/util/esmDependencies.js.map +0 -1
  430. package/dist/src/util/string.js +0 -14
  431. package/dist/src/util/string.js.map +0 -1
  432. package/dist/src/util/typescript.js +0 -12
  433. package/dist/src/util/typescript.js.map +0 -1
  434. package/src/api/clipboard/__snapshots__/tableAllCells.html +0 -1
  435. package/src/api/clipboard/__snapshots__/tableCell.html +0 -1
  436. package/src/api/clipboard/__snapshots__/tableRow.html +0 -1
  437. package/src/blocks/FileBlockContent/fileBlockHelpers.ts +0 -456
  438. package/types/src/blocks/FileBlockContent/fileBlockHelpers.d.ts +0 -41
  439. /package/src/api/clipboard/__snapshots__/{childToParent.html → internal/childToParent.html} +0 -0
  440. /package/src/api/clipboard/__snapshots__/{childrenToNextParent.html → internal/childrenToNextParent.html} +0 -0
  441. /package/src/api/clipboard/__snapshots__/{childrenToNextParentsChildren.html → internal/childrenToNextParentsChildren.html} +0 -0
  442. /package/src/api/clipboard/__snapshots__/{image.html → internal/image.html} +0 -0
  443. /package/src/api/clipboard/__snapshots__/{multipleChildren.html → internal/multipleChildren.html} +0 -0
  444. /package/src/api/clipboard/__snapshots__/{multipleStyledText.html → internal/multipleStyledText.html} +0 -0
  445. /package/src/api/clipboard/__snapshots__/{nestedImage.html → internal/nestedImage.html} +0 -0
  446. /package/src/api/clipboard/__snapshots__/{partialChildToParent.html → internal/partialChildToParent.html} +0 -0
  447. /package/src/api/clipboard/__snapshots__/{styledText.html → internal/styledText.html} +0 -0
  448. /package/src/api/clipboard/__snapshots__/{tableCellText.html → internal/tableCellText.html} +0 -0
  449. /package/src/api/clipboard/__snapshots__/{unstyledText.html → internal/unstyledText.html} +0 -0
  450. /package/src/blocks/AudioBlockContent/{audioBlockHelpers.ts → parseAudioElement.ts} +0 -0
  451. /package/src/blocks/ImageBlockContent/{imageBlockHelpers.ts → parseImageElement.ts} +0 -0
  452. /package/src/blocks/VideoBlockContent/{videoBlockHelpers.ts → parseVideoElement.ts} +0 -0
  453. /package/types/src/api/clipboard/{clipboard.test.d.ts → clipboardExternal.test.d.ts} +0 -0
  454. /package/types/src/blocks/AudioBlockContent/{audioBlockHelpers.d.ts → parseAudioElement.d.ts} +0 -0
  455. /package/types/src/blocks/ImageBlockContent/{imageBlockHelpers.d.ts → parseImageElement.d.ts} +0 -0
  456. /package/types/src/blocks/VideoBlockContent/{videoBlockHelpers.d.ts → parseVideoElement.d.ts} +0 -0
@@ -1,54 +0,0 @@
1
- import { Plugin, PluginKey, TextSelection } from "prosemirror-state";
2
- const PLUGIN_KEY = new PluginKey("node-selection-keyboard");
3
- // By default, typing with a node selection active will cause ProseMirror to
4
- // replace the node with one that contains editable content. This plugin blocks
5
- // this behaviour without also blocking things like keyboard shortcuts:
6
- //
7
- // - Lets through key presses that do not include alphanumeric characters. This
8
- // includes things like backspace/delete/home/end/etc.
9
- // - Lets through any key presses that include ctrl/meta keys. These will be
10
- // shortcuts of some kind like ctrl+C/mod+C.
11
- // - Special case for Enter key which creates a new paragraph block below and
12
- // sets the selection to it. This is just to bring the UX closer to Notion
13
- //
14
- // While a more elegant solution would probably process transactions instead of
15
- // keystrokes, this brings us most of the way to Notion's UX without much added
16
- // complexity.
17
- export class NodeSelectionKeyboardPlugin {
18
- plugin;
19
- constructor() {
20
- this.plugin = new Plugin({
21
- key: PLUGIN_KEY,
22
- props: {
23
- handleKeyDown: (view, event) => {
24
- // Checks for node selection
25
- if ("node" in view.state.selection) {
26
- // Checks if key press uses ctrl/meta modifier
27
- if (event.ctrlKey || event.metaKey) {
28
- return false;
29
- }
30
- // Checks if key press is alphanumeric
31
- if (event.key.length === 1) {
32
- event.preventDefault();
33
- return true;
34
- }
35
- // Checks if key press is Enter
36
- if (event.key === "Enter" &&
37
- !event.shiftKey &&
38
- !event.altKey &&
39
- !event.ctrlKey &&
40
- !event.metaKey) {
41
- const tr = view.state.tr;
42
- view.dispatch(tr
43
- .insert(view.state.tr.selection.$to.after(), view.state.schema.nodes["paragraph"].createChecked())
44
- .setSelection(new TextSelection(tr.doc.resolve(view.state.tr.selection.$to.after() + 1))));
45
- return true;
46
- }
47
- }
48
- return false;
49
- },
50
- },
51
- });
52
- }
53
- }
54
- //# sourceMappingURL=NodeSelectionKeyboardPlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeSelectionKeyboardPlugin.js","sourceRoot":"","sources":["../../../../src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAErE,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;AAC5D,4EAA4E;AAC5E,+EAA+E;AAC/E,uEAAuE;AACvE,EAAE;AACF,+EAA+E;AAC/E,sDAAsD;AACtD,4EAA4E;AAC5E,4CAA4C;AAC5C,6EAA6E;AAC7E,0EAA0E;AAC1E,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,cAAc;AACd,MAAM,OAAO,2BAA2B;IACtB,MAAM,CAAS;IAC/B;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,GAAG,EAAE,UAAU;YACf,KAAK,EAAE;gBACL,aAAa,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC7B,4BAA4B;oBAC5B,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;wBACnC,8CAA8C;wBAC9C,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;4BACnC,OAAO,KAAK,CAAC;wBACf,CAAC;wBACD,sCAAsC;wBACtC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;4BAEvB,OAAO,IAAI,CAAC;wBACd,CAAC;wBACD,+BAA+B;wBAC/B,IACE,KAAK,CAAC,GAAG,KAAK,OAAO;4BACrB,CAAC,KAAK,CAAC,QAAQ;4BACf,CAAC,KAAK,CAAC,MAAM;4BACb,CAAC,KAAK,CAAC,OAAO;4BACd,CAAC,KAAK,CAAC,OAAO,EACd,CAAC;4BACD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;4BACzB,IAAI,CAAC,QAAQ,CACX,EAAE;iCACC,MAAM,CACL,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CACrD;iCACA,YAAY,CACX,IAAI,aAAa,CACf,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CACxD,CACF,CACJ,CAAC;4BAEF,OAAO,IAAI,CAAC;wBACd,CAAC;oBACH,CAAC;oBAED,OAAO,KAAK,CAAC;gBACf,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,90 +0,0 @@
1
- import { Plugin, PluginKey } from "prosemirror-state";
2
- import { Decoration, DecorationSet } from "prosemirror-view";
3
- const PLUGIN_KEY = new PluginKey(`blocknote-placeholder`);
4
- export class PlaceholderPlugin {
5
- plugin;
6
- constructor(editor, placeholders) {
7
- this.plugin = new Plugin({
8
- key: PLUGIN_KEY,
9
- view: () => {
10
- const styleEl = document.createElement("style");
11
- const nonce = editor._tiptapEditor.options.injectNonce;
12
- if (nonce) {
13
- styleEl.setAttribute("nonce", nonce);
14
- }
15
- if (editor._tiptapEditor.view.root instanceof ShadowRoot) {
16
- editor._tiptapEditor.view.root.append(styleEl);
17
- }
18
- else {
19
- editor._tiptapEditor.view.root.head.appendChild(styleEl);
20
- }
21
- const styleSheet = styleEl.sheet;
22
- const getBaseSelector = (additionalSelectors = "") => `.bn-block-content${additionalSelectors} .bn-inline-content:has(> .ProseMirror-trailingBreak:only-child):before`;
23
- const getSelector = (blockType, mustBeFocused = true) => {
24
- const mustBeFocusedSelector = mustBeFocused
25
- ? `[data-is-empty-and-focused]`
26
- : ``;
27
- if (blockType === "default") {
28
- return getBaseSelector(mustBeFocusedSelector);
29
- }
30
- const blockTypeSelector = `[data-content-type="${blockType}"]`;
31
- return getBaseSelector(mustBeFocusedSelector + blockTypeSelector);
32
- };
33
- for (const [blockType, placeholder] of Object.entries(placeholders)) {
34
- const mustBeFocused = blockType === "default";
35
- try {
36
- styleSheet.insertRule(`${getSelector(blockType, mustBeFocused)} { content: ${JSON.stringify(placeholder)}; }`);
37
- // For some reason, the placeholders which show when the block is focused
38
- // take priority over ones which show depending on block type, so we need
39
- // to make sure the block specific ones are also used when the block is
40
- // focused.
41
- if (!mustBeFocused) {
42
- styleSheet.insertRule(`${getSelector(blockType, true)} { content: ${JSON.stringify(placeholder)}; }`);
43
- }
44
- }
45
- catch (e) {
46
- // eslint-disable-next-line no-console
47
- console.warn(`Failed to insert placeholder CSS rule - this is likely due to the browser not supporting certain CSS pseudo-element selectors (:has, :only-child:, or :before)`, e);
48
- }
49
- }
50
- return {
51
- destroy: () => {
52
- if (editor._tiptapEditor.view.root instanceof ShadowRoot) {
53
- editor._tiptapEditor.view.root.removeChild(styleEl);
54
- }
55
- else {
56
- editor._tiptapEditor.view.root.head.removeChild(styleEl);
57
- }
58
- },
59
- };
60
- },
61
- props: {
62
- // TODO: maybe also add placeholder for empty document ("e.g.: start writing..")
63
- decorations: (state) => {
64
- const { doc, selection } = state;
65
- if (!editor.isEditable) {
66
- return;
67
- }
68
- if (!selection.empty) {
69
- return;
70
- }
71
- // Don't show placeholder when the cursor is inside a code block
72
- if (selection.$from.parent.type.spec.code) {
73
- return;
74
- }
75
- const $pos = selection.$anchor;
76
- const node = $pos.parent;
77
- if (node.content.size > 0) {
78
- return null;
79
- }
80
- const before = $pos.before();
81
- const dec = Decoration.node(before, before + node.nodeSize, {
82
- "data-is-empty-and-focused": "true",
83
- });
84
- return DecorationSet.create(doc, [dec]);
85
- },
86
- },
87
- });
88
- }
89
- }
90
- //# sourceMappingURL=PlaceholderPlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlaceholderPlugin.js","sourceRoot":"","sources":["../../../../src/extensions/Placeholder/PlaceholderPlugin.ts"],"names":[],"mappings":"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"}
@@ -1,187 +0,0 @@
1
- import { findChildren } from "@tiptap/core";
2
- import { Plugin, PluginKey } from "prosemirror-state";
3
- import { Decoration, DecorationSet } from "prosemirror-view";
4
- const PLUGIN_KEY = new PluginKey(`previous-blocks`);
5
- const nodeAttributes = {
6
- // Numbered List Items
7
- index: "index",
8
- // Headings
9
- level: "level",
10
- // All Blocks
11
- type: "type",
12
- depth: "depth",
13
- "depth-change": "depth-change",
14
- };
15
- /**
16
- * This plugin tracks transformation of Block node attributes, so we can support CSS transitions.
17
- *
18
- * Problem it solves: ProseMirror recreates the DOM when transactions happen. So when a transaction changes a Node attribute,
19
- * it results in a completely new DOM element. This means CSS transitions don't work.
20
- *
21
- * Solution: When attributes change on a node, this plugin sets a data-* attribute with the "previous" value. This way we can still use CSS transitions. (See block.module.css)
22
- */
23
- export class PreviousBlockTypePlugin {
24
- plugin;
25
- constructor() {
26
- let timeout;
27
- this.plugin = new Plugin({
28
- key: PLUGIN_KEY,
29
- view(_editorView) {
30
- return {
31
- update: async (view, _prevState) => {
32
- if (this.key?.getState(view.state).updatedBlocks.size > 0) {
33
- // use setTimeout 0 to clear the decorations so that at least
34
- // for one DOM-render the decorations have been applied
35
- timeout = setTimeout(() => {
36
- view.dispatch(view.state.tr.setMeta(PLUGIN_KEY, { clearUpdate: true }));
37
- }, 0);
38
- }
39
- },
40
- destroy: () => {
41
- if (timeout) {
42
- clearTimeout(timeout);
43
- }
44
- },
45
- };
46
- },
47
- state: {
48
- init() {
49
- return {
50
- // Block attributes, by block ID, from just before the previous transaction.
51
- prevTransactionOldBlockAttrs: {},
52
- // Block attributes, by block ID, from just before the current transaction.
53
- currentTransactionOldBlockAttrs: {},
54
- // Set of IDs of blocks whose attributes changed from the current transaction.
55
- updatedBlocks: new Set(),
56
- };
57
- },
58
- apply(transaction, prev, oldState, newState) {
59
- prev.currentTransactionOldBlockAttrs = {};
60
- prev.updatedBlocks.clear();
61
- if (!transaction.docChanged || oldState.doc.eq(newState.doc)) {
62
- return prev;
63
- }
64
- // TODO: Instead of iterating through the entire document, only check nodes affected by the transactions. Will
65
- // also probably require checking nodes affected by the previous transaction too.
66
- // We didn't get this to work yet:
67
- // const transform = combineTransactionSteps(oldState.doc, [transaction]);
68
- // // const { mapping } = transform;
69
- // const changes = getChangedRanges(transform);
70
- //
71
- // changes.forEach(({ oldRange, newRange }) => {
72
- // const oldNodes = findChildrenInRange(
73
- // oldState.doc,
74
- // oldRange,
75
- // (node) => node.attrs.id
76
- // );
77
- //
78
- // const newNodes = findChildrenInRange(
79
- // newState.doc,
80
- // newRange,
81
- // (node) => node.attrs.id
82
- // );
83
- const currentTransactionOriginalOldBlockAttrs = {};
84
- const oldNodes = findChildren(oldState.doc, (node) => node.attrs.id);
85
- const oldNodesById = new Map(oldNodes.map((node) => [node.node.attrs.id, node]));
86
- const newNodes = findChildren(newState.doc, (node) => node.attrs.id);
87
- // Traverses all block containers in the new editor state.
88
- for (const node of newNodes) {
89
- const oldNode = oldNodesById.get(node.node.attrs.id);
90
- const oldContentNode = oldNode?.node.firstChild;
91
- const newContentNode = node.node.firstChild;
92
- if (oldNode && oldContentNode && newContentNode) {
93
- const newAttrs = {
94
- index: newContentNode.attrs.index,
95
- level: newContentNode.attrs.level,
96
- type: newContentNode.type.name,
97
- depth: newState.doc.resolve(node.pos).depth,
98
- };
99
- let oldAttrs = {
100
- index: oldContentNode.attrs.index,
101
- level: oldContentNode.attrs.level,
102
- type: oldContentNode.type.name,
103
- depth: oldState.doc.resolve(oldNode.pos).depth,
104
- };
105
- currentTransactionOriginalOldBlockAttrs[node.node.attrs.id] =
106
- oldAttrs;
107
- // Whenever a transaction is appended by the OrderedListItemIndexPlugin, it's given the metadata:
108
- // { "orderedListIndexing": true }
109
- // These appended transactions happen immediately after any transaction which causes ordered list item
110
- // indices to require updating, including those which trigger animations. Therefore, these animations are
111
- // immediately overridden when the PreviousBlockTypePlugin processes the appended transaction, despite only
112
- // the listItemIndex attribute changing. To solve this, oldAttrs must be edited for transactions with the
113
- // "orderedListIndexing" metadata, so the correct animation can be re-triggered.
114
- if (transaction.getMeta("numberedListIndexing")) {
115
- // If the block existed before the transaction, gets the attributes from before the previous transaction
116
- // (i.e. the transaction that caused list item indices to need updating).
117
- if (node.node.attrs.id in prev.prevTransactionOldBlockAttrs) {
118
- oldAttrs =
119
- prev.prevTransactionOldBlockAttrs[node.node.attrs.id];
120
- }
121
- // Stops list item indices themselves being animated (looks smoother), unless the block's content type is
122
- // changing from a numbered list item to something else.
123
- if (newAttrs.type === "numberedListItem") {
124
- oldAttrs.index = newAttrs.index;
125
- }
126
- }
127
- prev.currentTransactionOldBlockAttrs[node.node.attrs.id] =
128
- oldAttrs;
129
- // TODO: faster deep equal?
130
- if (JSON.stringify(oldAttrs) !== JSON.stringify(newAttrs)) {
131
- oldAttrs["depth-change"] =
132
- oldAttrs.depth - newAttrs.depth;
133
- // for debugging:
134
- // console.log(
135
- // "id:",
136
- // node.node.attrs.id,
137
- // "previousBlockTypePlugin changes detected, oldAttrs",
138
- // oldAttrs,
139
- // "new",
140
- // newAttrs
141
- // );
142
- prev.updatedBlocks.add(node.node.attrs.id);
143
- }
144
- }
145
- }
146
- prev.prevTransactionOldBlockAttrs =
147
- currentTransactionOriginalOldBlockAttrs;
148
- return prev;
149
- },
150
- },
151
- props: {
152
- decorations(state) {
153
- const pluginState = this.getState(state);
154
- if (pluginState.updatedBlocks.size === 0) {
155
- return undefined;
156
- }
157
- const decorations = [];
158
- state.doc.descendants((node, pos) => {
159
- if (!node.attrs.id) {
160
- return;
161
- }
162
- if (!pluginState.updatedBlocks.has(node.attrs.id)) {
163
- return;
164
- }
165
- const prevAttrs = pluginState.currentTransactionOldBlockAttrs[node.attrs.id];
166
- const decorationAttrs = {};
167
- for (const [nodeAttr, val] of Object.entries(prevAttrs)) {
168
- decorationAttrs["data-prev-" + nodeAttributes[nodeAttr]] =
169
- val || "none";
170
- }
171
- // for debugging:
172
- // console.log(
173
- // "previousBlockTypePlugin committing decorations",
174
- // decorationAttrs
175
- // );
176
- const decoration = Decoration.node(pos, pos + node.nodeSize, {
177
- ...decorationAttrs,
178
- });
179
- decorations.push(decoration);
180
- });
181
- return DecorationSet.create(state.doc, decorations);
182
- },
183
- },
184
- });
185
- }
186
- }
187
- //# sourceMappingURL=PreviousBlockTypePlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PreviousBlockTypePlugin.js","sourceRoot":"","sources":["../../../../src/extensions/PreviousBlockType/PreviousBlockTypePlugin.ts"],"names":[],"mappings":"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"}
@@ -1,68 +0,0 @@
1
- import { Fragment, Slice } from "prosemirror-model";
2
- import { Selection } from "prosemirror-state";
3
- /**
4
- * This class represents an editor selection which spans multiple nodes/blocks. It's currently only used to allow users
5
- * to drag multiple blocks at the same time. Expects the selection anchor and head to be between nodes, i.e. just before
6
- * the first target node and just after the last, and that anchor and head are at the same nesting level.
7
- *
8
- * Partially based on ProseMirror's NodeSelection implementation:
9
- * (https://github.com/ProseMirror/prosemirror-state/blob/master/src/selection.ts)
10
- * MultipleNodeSelection differs from NodeSelection in the following ways:
11
- * 1. Stores which nodes are included in the selection instead of just a single node.
12
- * 2. Already expects the selection to start just before the first target node and ends just after the last, while a
13
- * NodeSelection automatically sets both anchor and head to just before the single target node.
14
- */
15
- export class MultipleNodeSelection extends Selection {
16
- nodes;
17
- constructor($anchor, $head) {
18
- super($anchor, $head);
19
- // Parent is at the same nesting level as anchor/head since they are just before/ just after target nodes.
20
- const parentNode = $anchor.node();
21
- this.nodes = [];
22
- $anchor.doc.nodesBetween($anchor.pos, $head.pos, (node, _pos, parent) => {
23
- if (parent !== null && parent.eq(parentNode)) {
24
- this.nodes.push(node);
25
- return false;
26
- }
27
- return;
28
- });
29
- }
30
- static create(doc, from, to = from) {
31
- return new MultipleNodeSelection(doc.resolve(from), doc.resolve(to));
32
- }
33
- content() {
34
- return new Slice(Fragment.from(this.nodes), 0, 0);
35
- }
36
- eq(selection) {
37
- if (!(selection instanceof MultipleNodeSelection)) {
38
- return false;
39
- }
40
- if (this.nodes.length !== selection.nodes.length) {
41
- return false;
42
- }
43
- if (this.from !== selection.from || this.to !== selection.to) {
44
- return false;
45
- }
46
- for (let i = 0; i < this.nodes.length; i++) {
47
- if (!this.nodes[i].eq(selection.nodes[i])) {
48
- return false;
49
- }
50
- }
51
- return true;
52
- }
53
- map(doc, mapping) {
54
- const fromResult = mapping.mapResult(this.from);
55
- const toResult = mapping.mapResult(this.to);
56
- if (toResult.deleted) {
57
- return Selection.near(doc.resolve(fromResult.pos));
58
- }
59
- if (fromResult.deleted) {
60
- return Selection.near(doc.resolve(toResult.pos));
61
- }
62
- return new MultipleNodeSelection(doc.resolve(fromResult.pos), doc.resolve(toResult.pos));
63
- }
64
- toJSON() {
65
- return { type: "node", anchor: this.anchor, head: this.head };
66
- }
67
- }
68
- //# sourceMappingURL=MultipleNodeSelection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MultipleNodeSelection.js","sourceRoot":"","sources":["../../../../src/extensions/SideMenu/MultipleNodeSelection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAqB,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,qBAAsB,SAAQ,SAAS;IAClD,KAAK,CAAc;IAEnB,YAAY,OAAoB,EAAE,KAAkB;QAClD,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEtB,0GAA0G;QAC1G,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAElC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;YACtE,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO;QACT,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,GAAS,EAAE,IAAY,EAAE,EAAE,GAAG,IAAI;QAC9C,OAAO,IAAI,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,OAAO;QACL,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,EAAE,CAAC,SAAoB;QACrB,IAAI,CAAC,CAAC,SAAS,YAAY,qBAAqB,CAAC,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,GAAS,EAAE,OAAiB;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5C,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,qBAAqB,CAC9B,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAC3B,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC1B,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAChE,CAAC;CACF"}