@blocknote/core 0.21.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 (391) hide show
  1. package/dist/blocknote.js +1023 -999
  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/paragraphInCustomBlock.html +1 -0
  16. package/src/api/clipboard/clipboardExternal.test.ts +161 -0
  17. package/src/api/clipboard/{clipboard.test.ts → clipboardInternal.test.ts} +60 -38
  18. package/src/api/clipboard/testUtil.ts +27 -0
  19. package/src/api/clipboard/toClipboard/copyExtension.ts +1 -0
  20. package/src/api/exporters/html/util/serializeBlocksExternalHTML.ts +7 -1
  21. package/src/api/exporters/html/util/serializeBlocksInternalHTML.ts +3 -1
  22. package/src/api/nodeConversions/nodeToBlock.ts +4 -1
  23. package/src/api/parsers/markdown/__snapshots__/pasted/styled.json +2 -2
  24. package/src/api/testUtil/partialBlockTestUtil.ts +4 -1
  25. package/src/blocks/HeadingBlockContent/HeadingBlockContent.ts +3 -19
  26. package/src/blocks/ListItemBlockContent/CheckListItemBlockContent/CheckListItemBlockContent.ts +3 -15
  27. package/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListIndexingPlugin.ts +11 -3
  28. package/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.ts +25 -5
  29. package/src/editor/Block.css +3 -3
  30. package/src/editor/BlockNoteEditor.test.ts +21 -1
  31. package/src/editor/editor.css +6 -6
  32. package/src/editor/transformPasted.ts +57 -4
  33. package/src/schema/blocks/createSpec.ts +1 -1
  34. package/src/schema/blocks/internal.ts +16 -6
  35. package/src/schema/inlineContent/internal.ts +4 -1
  36. package/src/schema/propTypes.ts +41 -18
  37. package/types/src/api/blockManipulation/setupTestEnv.d.ts +8 -0
  38. package/types/src/api/clipboard/clipboardInternal.test.d.ts +1 -0
  39. package/types/src/api/clipboard/testUtil.d.ts +509 -0
  40. package/types/src/api/testUtil/cases/customBlocks.d.ts +8 -0
  41. package/types/src/api/testUtil/cases/customInlineContent.d.ts +8 -0
  42. package/types/src/api/testUtil/cases/customStyles.d.ts +8 -0
  43. package/types/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.d.ts +12 -0
  44. package/types/src/blocks/defaultBlocks.d.ts +16 -0
  45. package/types/src/editor/transformPasted.d.ts +8 -4
  46. package/types/src/schema/propTypes.d.ts +20 -2
  47. package/dist/src/api/blockManipulation/commands/insertBlocks/insertBlocks.js +0 -30
  48. package/dist/src/api/blockManipulation/commands/insertBlocks/insertBlocks.js.map +0 -1
  49. package/dist/src/api/blockManipulation/commands/insertBlocks/insertBlocks.test.js +0 -99
  50. package/dist/src/api/blockManipulation/commands/insertBlocks/insertBlocks.test.js.map +0 -1
  51. package/dist/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.js +0 -97
  52. package/dist/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.js.map +0 -1
  53. package/dist/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.test.js +0 -88
  54. package/dist/src/api/blockManipulation/commands/mergeBlocks/mergeBlocks.test.js.map +0 -1
  55. package/dist/src/api/blockManipulation/commands/moveBlocks/moveBlocks.js +0 -219
  56. package/dist/src/api/blockManipulation/commands/moveBlocks/moveBlocks.js.map +0 -1
  57. package/dist/src/api/blockManipulation/commands/moveBlocks/moveBlocks.test.js +0 -175
  58. package/dist/src/api/blockManipulation/commands/moveBlocks/moveBlocks.test.js.map +0 -1
  59. package/dist/src/api/blockManipulation/commands/nestBlock/nestBlock.js +0 -57
  60. package/dist/src/api/blockManipulation/commands/nestBlock/nestBlock.js.map +0 -1
  61. package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.js +0 -5
  62. package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.js.map +0 -1
  63. package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.test.js +0 -31
  64. package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.test.js.map +0 -1
  65. package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.js +0 -71
  66. package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.js.map +0 -1
  67. package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.test.js +0 -157
  68. package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.test.js.map +0 -1
  69. package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.js +0 -27
  70. package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.js.map +0 -1
  71. package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.test.js +0 -67
  72. package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.test.js.map +0 -1
  73. package/dist/src/api/blockManipulation/commands/updateBlock/updateBlock.js +0 -148
  74. package/dist/src/api/blockManipulation/commands/updateBlock/updateBlock.js.map +0 -1
  75. package/dist/src/api/blockManipulation/commands/updateBlock/updateBlock.test.js +0 -252
  76. package/dist/src/api/blockManipulation/commands/updateBlock/updateBlock.test.js.map +0 -1
  77. package/dist/src/api/blockManipulation/getBlock/getBlock.js +0 -56
  78. package/dist/src/api/blockManipulation/getBlock/getBlock.js.map +0 -1
  79. package/dist/src/api/blockManipulation/insertContentAt.js +0 -64
  80. package/dist/src/api/blockManipulation/insertContentAt.js.map +0 -1
  81. package/dist/src/api/blockManipulation/selections/selection.js +0 -149
  82. package/dist/src/api/blockManipulation/selections/selection.js.map +0 -1
  83. package/dist/src/api/blockManipulation/selections/selection.test.js +0 -39
  84. package/dist/src/api/blockManipulation/selections/selection.test.js.map +0 -1
  85. package/dist/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.js +0 -79
  86. package/dist/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.js.map +0 -1
  87. package/dist/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.test.js +0 -33
  88. package/dist/src/api/blockManipulation/selections/textCursorPosition/textCursorPosition.test.js.map +0 -1
  89. package/dist/src/api/blockManipulation/setupTestEnv.js +0 -172
  90. package/dist/src/api/blockManipulation/setupTestEnv.js.map +0 -1
  91. package/dist/src/api/clipboard/clipboard.test.js +0 -249
  92. package/dist/src/api/clipboard/clipboard.test.js.map +0 -1
  93. package/dist/src/api/clipboard/fromClipboard/acceptedMIMETypes.js +0 -8
  94. package/dist/src/api/clipboard/fromClipboard/acceptedMIMETypes.js.map +0 -1
  95. package/dist/src/api/clipboard/fromClipboard/fileDropExtension.js +0 -38
  96. package/dist/src/api/clipboard/fromClipboard/fileDropExtension.js.map +0 -1
  97. package/dist/src/api/clipboard/fromClipboard/handleFileInsertion.js +0 -111
  98. package/dist/src/api/clipboard/fromClipboard/handleFileInsertion.js.map +0 -1
  99. package/dist/src/api/clipboard/fromClipboard/handleVSCodePaste.js +0 -25
  100. package/dist/src/api/clipboard/fromClipboard/handleVSCodePaste.js.map +0 -1
  101. package/dist/src/api/clipboard/fromClipboard/pasteExtension.js +0 -57
  102. package/dist/src/api/clipboard/fromClipboard/pasteExtension.js.map +0 -1
  103. package/dist/src/api/clipboard/toClipboard/copyExtension.js +0 -134
  104. package/dist/src/api/clipboard/toClipboard/copyExtension.js.map +0 -1
  105. package/dist/src/api/exporters/html/externalHTMLExporter.js +0 -35
  106. package/dist/src/api/exporters/html/externalHTMLExporter.js.map +0 -1
  107. package/dist/src/api/exporters/html/htmlConversion.test.js +0 -72
  108. package/dist/src/api/exporters/html/htmlConversion.test.js.map +0 -1
  109. package/dist/src/api/exporters/html/internalHTMLSerializer.js +0 -21
  110. package/dist/src/api/exporters/html/internalHTMLSerializer.js.map +0 -1
  111. package/dist/src/api/exporters/html/util/serializeBlocksExternalHTML.js +0 -141
  112. package/dist/src/api/exporters/html/util/serializeBlocksExternalHTML.js.map +0 -1
  113. package/dist/src/api/exporters/html/util/serializeBlocksInternalHTML.js +0 -96
  114. package/dist/src/api/exporters/html/util/serializeBlocksInternalHTML.js.map +0 -1
  115. package/dist/src/api/exporters/markdown/markdownExporter.js +0 -31
  116. package/dist/src/api/exporters/markdown/markdownExporter.js.map +0 -1
  117. package/dist/src/api/exporters/markdown/markdownExporter.test.js +0 -57
  118. package/dist/src/api/exporters/markdown/markdownExporter.test.js.map +0 -1
  119. package/dist/src/api/exporters/markdown/removeUnderlinesRehypePlugin.js +0 -33
  120. package/dist/src/api/exporters/markdown/removeUnderlinesRehypePlugin.js.map +0 -1
  121. package/dist/src/api/exporters/markdown/util/addSpacesToCheckboxesRehypePlugin.js +0 -37
  122. package/dist/src/api/exporters/markdown/util/addSpacesToCheckboxesRehypePlugin.js.map +0 -1
  123. package/dist/src/api/getBlockInfoFromPos.js +0 -165
  124. package/dist/src/api/getBlockInfoFromPos.js.map +0 -1
  125. package/dist/src/api/nodeConversions/blockToNode.js +0 -197
  126. package/dist/src/api/nodeConversions/blockToNode.js.map +0 -1
  127. package/dist/src/api/nodeConversions/fragmentToBlocks.js +0 -50
  128. package/dist/src/api/nodeConversions/fragmentToBlocks.js.map +0 -1
  129. package/dist/src/api/nodeConversions/nodeConversions.test.js +0 -54
  130. package/dist/src/api/nodeConversions/nodeConversions.test.js.map +0 -1
  131. package/dist/src/api/nodeConversions/nodeToBlock.js +0 -316
  132. package/dist/src/api/nodeConversions/nodeToBlock.js.map +0 -1
  133. package/dist/src/api/nodeUtil.js +0 -28
  134. package/dist/src/api/nodeUtil.js.map +0 -1
  135. package/dist/src/api/parsers/html/parseHTML.js +0 -19
  136. package/dist/src/api/parsers/html/parseHTML.js.map +0 -1
  137. package/dist/src/api/parsers/html/parseHTML.test.js +0 -470
  138. package/dist/src/api/parsers/html/parseHTML.test.js.map +0 -1
  139. package/dist/src/api/parsers/html/util/nestedLists.js +0 -106
  140. package/dist/src/api/parsers/html/util/nestedLists.js.map +0 -1
  141. package/dist/src/api/parsers/html/util/nestedLists.test.js +0 -166
  142. package/dist/src/api/parsers/html/util/nestedLists.test.js.map +0 -1
  143. package/dist/src/api/parsers/markdown/parseMarkdown.js +0 -52
  144. package/dist/src/api/parsers/markdown/parseMarkdown.js.map +0 -1
  145. package/dist/src/api/parsers/markdown/parseMarkdown.test.js +0 -112
  146. package/dist/src/api/parsers/markdown/parseMarkdown.test.js.map +0 -1
  147. package/dist/src/api/testUtil/cases/customBlocks.js +0 -313
  148. package/dist/src/api/testUtil/cases/customBlocks.js.map +0 -1
  149. package/dist/src/api/testUtil/cases/customInlineContent.js +0 -91
  150. package/dist/src/api/testUtil/cases/customInlineContent.js.map +0 -1
  151. package/dist/src/api/testUtil/cases/customStyles.js +0 -83
  152. package/dist/src/api/testUtil/cases/customStyles.js.map +0 -1
  153. package/dist/src/api/testUtil/cases/defaultSchema.js +0 -673
  154. package/dist/src/api/testUtil/cases/defaultSchema.js.map +0 -1
  155. package/dist/src/api/testUtil/index.js +0 -2
  156. package/dist/src/api/testUtil/index.js.map +0 -1
  157. package/dist/src/api/testUtil/partialBlockTestUtil.js +0 -114
  158. package/dist/src/api/testUtil/partialBlockTestUtil.js.map +0 -1
  159. package/dist/src/api/testUtil/paste.js +0 -29
  160. package/dist/src/api/testUtil/paste.js.map +0 -1
  161. package/dist/src/blocks/AudioBlockContent/AudioBlockContent.js +0 -104
  162. package/dist/src/blocks/AudioBlockContent/AudioBlockContent.js.map +0 -1
  163. package/dist/src/blocks/AudioBlockContent/parseAudioElement.js +0 -5
  164. package/dist/src/blocks/AudioBlockContent/parseAudioElement.js.map +0 -1
  165. package/dist/src/blocks/CodeBlockContent/CodeBlockContent.js +0 -281
  166. package/dist/src/blocks/CodeBlockContent/CodeBlockContent.js.map +0 -1
  167. package/dist/src/blocks/CodeBlockContent/defaultSupportedLanguages.js +0 -110
  168. package/dist/src/blocks/CodeBlockContent/defaultSupportedLanguages.js.map +0 -1
  169. package/dist/src/blocks/FileBlockContent/FileBlockContent.js +0 -71
  170. package/dist/src/blocks/FileBlockContent/FileBlockContent.js.map +0 -1
  171. package/dist/src/blocks/FileBlockContent/helpers/parse/parseEmbedElement.js +0 -5
  172. package/dist/src/blocks/FileBlockContent/helpers/parse/parseEmbedElement.js.map +0 -1
  173. package/dist/src/blocks/FileBlockContent/helpers/parse/parseFigureElement.js +0 -10
  174. package/dist/src/blocks/FileBlockContent/helpers/parse/parseFigureElement.js.map +0 -1
  175. package/dist/src/blocks/FileBlockContent/helpers/render/createAddFileButton.js +0 -39
  176. package/dist/src/blocks/FileBlockContent/helpers/render/createAddFileButton.js.map +0 -1
  177. package/dist/src/blocks/FileBlockContent/helpers/render/createFileBlockWrapper.js +0 -51
  178. package/dist/src/blocks/FileBlockContent/helpers/render/createFileBlockWrapper.js.map +0 -1
  179. package/dist/src/blocks/FileBlockContent/helpers/render/createFileNameWithIcon.js +0 -17
  180. package/dist/src/blocks/FileBlockContent/helpers/render/createFileNameWithIcon.js.map +0 -1
  181. package/dist/src/blocks/FileBlockContent/helpers/render/createResizableFileBlockWrapper.js +0 -147
  182. package/dist/src/blocks/FileBlockContent/helpers/render/createResizableFileBlockWrapper.js.map +0 -1
  183. package/dist/src/blocks/FileBlockContent/helpers/toExternalHTML/createFigureWithCaption.js +0 -9
  184. package/dist/src/blocks/FileBlockContent/helpers/toExternalHTML/createFigureWithCaption.js.map +0 -1
  185. package/dist/src/blocks/FileBlockContent/helpers/toExternalHTML/createLinkWithCaption.js +0 -11
  186. package/dist/src/blocks/FileBlockContent/helpers/toExternalHTML/createLinkWithCaption.js.map +0 -1
  187. package/dist/src/blocks/FileBlockContent/uploadToTmpFilesDotOrg_DEV_ONLY.js +0 -15
  188. package/dist/src/blocks/FileBlockContent/uploadToTmpFilesDotOrg_DEV_ONLY.js.map +0 -1
  189. package/dist/src/blocks/HeadingBlockContent/HeadingBlockContent.js +0 -145
  190. package/dist/src/blocks/HeadingBlockContent/HeadingBlockContent.js.map +0 -1
  191. package/dist/src/blocks/ImageBlockContent/ImageBlockContent.js +0 -114
  192. package/dist/src/blocks/ImageBlockContent/ImageBlockContent.js.map +0 -1
  193. package/dist/src/blocks/ImageBlockContent/parseImageElement.js +0 -6
  194. package/dist/src/blocks/ImageBlockContent/parseImageElement.js.map +0 -1
  195. package/dist/src/blocks/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.js +0 -113
  196. package/dist/src/blocks/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.js.map +0 -1
  197. package/dist/src/blocks/ListItemBlockContent/CheckListItemBlockContent/CheckListItemBlockContent.js +0 -224
  198. package/dist/src/blocks/ListItemBlockContent/CheckListItemBlockContent/CheckListItemBlockContent.js.map +0 -1
  199. package/dist/src/blocks/ListItemBlockContent/ListItemKeyboardShortcuts.js +0 -45
  200. package/dist/src/blocks/ListItemBlockContent/ListItemKeyboardShortcuts.js.map +0 -1
  201. package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListIndexingPlugin.js +0 -58
  202. package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListIndexingPlugin.js.map +0 -1
  203. package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.js +0 -130
  204. package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.js.map +0 -1
  205. package/dist/src/blocks/ParagraphBlockContent/ParagraphBlockContent.js +0 -52
  206. package/dist/src/blocks/ParagraphBlockContent/ParagraphBlockContent.js.map +0 -1
  207. package/dist/src/blocks/TableBlockContent/TableBlockContent.js +0 -129
  208. package/dist/src/blocks/TableBlockContent/TableBlockContent.js.map +0 -1
  209. package/dist/src/blocks/TableBlockContent/TableExtension.js +0 -64
  210. package/dist/src/blocks/TableBlockContent/TableExtension.js.map +0 -1
  211. package/dist/src/blocks/VideoBlockContent/VideoBlockContent.js +0 -114
  212. package/dist/src/blocks/VideoBlockContent/VideoBlockContent.js.map +0 -1
  213. package/dist/src/blocks/VideoBlockContent/parseVideoElement.js +0 -6
  214. package/dist/src/blocks/VideoBlockContent/parseVideoElement.js.map +0 -1
  215. package/dist/src/blocks/defaultBlockHelpers.js +0 -50
  216. package/dist/src/blocks/defaultBlockHelpers.js.map +0 -1
  217. package/dist/src/blocks/defaultBlockTypeGuards.js +0 -40
  218. package/dist/src/blocks/defaultBlockTypeGuards.js.map +0 -1
  219. package/dist/src/blocks/defaultBlocks.js +0 -50
  220. package/dist/src/blocks/defaultBlocks.js.map +0 -1
  221. package/dist/src/blocks/defaultProps.js +0 -19
  222. package/dist/src/blocks/defaultProps.js.map +0 -1
  223. package/dist/src/editor/BlockNoteEditor.js +0 -751
  224. package/dist/src/editor/BlockNoteEditor.js.map +0 -1
  225. package/dist/src/editor/BlockNoteEditor.test.js +0 -65
  226. package/dist/src/editor/BlockNoteEditor.test.js.map +0 -1
  227. package/dist/src/editor/BlockNoteExtensions.js +0 -192
  228. package/dist/src/editor/BlockNoteExtensions.js.map +0 -1
  229. package/dist/src/editor/BlockNoteSchema.js +0 -38
  230. package/dist/src/editor/BlockNoteSchema.js.map +0 -1
  231. package/dist/src/editor/BlockNoteTipTapEditor.js +0 -169
  232. package/dist/src/editor/BlockNoteTipTapEditor.js.map +0 -1
  233. package/dist/src/editor/cursorPositionTypes.js +0 -2
  234. package/dist/src/editor/cursorPositionTypes.js.map +0 -1
  235. package/dist/src/editor/defaultColors.js +0 -77
  236. package/dist/src/editor/defaultColors.js.map +0 -1
  237. package/dist/src/editor/selectionTypes.js +0 -2
  238. package/dist/src/editor/selectionTypes.js.map +0 -1
  239. package/dist/src/editor/transformPasted.js +0 -79
  240. package/dist/src/editor/transformPasted.js.map +0 -1
  241. package/dist/src/exporter/Exporter.js +0 -36
  242. package/dist/src/exporter/Exporter.js.map +0 -1
  243. package/dist/src/exporter/index.js +0 -3
  244. package/dist/src/exporter/index.js.map +0 -1
  245. package/dist/src/exporter/mapping.js +0 -12
  246. package/dist/src/exporter/mapping.js.map +0 -1
  247. package/dist/src/extensions/BackgroundColor/BackgroundColorExtension.js +0 -30
  248. package/dist/src/extensions/BackgroundColor/BackgroundColorExtension.js.map +0 -1
  249. package/dist/src/extensions/BackgroundColor/BackgroundColorMark.js +0 -39
  250. package/dist/src/extensions/BackgroundColor/BackgroundColorMark.js.map +0 -1
  251. package/dist/src/extensions/FilePanel/FilePanelPlugin.js +0 -131
  252. package/dist/src/extensions/FilePanel/FilePanelPlugin.js.map +0 -1
  253. package/dist/src/extensions/FormattingToolbar/FormattingToolbarPlugin.js +0 -197
  254. package/dist/src/extensions/FormattingToolbar/FormattingToolbarPlugin.js.map +0 -1
  255. package/dist/src/extensions/KeyboardShortcuts/KeyboardShortcutsExtension.js +0 -341
  256. package/dist/src/extensions/KeyboardShortcuts/KeyboardShortcutsExtension.js.map +0 -1
  257. package/dist/src/extensions/LinkToolbar/LinkToolbarPlugin.js +0 -251
  258. package/dist/src/extensions/LinkToolbar/LinkToolbarPlugin.js.map +0 -1
  259. package/dist/src/extensions/LinkToolbar/protocols.js +0 -14
  260. package/dist/src/extensions/LinkToolbar/protocols.js.map +0 -1
  261. package/dist/src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.js +0 -54
  262. package/dist/src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.js.map +0 -1
  263. package/dist/src/extensions/Placeholder/PlaceholderPlugin.js +0 -90
  264. package/dist/src/extensions/Placeholder/PlaceholderPlugin.js.map +0 -1
  265. package/dist/src/extensions/PreviousBlockType/PreviousBlockTypePlugin.js +0 -187
  266. package/dist/src/extensions/PreviousBlockType/PreviousBlockTypePlugin.js.map +0 -1
  267. package/dist/src/extensions/SideMenu/MultipleNodeSelection.js +0 -68
  268. package/dist/src/extensions/SideMenu/MultipleNodeSelection.js.map +0 -1
  269. package/dist/src/extensions/SideMenu/SideMenuPlugin.js +0 -347
  270. package/dist/src/extensions/SideMenu/SideMenuPlugin.js.map +0 -1
  271. package/dist/src/extensions/SideMenu/dragging.js +0 -135
  272. package/dist/src/extensions/SideMenu/dragging.js.map +0 -1
  273. package/dist/src/extensions/SuggestionMenu/DefaultGridSuggestionItem.js +0 -2
  274. package/dist/src/extensions/SuggestionMenu/DefaultGridSuggestionItem.js.map +0 -1
  275. package/dist/src/extensions/SuggestionMenu/DefaultSuggestionItem.js +0 -2
  276. package/dist/src/extensions/SuggestionMenu/DefaultSuggestionItem.js.map +0 -1
  277. package/dist/src/extensions/SuggestionMenu/SuggestionPlugin.js +0 -245
  278. package/dist/src/extensions/SuggestionMenu/SuggestionPlugin.js.map +0 -1
  279. package/dist/src/extensions/SuggestionMenu/getDefaultEmojiPickerItems.js +0 -26
  280. package/dist/src/extensions/SuggestionMenu/getDefaultEmojiPickerItems.js.map +0 -1
  281. package/dist/src/extensions/SuggestionMenu/getDefaultSlashMenuItems.js +0 -241
  282. package/dist/src/extensions/SuggestionMenu/getDefaultSlashMenuItems.js.map +0 -1
  283. package/dist/src/extensions/TableHandles/TableHandlesPlugin.js +0 -579
  284. package/dist/src/extensions/TableHandles/TableHandlesPlugin.js.map +0 -1
  285. package/dist/src/extensions/TextAlignment/TextAlignmentExtension.js +0 -36
  286. package/dist/src/extensions/TextAlignment/TextAlignmentExtension.js.map +0 -1
  287. package/dist/src/extensions/TextColor/TextColorExtension.js +0 -29
  288. package/dist/src/extensions/TextColor/TextColorExtension.js.map +0 -1
  289. package/dist/src/extensions/TextColor/TextColorMark.js +0 -37
  290. package/dist/src/extensions/TextColor/TextColorMark.js.map +0 -1
  291. package/dist/src/extensions/TrailingNode/TrailingNodeExtension.js +0 -58
  292. package/dist/src/extensions/TrailingNode/TrailingNodeExtension.js.map +0 -1
  293. package/dist/src/extensions/UniqueID/UniqueID.js +0 -283
  294. package/dist/src/extensions/UniqueID/UniqueID.js.map +0 -1
  295. package/dist/src/extensions/getDraggableBlockFromElement.js +0 -13
  296. package/dist/src/extensions/getDraggableBlockFromElement.js.map +0 -1
  297. package/dist/src/extensions-shared/UiElementPosition.js +0 -2
  298. package/dist/src/extensions-shared/UiElementPosition.js.map +0 -1
  299. package/dist/src/i18n/dictionary.js +0 -4
  300. package/dist/src/i18n/dictionary.js.map +0 -1
  301. package/dist/src/i18n/locales/ar.js +0 -298
  302. package/dist/src/i18n/locales/ar.js.map +0 -1
  303. package/dist/src/i18n/locales/de.js +0 -313
  304. package/dist/src/i18n/locales/de.js.map +0 -1
  305. package/dist/src/i18n/locales/en.js +0 -314
  306. package/dist/src/i18n/locales/en.js.map +0 -1
  307. package/dist/src/i18n/locales/es.js +0 -312
  308. package/dist/src/i18n/locales/es.js.map +0 -1
  309. package/dist/src/i18n/locales/fr.js +0 -313
  310. package/dist/src/i18n/locales/fr.js.map +0 -1
  311. package/dist/src/i18n/locales/hr.js +0 -308
  312. package/dist/src/i18n/locales/hr.js.map +0 -1
  313. package/dist/src/i18n/locales/index.js +0 -16
  314. package/dist/src/i18n/locales/index.js.map +0 -1
  315. package/dist/src/i18n/locales/is.js +0 -305
  316. package/dist/src/i18n/locales/is.js.map +0 -1
  317. package/dist/src/i18n/locales/ja.js +0 -333
  318. package/dist/src/i18n/locales/ja.js.map +0 -1
  319. package/dist/src/i18n/locales/ko.js +0 -326
  320. package/dist/src/i18n/locales/ko.js.map +0 -1
  321. package/dist/src/i18n/locales/nl.js +0 -313
  322. package/dist/src/i18n/locales/nl.js.map +0 -1
  323. package/dist/src/i18n/locales/pl.js +0 -297
  324. package/dist/src/i18n/locales/pl.js.map +0 -1
  325. package/dist/src/i18n/locales/pt.js +0 -305
  326. package/dist/src/i18n/locales/pt.js.map +0 -1
  327. package/dist/src/i18n/locales/ru.js +0 -340
  328. package/dist/src/i18n/locales/ru.js.map +0 -1
  329. package/dist/src/i18n/locales/vi.js +0 -312
  330. package/dist/src/i18n/locales/vi.js.map +0 -1
  331. package/dist/src/i18n/locales/zh.js +0 -346
  332. package/dist/src/i18n/locales/zh.js.map +0 -1
  333. package/dist/src/index.js +0 -63
  334. package/dist/src/index.js.map +0 -1
  335. package/dist/src/pm-nodes/BlockContainer.js +0 -72
  336. package/dist/src/pm-nodes/BlockContainer.js.map +0 -1
  337. package/dist/src/pm-nodes/BlockGroup.js +0 -43
  338. package/dist/src/pm-nodes/BlockGroup.js.map +0 -1
  339. package/dist/src/pm-nodes/Doc.js +0 -7
  340. package/dist/src/pm-nodes/Doc.js.map +0 -1
  341. package/dist/src/pm-nodes/index.js +0 -4
  342. package/dist/src/pm-nodes/index.js.map +0 -1
  343. package/dist/src/schema/blocks/createSpec.js +0 -126
  344. package/dist/src/schema/blocks/createSpec.js.map +0 -1
  345. package/dist/src/schema/blocks/internal.js +0 -147
  346. package/dist/src/schema/blocks/internal.js.map +0 -1
  347. package/dist/src/schema/blocks/types.js +0 -2
  348. package/dist/src/schema/blocks/types.js.map +0 -1
  349. package/dist/src/schema/index.js +0 -11
  350. package/dist/src/schema/index.js.map +0 -1
  351. package/dist/src/schema/inlineContent/createSpec.js +0 -64
  352. package/dist/src/schema/inlineContent/createSpec.js.map +0 -1
  353. package/dist/src/schema/inlineContent/internal.js +0 -52
  354. package/dist/src/schema/inlineContent/internal.js.map +0 -1
  355. package/dist/src/schema/inlineContent/types.js +0 -10
  356. package/dist/src/schema/inlineContent/types.js.map +0 -1
  357. package/dist/src/schema/propTypes.js +0 -2
  358. package/dist/src/schema/propTypes.js.map +0 -1
  359. package/dist/src/schema/styles/createSpec.js +0 -48
  360. package/dist/src/schema/styles/createSpec.js.map +0 -1
  361. package/dist/src/schema/styles/internal.js +0 -53
  362. package/dist/src/schema/styles/internal.js.map +0 -1
  363. package/dist/src/schema/styles/types.js +0 -2
  364. package/dist/src/schema/styles/types.js.map +0 -1
  365. package/dist/src/util/EventEmitter.js +0 -33
  366. package/dist/src/util/EventEmitter.js.map +0 -1
  367. package/dist/src/util/browser.js +0 -17
  368. package/dist/src/util/browser.js.map +0 -1
  369. package/dist/src/util/combineByGroup.js +0 -20
  370. package/dist/src/util/combineByGroup.js.map +0 -1
  371. package/dist/src/util/esmDependencies.js +0 -35
  372. package/dist/src/util/esmDependencies.js.map +0 -1
  373. package/dist/src/util/string.js +0 -14
  374. package/dist/src/util/string.js.map +0 -1
  375. package/dist/src/util/typescript.js +0 -12
  376. package/dist/src/util/typescript.js.map +0 -1
  377. /package/src/api/clipboard/__snapshots__/{childToParent.html → internal/childToParent.html} +0 -0
  378. /package/src/api/clipboard/__snapshots__/{childrenToNextParent.html → internal/childrenToNextParent.html} +0 -0
  379. /package/src/api/clipboard/__snapshots__/{childrenToNextParentsChildren.html → internal/childrenToNextParentsChildren.html} +0 -0
  380. /package/src/api/clipboard/__snapshots__/{image.html → internal/image.html} +0 -0
  381. /package/src/api/clipboard/__snapshots__/{multipleChildren.html → internal/multipleChildren.html} +0 -0
  382. /package/src/api/clipboard/__snapshots__/{multipleStyledText.html → internal/multipleStyledText.html} +0 -0
  383. /package/src/api/clipboard/__snapshots__/{nestedImage.html → internal/nestedImage.html} +0 -0
  384. /package/src/api/clipboard/__snapshots__/{partialChildToParent.html → internal/partialChildToParent.html} +0 -0
  385. /package/src/api/clipboard/__snapshots__/{styledText.html → internal/styledText.html} +0 -0
  386. /package/src/api/clipboard/__snapshots__/{tableAllCells.html → internal/tableAllCells.html} +0 -0
  387. /package/src/api/clipboard/__snapshots__/{tableCell.html → internal/tableCell.html} +0 -0
  388. /package/src/api/clipboard/__snapshots__/{tableCellText.html → internal/tableCellText.html} +0 -0
  389. /package/src/api/clipboard/__snapshots__/{tableRow.html → internal/tableRow.html} +0 -0
  390. /package/src/api/clipboard/__snapshots__/{unstyledText.html → internal/unstyledText.html} +0 -0
  391. /package/types/src/api/clipboard/{clipboard.test.d.ts → clipboardExternal.test.d.ts} +0 -0
