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