@@ -1,126 +0,0 @@
1
- import { createInternalBlockSpec, createStronglyTypedTiptapNode, getBlockFromPos, propsToAttributes, wrapInBlockStructure, } from "./internal.js";
2
- // Function that causes events within non-selectable blocks to be handled by the
3
- // browser instead of the editor.
4
- export function applyNonSelectableBlockFix(nodeView, editor) {
5
- nodeView.stopEvent = (event) => {
6
- // Blurs the editor on mouse down as the block is non-selectable. This is
7
- // mainly done to prevent UI elements like the formatting toolbar from being
8
- // visible while content within a non-selectable block is selected.
9
- if (event.type === "mousedown") {
10
- setTimeout(() => {
11
- editor.view.dom.blur();
12
- }, 10);
13
- }
14
- return true;
15
- };
16
- }
17
- // Function that uses the 'parse' function of a blockConfig to create a
18
- // TipTap node's `parseHTML` property. This is only used for parsing content
19
- // from the clipboard.
20
- export function getParseRules(config, customParseFunction) {
21
- const rules = [
22
- {
23
- tag: "[data-content-type=" + config.type + "]",
24
- contentElement: "[data-editable]",
25
- },
26
- ];
27
- if (customParseFunction) {
28
- rules.push({
29
- tag: "*",
30
- getAttrs(node) {
31
- if (typeof node === "string") {
32
- return false;
33
- }
34
- const props = customParseFunction?.(node);
35
- if (props === undefined) {
36
- return false;
37
- }
38
- return props;
39
- },
40
- });
41
- }
42
- // getContent(node, schema) {
43
- // const block = blockConfig.parse?.(node as HTMLElement);
44
- //
45
- // if (block !== undefined && block.content !== undefined) {
46
- // return Fragment.from(
47
- // typeof block.content === "string"
48
- // ? schema.text(block.content)
49
- // : inlineContentToNodes(block.content, schema)
50
- // );
51
- // }
52
- //
53
- // return Fragment.empty;
54
- // },
55
- // });
56
- // }
57
- return rules;
58
- }
59
- // A function to create custom block for API consumers
60
- // we want to hide the tiptap node from API consumers and provide a simpler API surface instead
61
- export function createBlockSpec(blockConfig, blockImplementation) {
62
- const node = createStronglyTypedTiptapNode({
63
- name: blockConfig.type,
64
- content: (blockConfig.content === "inline"
65
- ? "inline*"
66
- : ""),
67
- group: "blockContent",
68
- selectable: blockConfig.isSelectable ?? true,
69
- addAttributes() {
70
- return propsToAttributes(blockConfig.propSchema);
71
- },
72
- parseHTML() {
73
- return getParseRules(blockConfig, blockImplementation.parse);
74
- },
75
- renderHTML({ HTMLAttributes }) {
76
- // renderHTML is used for copy/pasting content from the editor back into
77
- // the editor, so we need to make sure the `blockContent` element is
78
- // structured correctly as this is what's used for parsing blocks. We
79
- // just render a placeholder div inside as the `blockContent` element
80
- // already has all the information needed for proper parsing.
81
- const div = document.createElement("div");
82
- return wrapInBlockStructure({
83
- dom: div,
84
- contentDOM: blockConfig.content === "inline" ? div : undefined,
85
- }, blockConfig.type, {}, blockConfig.propSchema, blockConfig.isFileBlock, HTMLAttributes);
86
- },
87
- addNodeView() {
88
- return ({ getPos }) => {
89
- // Gets the BlockNote editor instance
90
- const editor = this.options.editor;
91
- // Gets the block
92
- const block = getBlockFromPos(getPos, editor, this.editor, blockConfig.type);
93
- // Gets the custom HTML attributes for `blockContent` nodes
94
- const blockContentDOMAttributes = this.options.domAttributes?.blockContent || {};
95
- const output = blockImplementation.render(block, editor);
96
- const nodeView = wrapInBlockStructure(output, block.type, block.props, blockConfig.propSchema, blockContentDOMAttributes);
97
- if (blockConfig.isSelectable === false) {
98
- applyNonSelectableBlockFix(nodeView, this.editor);
99
- }
100
- return nodeView;
101
- };
102
- },
103
- });
104
- if (node.name !== blockConfig.type) {
105
- throw new Error("Node name does not match block type. This is a bug in BlockNote.");
106
- }
107
- return createInternalBlockSpec(blockConfig, {
108
- node,
109
- toInternalHTML: (block, editor) => {
110
- const blockContentDOMAttributes = node.options.domAttributes?.blockContent || {};
111
- const output = blockImplementation.render(block, editor);
112
- return wrapInBlockStructure(output, block.type, block.props, blockConfig.propSchema, blockConfig.isFileBlock, blockContentDOMAttributes);
113
- },
114
- // TODO: this should not have wrapInBlockStructure and generally be a lot simpler
115
- // post-processing in externalHTMLExporter should not be necessary
116
- toExternalHTML: (block, editor) => {
117
- const blockContentDOMAttributes = node.options.domAttributes?.blockContent || {};
118
- let output = blockImplementation.toExternalHTML?.(block, editor);
119
- if (output === undefined) {
120
- output = blockImplementation.render(block, editor);
121
- }
122
- return wrapInBlockStructure(output, block.type, block.props, blockConfig.propSchema, blockContentDOMAttributes);
123
- },
124
- });
125
- }
126
- //# sourceMappingURL=createSpec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSpec.js","sourceRoot":"","sources":["../../../../src/schema/blocks/createSpec.ts"],"names":[],"mappings":"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"}
@@ -1,147 +0,0 @@
1
- import { Node, } from "@tiptap/core";
2
- import { defaultBlockToHTML } from "../../blocks/defaultBlockHelpers.js";
3
- import { inheritedProps } from "../../blocks/defaultProps.js";
4
- import { mergeCSSClasses } from "../../util/browser.js";
5
- import { camelToDataKebab } from "../../util/string.js";
6
- // Function that uses the 'propSchema' of a blockConfig to create a TipTap
7
- // node's `addAttributes` property.
8
- // TODO: extract function
9
- export function propsToAttributes(propSchema) {
10
- const tiptapAttributes = {};
11
- Object.entries(propSchema)
12
- .filter(([name, _spec]) => !inheritedProps.includes(name))
13
- .forEach(([name, spec]) => {
14
- tiptapAttributes[name] = {
15
- default: spec.default,
16
- keepOnSplit: true,
17
- // Props are displayed in kebab-case as HTML attributes. If a prop's
18
- // value is the same as its default, we don't display an HTML
19
- // attribute for it.
20
- parseHTML: (element) => {
21
- const value = element.getAttribute(camelToDataKebab(name));
22
- if (value === null) {
23
- return null;
24
- }
25
- if (typeof spec.default === "boolean") {
26
- if (value === "true") {
27
- return true;
28
- }
29
- if (value === "false") {
30
- return false;
31
- }
32
- return null;
33
- }
34
- if (typeof spec.default === "number") {
35
- const asNumber = parseFloat(value);
36
- const isNumeric = !Number.isNaN(asNumber) && Number.isFinite(asNumber);
37
- if (isNumeric) {
38
- return asNumber;
39
- }
40
- return null;
41
- }
42
- return value;
43
- },
44
- renderHTML: (attributes) => attributes[name] !== spec.default
45
- ? {
46
- [camelToDataKebab(name)]: attributes[name],
47
- }
48
- : {},
49
- };
50
- });
51
- return tiptapAttributes;
52
- }
53
- // Used to figure out which block should be rendered. This block is then used to
54
- // create the node view.
55
- export function getBlockFromPos(getPos, editor, tipTapEditor, type) {
56
- // Gets position of the node
57
- if (typeof getPos === "boolean") {
58
- throw new Error("Cannot find node position as getPos is a boolean, not a function.");
59
- }
60
- const pos = getPos();
61
- // Gets parent blockContainer node
62
- const blockContainer = tipTapEditor.state.doc.resolve(pos).node();
63
- // Gets block identifier
64
- const blockIdentifier = blockContainer.attrs.id;
65
- if (!blockIdentifier) {
66
- throw new Error("Block doesn't have id");
67
- }
68
- // Gets the block
69
- const block = editor.getBlock(blockIdentifier);
70
- if (block.type !== type) {
71
- throw new Error("Block type does not match");
72
- }
73
- return block;
74
- }
75
- // Function that wraps the `dom` element returned from 'blockConfig.render' in a
76
- // `blockContent` div, which contains the block type and props as HTML
77
- // attributes. If `blockConfig.render` also returns a `contentDOM`, it also adds
78
- // an `inlineContent` class to it.
79
- export function wrapInBlockStructure(element, blockType, blockProps, propSchema, isFileBlock = false, domAttributes) {
80
- // Creates `blockContent` element
81
- const blockContent = document.createElement("div");
82
- // Adds custom HTML attributes
83
- if (domAttributes !== undefined) {
84
- for (const [attr, value] of Object.entries(domAttributes)) {
85
- if (attr !== "class") {
86
- blockContent.setAttribute(attr, value);
87
- }
88
- }
89
- }
90
- // Sets blockContent class
91
- blockContent.className = mergeCSSClasses("bn-block-content", domAttributes?.class || "");
92
- // Sets content type attribute
93
- blockContent.setAttribute("data-content-type", blockType);
94
- // Adds props as HTML attributes in kebab-case with "data-" prefix. Skips props
95
- // which are already added as HTML attributes to the parent `blockContent`
96
- // element (inheritedProps) and props set to their default values.
97
- for (const [prop, value] of Object.entries(blockProps)) {
98
- if (!inheritedProps.includes(prop) && value !== propSchema[prop].default) {
99
- blockContent.setAttribute(camelToDataKebab(prop), value);
100
- }
101
- }
102
- // Adds file block attribute
103
- if (isFileBlock) {
104
- blockContent.setAttribute("data-file-block", "");
105
- }
106
- blockContent.appendChild(element.dom);
107
- if (element.contentDOM !== undefined) {
108
- element.contentDOM.className = mergeCSSClasses("bn-inline-content", element.contentDOM.className);
109
- element.contentDOM.setAttribute("data-editable", "");
110
- }
111
- return {
112
- ...element,
113
- dom: blockContent,
114
- };
115
- }
116
- export function createStronglyTypedTiptapNode(config) {
117
- return Node.create(config); // force re-typing (should be safe as it's type-checked from the config)
118
- }
119
- // This helper function helps to instantiate a blockspec with a
120
- // config and implementation that conform to the type of Config
121
- export function createInternalBlockSpec(config, implementation) {
122
- return {
123
- config,
124
- implementation,
125
- };
126
- }
127
- export function createBlockSpecFromStronglyTypedTiptapNode(node, propSchema, requiredExtensions) {
128
- return createInternalBlockSpec({
129
- type: node.name,
130
- content: (node.config.content === "inline*"
131
- ? "inline"
132
- : node.config.content === "tableRow+"
133
- ? "table"
134
- : "none"),
135
- propSchema,
136
- }, {
137
- node,
138
- requiredExtensions,
139
- toInternalHTML: defaultBlockToHTML,
140
- toExternalHTML: defaultBlockToHTML,
141
- // parse: () => undefined, // parse rules are in node already
142
- });
143
- }
144
- export function getBlockSchemaFromSpecs(specs) {
145
- return Object.fromEntries(Object.entries(specs).map(([key, value]) => [key, value.config]));
146
- }
147
- //# sourceMappingURL=internal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../../src/schema/blocks/internal.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/schema/blocks/types.ts"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- export * from "./blocks/createSpec.js";
2
- export * from "./blocks/internal.js";
3
- export * from "./blocks/types.js";
4
- export * from "./inlineContent/createSpec.js";
5
- export * from "./inlineContent/internal.js";
6
- export * from "./inlineContent/types.js";
7
- export * from "./propTypes.js";
8
- export * from "./styles/createSpec.js";
9
- export * from "./styles/internal.js";
10
- export * from "./styles/types.js";
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
@@ -1,64 +0,0 @@
1
- import { Node } from "@tiptap/core";
2
- import { inlineContentToNodes } from "../../api/nodeConversions/blockToNode.js";
3
- import { nodeToCustomInlineContent } from "../../api/nodeConversions/nodeToBlock.js";
4
- import { propsToAttributes } from "../blocks/internal.js";
5
- import { addInlineContentAttributes, addInlineContentKeyboardShortcuts, createInlineContentSpecFromTipTapNode, } from "./internal.js";
6
- export function getInlineContentParseRules(config) {
7
- return [
8
- {
9
- tag: `[data-inline-content-type="${config.type}"]`,
10
- contentElement: (element) => {
11
- const htmlElement = element;
12
- if (htmlElement.matches("[data-editable]")) {
13
- return htmlElement;
14
- }
15
- return htmlElement.querySelector("[data-editable]") || htmlElement;
16
- },
17
- },
18
- ];
19
- }
20
- export function createInlineContentSpec(inlineContentConfig, inlineContentImplementation) {
21
- const node = Node.create({
22
- name: inlineContentConfig.type,
23
- inline: true,
24
- group: "inline",
25
- selectable: inlineContentConfig.content === "styled",
26
- atom: inlineContentConfig.content === "none",
27
- content: (inlineContentConfig.content === "styled"
28
- ? "inline*"
29
- : ""),
30
- addAttributes() {
31
- return propsToAttributes(inlineContentConfig.propSchema);
32
- },
33
- addKeyboardShortcuts() {
34
- return addInlineContentKeyboardShortcuts(inlineContentConfig);
35
- },
36
- parseHTML() {
37
- return getInlineContentParseRules(inlineContentConfig);
38
- },
39
- renderHTML({ node }) {
40
- const editor = this.options.editor;
41
- const output = inlineContentImplementation.render(nodeToCustomInlineContent(node, editor.schema.inlineContentSchema, editor.schema.styleSchema), // TODO: fix cast
42
- () => {
43
- // No-op
44
- }, editor);
45
- return addInlineContentAttributes(output, inlineContentConfig.type, node.attrs, inlineContentConfig.propSchema);
46
- },
47
- addNodeView() {
48
- return ({ node, getPos }) => {
49
- const editor = this.options.editor;
50
- const output = inlineContentImplementation.render(nodeToCustomInlineContent(node, editor.schema.inlineContentSchema, editor.schema.styleSchema), // TODO: fix cast
51
- (update) => {
52
- if (typeof getPos === "boolean") {
53
- return;
54
- }
55
- const content = inlineContentToNodes([update], editor._tiptapEditor.schema, editor.schema.styleSchema);
56
- editor.dispatch(editor.prosemirrorView.state.tr.replaceWith(getPos(), getPos() + node.nodeSize, content));
57
- }, editor);
58
- return addInlineContentAttributes(output, inlineContentConfig.type, node.attrs, inlineContentConfig.propSchema);
59
- };
60
- },
61
- });
62
- return createInlineContentSpecFromTipTapNode(node, inlineContentConfig.propSchema); // TODO: fix cast
63
- }
64
- //# sourceMappingURL=createSpec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSpec.js","sourceRoot":"","sources":["../../../../src/schema/inlineContent/createSpec.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- import { camelToDataKebab } from "../../util/string.js";
2
- // Function that adds necessary classes and attributes to the `dom` element
3
- // returned from a custom inline content's 'render' function, to ensure no data
4
- // is lost on internal copy & paste.
5
- export function addInlineContentAttributes(element, inlineContentType, inlineContentProps, propSchema) {
6
- // Sets content type attribute
7
- element.dom.setAttribute("data-inline-content-type", inlineContentType);
8
- // Adds props as HTML attributes in kebab-case with "data-" prefix. Skips props
9
- // set to their default values.
10
- Object.entries(inlineContentProps)
11
- .filter(([prop, value]) => value !== propSchema[prop].default)
12
- .map(([prop, value]) => {
13
- return [camelToDataKebab(prop), value];
14
- })
15
- .forEach(([prop, value]) => element.dom.setAttribute(prop, value));
16
- if (element.contentDOM !== undefined) {
17
- element.contentDOM.setAttribute("data-editable", "");
18
- }
19
- return element;
20
- }
21
- // see https://github.com/TypeCellOS/BlockNote/pull/435
22
- export function addInlineContentKeyboardShortcuts(config) {
23
- return {
24
- Backspace: ({ editor }) => {
25
- const resolvedPos = editor.state.selection.$from;
26
- return (editor.state.selection.empty &&
27
- resolvedPos.node().type.name === config.type &&
28
- resolvedPos.parentOffset === 0);
29
- },
30
- };
31
- }
32
- // This helper function helps to instantiate a InlineContentSpec with a
33
- // config and implementation that conform to the type of Config
34
- export function createInternalInlineContentSpec(config, implementation) {
35
- return {
36
- config,
37
- implementation,
38
- };
39
- }
40
- export function createInlineContentSpecFromTipTapNode(node, propSchema) {
41
- return createInternalInlineContentSpec({
42
- type: node.name,
43
- propSchema,
44
- content: node.config.content === "inline*" ? "styled" : "none",
45
- }, {
46
- node,
47
- });
48
- }
49
- export function getInlineContentSchemaFromSpecs(specs) {
50
- return Object.fromEntries(Object.entries(specs).map(([key, value]) => [key, value.config]));
51
- }
52
- //# sourceMappingURL=internal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../../src/schema/inlineContent/internal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAWxD,2EAA2E;AAC3E,+EAA+E;AAC/E,oCAAoC;AACpC,MAAM,UAAU,0BAA0B,CAIxC,OAGC,EACD,iBAAwB,EACxB,kBAAkC,EAClC,UAAmB;IAKnB,8BAA8B;IAC9B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,CAAC;IACxE,+EAA+E;IAC/E,+BAA+B;IAC/B,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;SAC7D,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QACrB,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC;SACD,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAErE,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,iCAAiC,CAG/C,MAAS;IAIT,OAAO;QACL,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YACxB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;YAEjD,OAAO,CACL,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK;gBAC5B,WAAW,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;gBAC5C,WAAW,CAAC,YAAY,KAAK,CAAC,CAC/B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,+DAA+D;AAC/D,MAAM,UAAU,+BAA+B,CAC7C,MAAS,EACT,cAA8C;IAE9C,OAAO;QACL,MAAM;QACN,cAAc;KACgB,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,qCAAqC,CAGnD,IAAO,EAAE,UAAa;IACtB,OAAO,+BAA+B,CACpC;QACE,IAAI,EAAE,IAAI,CAAC,IAAiB;QAC5B,UAAU;QACV,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;KAC/D,EACD;QACE,IAAI;KACL,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,KAAQ;IAER,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAC9B,CAAC;AACvC,CAAC"}
@@ -1,10 +0,0 @@
1
- export function isLinkInlineContent(content) {
2
- return content.type === "link";
3
- }
4
- export function isPartialLinkInlineContent(content) {
5
- return typeof content !== "string" && content.type === "link";
6
- }
7
- export function isStyledTextInlineContent(content) {
8
- return typeof content !== "string" && content.type === "text";
9
- }
10
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/schema/inlineContent/types.ts"],"names":[],"mappings":"AA+HA,MAAM,UAAU,mBAAmB,CACjC,OAA8B;IAE9B,OAAO,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,OAA4C;IAE5C,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,OAA4C;IAE5C,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;AAChE,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=propTypes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"propTypes.js","sourceRoot":"","sources":["../../../src/schema/propTypes.ts"],"names":[],"mappings":""}
@@ -1,48 +0,0 @@
1
- import { Mark } from "@tiptap/core";
2
- import { UnreachableCaseError } from "../../util/typescript.js";
3
- import { addStyleAttributes, createInternalStyleSpec, stylePropsToAttributes, } from "./internal.js";
4
- // TODO: support serialization
5
- export function getStyleParseRules(config) {
6
- return [
7
- {
8
- tag: `[data-style-type="${config.type}"]`,
9
- contentElement: (element) => {
10
- const htmlElement = element;
11
- if (htmlElement.matches("[data-editable]")) {
12
- return htmlElement;
13
- }
14
- return htmlElement.querySelector("[data-editable]") || htmlElement;
15
- },
16
- },
17
- ];
18
- }
19
- export function createStyleSpec(styleConfig, styleImplementation) {
20
- const mark = Mark.create({
21
- name: styleConfig.type,
22
- addAttributes() {
23
- return stylePropsToAttributes(styleConfig.propSchema);
24
- },
25
- parseHTML() {
26
- return getStyleParseRules(styleConfig);
27
- },
28
- renderHTML({ mark }) {
29
- let renderResult;
30
- if (styleConfig.propSchema === "boolean") {
31
- // @ts-ignore not sure why this is complaining
32
- renderResult = styleImplementation.render();
33
- }
34
- else if (styleConfig.propSchema === "string") {
35
- renderResult = styleImplementation.render(mark.attrs.stringValue);
36
- }
37
- else {
38
- throw new UnreachableCaseError(styleConfig.propSchema);
39
- }
40
- // const renderResult = styleImplementation.render();
41
- return addStyleAttributes(renderResult, styleConfig.type, mark.attrs.stringValue, styleConfig.propSchema);
42
- },
43
- });
44
- return createInternalStyleSpec(styleConfig, {
45
- mark,
46
- });
47
- }
48
- //# sourceMappingURL=createSpec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSpec.js","sourceRoot":"","sources":["../../../../src/schema/styles/createSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAevB,8BAA8B;AAE9B,MAAM,UAAU,kBAAkB,CAAC,MAAmB;IACpD,OAAO;QACL;YACE,GAAG,EAAE,qBAAqB,MAAM,CAAC,IAAI,IAAI;YACzC,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC1B,MAAM,WAAW,GAAG,OAAsB,CAAC;gBAE3C,IAAI,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC3C,OAAO,WAAW,CAAC;gBACrB,CAAC;gBAED,OAAO,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,WAAW,CAAC;YACrE,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,WAAc,EACd,mBAAiD;IAEjD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,IAAI,EAAE,WAAW,CAAC,IAAI;QAEtB,aAAa;YACX,OAAO,sBAAsB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC;QAED,SAAS;YACP,OAAO,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC;QAED,UAAU,CAAC,EAAE,IAAI,EAAE;YACjB,IAAI,YAGH,CAAC;YAEF,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACzC,8CAA8C;gBAC9C,YAAY,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC;YAC9C,CAAC;iBAAM,IAAI,WAAW,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC/C,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,oBAAoB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACzD,CAAC;YAED,qDAAqD;YACrD,OAAO,kBAAkB,CACvB,YAAY,EACZ,WAAW,CAAC,IAAI,EAChB,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,WAAW,CAAC,UAAU,CACvB,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,uBAAuB,CAAC,WAAW,EAAE;QAC1C,IAAI;KACL,CAAC,CAAC;AACL,CAAC"}
@@ -1,53 +0,0 @@
1
- export function stylePropsToAttributes(propSchema) {
2
- if (propSchema === "boolean") {
3
- return {};
4
- }
5
- return {
6
- stringValue: {
7
- default: undefined,
8
- keepOnSplit: true,
9
- parseHTML: (element) => element.getAttribute("data-value"),
10
- renderHTML: (attributes) => attributes.stringValue !== undefined
11
- ? {
12
- "data-value": attributes.stringValue,
13
- }
14
- : {},
15
- },
16
- };
17
- }
18
- // Function that adds necessary classes and attributes to the `dom` element
19
- // returned from a custom style's 'render' function, to ensure no data is lost
20
- // on internal copy & paste.
21
- export function addStyleAttributes(element, styleType, styleValue, propSchema) {
22
- // Sets content type attribute
23
- element.dom.setAttribute("data-style-type", styleType);
24
- // Adds style value as an HTML attribute in kebab-case with "data-" prefix, if
25
- // the style takes a string value.
26
- if (propSchema === "string") {
27
- element.dom.setAttribute("data-value", styleValue);
28
- }
29
- if (element.contentDOM !== undefined) {
30
- element.contentDOM.setAttribute("data-editable", "");
31
- }
32
- return element;
33
- }
34
- // This helper function helps to instantiate a stylespec with a
35
- // config and implementation that conform to the type of Config
36
- export function createInternalStyleSpec(config, implementation) {
37
- return {
38
- config,
39
- implementation,
40
- };
41
- }
42
- export function createStyleSpecFromTipTapMark(mark, propSchema) {
43
- return createInternalStyleSpec({
44
- type: mark.name,
45
- propSchema,
46
- }, {
47
- mark,
48
- });
49
- }
50
- export function getStyleSchemaFromSpecs(specs) {
51
- return Object.fromEntries(Object.entries(specs).map(([key, value]) => [key, value.config]));
52
- }
53
- //# sourceMappingURL=internal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../../src/schema/styles/internal.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,sBAAsB,CACpC,UAA2B;IAE3B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;QACL,WAAW,EAAE;YACX,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;YAC1D,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CACzB,UAAU,CAAC,WAAW,KAAK,SAAS;gBAClC,CAAC,CAAC;oBACE,YAAY,EAAE,UAAU,CAAC,WAAW;iBACrC;gBACH,CAAC,CAAC,EAAE;SACT;KACF,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,8EAA8E;AAC9E,4BAA4B;AAC5B,MAAM,UAAU,kBAAkB,CAIhC,OAGC,EACD,SAAgB,EAChB,UAA0D,EAC1D,UAAmB;IAKnB,8BAA8B;IAC9B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACvD,8EAA8E;IAC9E,kCAAkC;IAClC,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,UAAoB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+DAA+D;AAC/D,+DAA+D;AAC/D,MAAM,UAAU,uBAAuB,CACrC,MAAS,EACT,cAAmC;IAEnC,OAAO;QACL,MAAM;QACN,cAAc;KACQ,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAG3C,IAAO,EAAE,UAAa;IACtB,OAAO,uBAAuB,CAC5B;QACE,IAAI,EAAE,IAAI,CAAC,IAAiB;QAC5B,UAAU;KACX,EACD;QACE,IAAI;KACL,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAuB,KAAQ;IACpE,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CACtC,CAAC;AAC/B,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/schema/styles/types.ts"],"names":[],"mappings":""}
@@ -1,33 +0,0 @@
1
- // from https://raw.githubusercontent.com/ueberdosis/tiptap/develop/packages/core/src/EventEmitter.ts (MIT)
2
- export class EventEmitter {
3
- // eslint-disable-next-line @typescript-eslint/ban-types
4
- callbacks = {};
5
- on(event, fn) {
6
- if (!this.callbacks[event]) {
7
- this.callbacks[event] = [];
8
- }
9
- this.callbacks[event].push(fn);
10
- return () => this.off(event, fn);
11
- }
12
- emit(event, ...args) {
13
- const callbacks = this.callbacks[event];
14
- if (callbacks) {
15
- callbacks.forEach((callback) => callback.apply(this, args));
16
- }
17
- }
18
- off(event, fn) {
19
- const callbacks = this.callbacks[event];
20
- if (callbacks) {
21
- if (fn) {
22
- this.callbacks[event] = callbacks.filter((callback) => callback !== fn);
23
- }
24
- else {
25
- delete this.callbacks[event];
26
- }
27
- }
28
- }
29
- removeAllListeners() {
30
- this.callbacks = {};
31
- }
32
- }
33
- //# sourceMappingURL=EventEmitter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../../../src/util/EventEmitter.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAY3G,MAAM,OAAO,YAAY;IACvB,wDAAwD;IAChD,SAAS,GAAkC,EAAE,CAAC;IAE/C,EAAE,CACP,KAAgB,EAChB,EAAkC;QAElC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE/B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IAES,IAAI,CACZ,KAAgB,EAChB,GAAG,IAAgC;QAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAEM,GAAG,CACR,KAAgB,EAChB,EAAmC;QAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,EAAE,EAAE,CAAC;gBACP,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAES,kBAAkB;QAC1B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;CACF"}