@blocknote/core 0.19.0 → 0.19.2
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/README.md +2 -0
- package/dist/blocknote.js +2990 -2898
- package/dist/blocknote.js.map +1 -1
- package/dist/blocknote.umd.cjs +7 -7
- package/dist/blocknote.umd.cjs.map +1 -1
- package/dist/src/api/blockManipulation/commands/moveBlock/moveBlock.test.js +5 -1
- package/dist/src/api/blockManipulation/commands/moveBlock/moveBlock.test.js.map +1 -1
- package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.js +2 -40
- package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.js.map +1 -1
- package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.test.js +4 -0
- package/dist/src/api/blockManipulation/commands/removeBlocks/removeBlocks.test.js.map +1 -1
- package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.js +51 -9
- package/dist/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.js.map +1 -1
- package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.js +2 -2
- package/dist/src/api/blockManipulation/commands/splitBlock/splitBlock.js.map +1 -1
- package/dist/src/api/clipboard/fromClipboard/acceptedMIMETypes.js +1 -1
- package/dist/src/api/clipboard/fromClipboard/acceptedMIMETypes.js.map +1 -1
- package/dist/src/api/clipboard/fromClipboard/handleFileInsertion.js +4 -2
- package/dist/src/api/clipboard/fromClipboard/handleFileInsertion.js.map +1 -1
- package/dist/src/api/clipboard/fromClipboard/handleVSCodePaste.js +3 -3
- package/dist/src/api/clipboard/fromClipboard/handleVSCodePaste.js.map +1 -1
- package/dist/src/api/getBlockInfoFromPos.js +19 -25
- package/dist/src/api/getBlockInfoFromPos.js.map +1 -1
- package/dist/src/blocks/CodeBlockContent/CodeBlockContent.js +15 -7
- package/dist/src/blocks/CodeBlockContent/CodeBlockContent.js.map +1 -1
- package/dist/src/blocks/CodeBlockContent/defaultSupportedLanguages.js +38 -18
- package/dist/src/blocks/CodeBlockContent/defaultSupportedLanguages.js.map +1 -1
- package/dist/src/blocks/HeadingBlockContent/HeadingBlockContent.js +8 -4
- package/dist/src/blocks/HeadingBlockContent/HeadingBlockContent.js.map +1 -1
- package/dist/src/blocks/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.js +5 -3
- package/dist/src/blocks/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.js.map +1 -1
- package/dist/src/blocks/ListItemBlockContent/CheckListItemBlockContent/CheckListItemBlockContent.js +12 -6
- package/dist/src/blocks/ListItemBlockContent/CheckListItemBlockContent/CheckListItemBlockContent.js.map +1 -1
- package/dist/src/blocks/ListItemBlockContent/ListItemKeyboardShortcuts.js +5 -1
- package/dist/src/blocks/ListItemBlockContent/ListItemKeyboardShortcuts.js.map +1 -1
- package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.js +4 -2
- package/dist/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.js.map +1 -1
- package/dist/src/blocks/ParagraphBlockContent/ParagraphBlockContent.js +2 -1
- package/dist/src/blocks/ParagraphBlockContent/ParagraphBlockContent.js.map +1 -1
- package/dist/src/blocks/TableBlockContent/TableBlockContent.js +0 -1
- package/dist/src/blocks/TableBlockContent/TableBlockContent.js.map +1 -1
- package/dist/src/editor/BlockNoteEditor.js +42 -43
- package/dist/src/editor/BlockNoteEditor.js.map +1 -1
- package/dist/src/editor/BlockNoteEditor.test.js +2 -2
- package/dist/src/editor/BlockNoteEditor.test.js.map +1 -1
- package/dist/src/editor/BlockNoteExtensions.js +52 -6
- package/dist/src/editor/BlockNoteExtensions.js.map +1 -1
- package/dist/src/extensions/KeyboardShortcuts/KeyboardShortcutsExtension.js +36 -6
- package/dist/src/extensions/KeyboardShortcuts/KeyboardShortcutsExtension.js.map +1 -1
- package/dist/src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.js +35 -32
- package/dist/src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.js.map +1 -1
- package/dist/src/extensions/Placeholder/PlaceholderPlugin.js +74 -71
- package/dist/src/extensions/Placeholder/PlaceholderPlugin.js.map +1 -1
- package/dist/src/extensions/PreviousBlockType/PreviousBlockTypePlugin.js +153 -149
- package/dist/src/extensions/PreviousBlockType/PreviousBlockTypePlugin.js.map +1 -1
- package/dist/src/extensions/SideMenu/SideMenuPlugin.js +5 -1
- package/dist/src/extensions/SideMenu/SideMenuPlugin.js.map +1 -1
- package/dist/src/extensions/SuggestionMenu/getDefaultSlashMenuItems.js +0 -3
- package/dist/src/extensions/SuggestionMenu/getDefaultSlashMenuItems.js.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.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 +2 -2
- package/src/api/blockManipulation/commands/insertBlocks/__snapshots__/insertBlocks.test.ts.snap +0 -6
- package/src/api/blockManipulation/commands/mergeBlocks/__snapshots__/mergeBlocks.test.ts.snap +0 -5
- package/src/api/blockManipulation/commands/moveBlock/__snapshots__/moveBlock.test.ts.snap +0 -8
- package/src/api/blockManipulation/commands/moveBlock/moveBlock.test.ts +7 -3
- package/src/api/blockManipulation/commands/removeBlocks/__snapshots__/removeBlocks.test.ts.snap +439 -2
- package/src/api/blockManipulation/commands/removeBlocks/removeBlocks.test.ts +6 -0
- package/src/api/blockManipulation/commands/removeBlocks/removeBlocks.ts +2 -82
- package/src/api/blockManipulation/commands/replaceBlocks/__snapshots__/replaceBlocks.test.ts.snap +0 -8
- package/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.ts +96 -20
- package/src/api/blockManipulation/commands/splitBlock/__snapshots__/splitBlock.test.ts.snap +0 -6
- package/src/api/blockManipulation/commands/splitBlock/splitBlock.ts +2 -5
- package/src/api/blockManipulation/commands/updateBlock/__snapshots__/updateBlock.test.ts.snap +0 -490
- package/src/api/clipboard/fromClipboard/acceptedMIMETypes.ts +1 -1
- package/src/api/clipboard/fromClipboard/handleFileInsertion.ts +6 -5
- package/src/api/clipboard/fromClipboard/handleVSCodePaste.ts +4 -4
- package/src/api/getBlockInfoFromPos.ts +20 -30
- package/src/api/parsers/html/__snapshots__/parse-notion-html.json +1 -2
- package/src/blocks/CodeBlockContent/CodeBlockContent.ts +18 -8
- package/src/blocks/CodeBlockContent/defaultSupportedLanguages.ts +38 -18
- package/src/blocks/HeadingBlockContent/HeadingBlockContent.ts +16 -4
- package/src/blocks/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.ts +9 -3
- package/src/blocks/ListItemBlockContent/CheckListItemBlockContent/CheckListItemBlockContent.ts +22 -6
- package/src/blocks/ListItemBlockContent/ListItemKeyboardShortcuts.ts +5 -3
- package/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.ts +8 -2
- package/src/blocks/ParagraphBlockContent/ParagraphBlockContent.ts +4 -1
- package/src/blocks/TableBlockContent/TableBlockContent.ts +0 -1
- package/src/editor/Block.css +3 -0
- package/src/editor/BlockNoteEditor.test.ts +2 -5
- package/src/editor/BlockNoteEditor.ts +77 -42
- package/src/editor/BlockNoteExtensions.ts +90 -14
- package/src/extensions/KeyboardShortcuts/KeyboardShortcutsExtension.ts +36 -9
- package/src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.ts +45 -42
- package/src/extensions/Placeholder/PlaceholderPlugin.ts +94 -90
- package/src/extensions/PreviousBlockType/PreviousBlockTypePlugin.ts +173 -169
- package/src/extensions/SideMenu/SideMenuPlugin.ts +5 -1
- package/src/extensions/SuggestionMenu/getDefaultSlashMenuItems.ts +0 -5
- package/src/index.ts +1 -0
- package/types/src/api/blockManipulation/commands/removeBlocks/removeBlocks.d.ts +0 -3
- package/types/src/api/blockManipulation/commands/replaceBlocks/replaceBlocks.d.ts +4 -0
- package/types/src/api/blockManipulation/setupTestEnv.d.ts +0 -6
- package/types/src/api/clipboard/fromClipboard/acceptedMIMETypes.d.ts +1 -1
- package/types/src/api/getBlockInfoFromPos.d.ts +9 -34
- package/types/src/api/testUtil/cases/customBlocks.d.ts +0 -6
- package/types/src/api/testUtil/cases/customInlineContent.d.ts +0 -6
- package/types/src/api/testUtil/cases/customStyles.d.ts +0 -6
- package/types/src/blocks/TableBlockContent/TableBlockContent.d.ts +0 -9
- package/types/src/blocks/defaultBlocks.d.ts +0 -12
- package/types/src/editor/BlockNoteEditor.d.ts +19 -2
- package/types/src/editor/BlockNoteExtensions.d.ts +14 -7
- package/types/src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.d.ts +4 -1
- package/types/src/extensions/Placeholder/PlaceholderPlugin.d.ts +4 -1
- package/types/src/extensions/PreviousBlockType/PreviousBlockTypePlugin.d.ts +4 -5
- package/types/src/extensions/SideMenu/SideMenuPlugin.d.ts +1 -1
- package/types/src/index.d.ts +1 -0
|
@@ -10,7 +10,16 @@ import { createDropFileExtension } from "../api/clipboard/fromClipboard/fileDrop
|
|
|
10
10
|
import { createPasteFromClipboardExtension } from "../api/clipboard/fromClipboard/pasteExtension.js";
|
|
11
11
|
import { createCopyToClipboardExtension } from "../api/clipboard/toClipboard/copyExtension.js";
|
|
12
12
|
import { BackgroundColorExtension } from "../extensions/BackgroundColor/BackgroundColorExtension.js";
|
|
13
|
+
import { FilePanelProsemirrorPlugin } from "../extensions/FilePanel/FilePanelPlugin.js";
|
|
14
|
+
import { FormattingToolbarProsemirrorPlugin } from "../extensions/FormattingToolbar/FormattingToolbarPlugin.js";
|
|
13
15
|
import { KeyboardShortcutsExtension } from "../extensions/KeyboardShortcuts/KeyboardShortcutsExtension.js";
|
|
16
|
+
import { LinkToolbarProsemirrorPlugin } from "../extensions/LinkToolbar/LinkToolbarPlugin.js";
|
|
17
|
+
import { NodeSelectionKeyboardPlugin } from "../extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.js";
|
|
18
|
+
import { PlaceholderPlugin } from "../extensions/Placeholder/PlaceholderPlugin.js";
|
|
19
|
+
import { PreviousBlockTypePlugin } from "../extensions/PreviousBlockType/PreviousBlockTypePlugin.js";
|
|
20
|
+
import { SideMenuProsemirrorPlugin } from "../extensions/SideMenu/SideMenuPlugin.js";
|
|
21
|
+
import { SuggestionMenuProseMirrorPlugin } from "../extensions/SuggestionMenu/SuggestionPlugin.js";
|
|
22
|
+
import { TableHandlesProsemirrorPlugin } from "../extensions/TableHandles/TableHandlesPlugin.js";
|
|
14
23
|
import { TextAlignmentExtension } from "../extensions/TextAlignment/TextAlignmentExtension.js";
|
|
15
24
|
import { TextColorExtension } from "../extensions/TextColor/TextColorExtension.js";
|
|
16
25
|
import { TrailingNode } from "../extensions/TrailingNode/TrailingNodeExtension.js";
|
|
@@ -20,7 +29,44 @@ import { BlockContainer, BlockGroup, Doc } from "../pm-nodes/index.js";
|
|
|
20
29
|
* Get all the Tiptap extensions BlockNote is configured with by default
|
|
21
30
|
*/
|
|
22
31
|
export const getBlockNoteExtensions = (opts) => {
|
|
23
|
-
const ret =
|
|
32
|
+
const ret = {};
|
|
33
|
+
const tiptapExtensions = getTipTapExtensions(opts);
|
|
34
|
+
for (const ext of tiptapExtensions) {
|
|
35
|
+
ret[ext.name] = ext;
|
|
36
|
+
}
|
|
37
|
+
// Note: this is pretty hardcoded and will break when user provides plugins with same keys.
|
|
38
|
+
// Define name on plugins instead and not make this a map?
|
|
39
|
+
ret["formattingToolbar"] = new FormattingToolbarProsemirrorPlugin(opts.editor);
|
|
40
|
+
ret["linkToolbar"] = new LinkToolbarProsemirrorPlugin(opts.editor);
|
|
41
|
+
ret["sideMenu"] = new SideMenuProsemirrorPlugin(opts.editor);
|
|
42
|
+
ret["suggestionMenus"] = new SuggestionMenuProseMirrorPlugin(opts.editor);
|
|
43
|
+
ret["filePanel"] = new FilePanelProsemirrorPlugin(opts.editor);
|
|
44
|
+
ret["placeholder"] = new PlaceholderPlugin(opts.editor, opts.placeholders);
|
|
45
|
+
if (opts.animations ?? true) {
|
|
46
|
+
ret["animations"] = new PreviousBlockTypePlugin();
|
|
47
|
+
}
|
|
48
|
+
if (opts.tableHandles) {
|
|
49
|
+
ret["tableHandles"] = new TableHandlesProsemirrorPlugin(opts.editor);
|
|
50
|
+
}
|
|
51
|
+
ret["dropCursor"] = {
|
|
52
|
+
plugin: opts.dropCursor({
|
|
53
|
+
width: 5,
|
|
54
|
+
color: "#ddeeff",
|
|
55
|
+
editor: opts.editor,
|
|
56
|
+
}),
|
|
57
|
+
};
|
|
58
|
+
ret["nodeSelectionKeyboard"] = new NodeSelectionKeyboardPlugin();
|
|
59
|
+
const disableExtensions = opts.disableExtensions || [];
|
|
60
|
+
for (const ext of disableExtensions) {
|
|
61
|
+
delete ret[ext];
|
|
62
|
+
}
|
|
63
|
+
return ret;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Get all the Tiptap extensions BlockNote is configured with by default
|
|
67
|
+
*/
|
|
68
|
+
const getTipTapExtensions = (opts) => {
|
|
69
|
+
const tiptapExtensions = [
|
|
24
70
|
extensions.ClipboardTextSerializer,
|
|
25
71
|
extensions.Commands,
|
|
26
72
|
extensions.Editable,
|
|
@@ -40,6 +86,7 @@ export const getBlockNoteExtensions = (opts) => {
|
|
|
40
86
|
Text,
|
|
41
87
|
// marks:
|
|
42
88
|
Link.extend({
|
|
89
|
+
inclusive: false,
|
|
43
90
|
addKeyboardShortcuts() {
|
|
44
91
|
return {
|
|
45
92
|
"Mod-k": () => {
|
|
@@ -113,7 +160,7 @@ export const getBlockNoteExtensions = (opts) => {
|
|
|
113
160
|
: []),
|
|
114
161
|
];
|
|
115
162
|
if (opts.collaboration) {
|
|
116
|
-
|
|
163
|
+
tiptapExtensions.push(Collaboration.configure({
|
|
117
164
|
fragment: opts.collaboration.fragment,
|
|
118
165
|
}));
|
|
119
166
|
if (opts.collaboration.provider?.awareness) {
|
|
@@ -132,7 +179,7 @@ export const getBlockNoteExtensions = (opts) => {
|
|
|
132
179
|
cursor.insertBefore(nonbreakingSpace2, null);
|
|
133
180
|
return cursor;
|
|
134
181
|
};
|
|
135
|
-
|
|
182
|
+
tiptapExtensions.push(CollaborationCursor.configure({
|
|
136
183
|
user: opts.collaboration.user,
|
|
137
184
|
render: opts.collaboration.renderCursor || defaultRender,
|
|
138
185
|
provider: opts.collaboration.provider,
|
|
@@ -141,9 +188,8 @@ export const getBlockNoteExtensions = (opts) => {
|
|
|
141
188
|
}
|
|
142
189
|
else {
|
|
143
190
|
// disable history extension when collaboration is enabled as Yjs takes care of undo / redo
|
|
144
|
-
|
|
191
|
+
tiptapExtensions.push(History);
|
|
145
192
|
}
|
|
146
|
-
|
|
147
|
-
return ret.filter((ex) => !disableExtensions.includes(ex.name));
|
|
193
|
+
return tiptapExtensions;
|
|
148
194
|
};
|
|
149
195
|
//# sourceMappingURL=BlockNoteExtensions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockNoteExtensions.js","sourceRoot":"","sources":["../../../src/editor/BlockNoteExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"BlockNoteExtensions.js","sourceRoot":"","sources":["../../../src/editor/BlockNoteExtensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,9 @@ export const KeyboardShortcutsExtension = Extension.create({
|
|
|
20
20
|
// Reverts block content type to a paragraph if the selection is at the start of the block.
|
|
21
21
|
() => commands.command(({ state }) => {
|
|
22
22
|
const blockInfo = getBlockInfoFromSelection(state);
|
|
23
|
+
if (!blockInfo.isBlockContainer) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
23
26
|
const selectionAtBlockStart = state.selection.from === blockInfo.blockContent.beforePos + 1;
|
|
24
27
|
const isParagraph = blockInfo.blockContent.node.type.name === "paragraph";
|
|
25
28
|
if (selectionAtBlockStart && !isParagraph) {
|
|
@@ -32,7 +35,11 @@ export const KeyboardShortcutsExtension = Extension.create({
|
|
|
32
35
|
}),
|
|
33
36
|
// Removes a level of nesting if the block is indented if the selection is at the start of the block.
|
|
34
37
|
() => commands.command(({ state }) => {
|
|
35
|
-
const
|
|
38
|
+
const blockInfo = getBlockInfoFromSelection(state);
|
|
39
|
+
if (!blockInfo.isBlockContainer) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
const { blockContent } = blockInfo;
|
|
36
43
|
const selectionAtBlockStart = state.selection.from === blockContent.beforePos + 1;
|
|
37
44
|
if (selectionAtBlockStart) {
|
|
38
45
|
return commands.liftListItem("blockContainer");
|
|
@@ -42,7 +49,11 @@ export const KeyboardShortcutsExtension = Extension.create({
|
|
|
42
49
|
// Merges block with the previous one if it isn't indented, and the selection is at the start of the
|
|
43
50
|
// block. The target block for merging must contain inline content.
|
|
44
51
|
() => commands.command(({ state }) => {
|
|
45
|
-
const
|
|
52
|
+
const blockInfo = getBlockInfoFromSelection(state);
|
|
53
|
+
if (!blockInfo.isBlockContainer) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
const { bnBlock: blockContainer, blockContent } = blockInfo;
|
|
46
57
|
const selectionAtBlockStart = state.selection.from === blockContent.beforePos + 1;
|
|
47
58
|
const selectionEmpty = state.selection.empty;
|
|
48
59
|
const posBetweenBlocks = blockContainer.beforePos;
|
|
@@ -57,6 +68,9 @@ export const KeyboardShortcutsExtension = Extension.create({
|
|
|
57
68
|
() => commands.command(({ state, dispatch }) => {
|
|
58
69
|
// when at the start of a first block in a column
|
|
59
70
|
const blockInfo = getBlockInfoFromSelection(state);
|
|
71
|
+
if (!blockInfo.isBlockContainer) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
60
74
|
const selectionAtBlockStart = state.selection.from === blockInfo.blockContent.beforePos + 1;
|
|
61
75
|
if (!selectionAtBlockStart) {
|
|
62
76
|
return false;
|
|
@@ -191,7 +205,11 @@ export const KeyboardShortcutsExtension = Extension.create({
|
|
|
191
205
|
// end of the block.
|
|
192
206
|
() => commands.command(({ state }) => {
|
|
193
207
|
// TODO: Change this to not rely on offsets & schema assumptions
|
|
194
|
-
const
|
|
208
|
+
const blockInfo = getBlockInfoFromSelection(state);
|
|
209
|
+
if (!blockInfo.isBlockContainer) {
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
const { bnBlock: blockContainer, blockContent, childContainer, } = blockInfo;
|
|
195
213
|
const { depth } = state.doc.resolve(blockContainer.beforePos);
|
|
196
214
|
const blockAtDocEnd = blockContainer.afterPos === state.doc.nodeSize - 3;
|
|
197
215
|
const selectionAtBlockEnd = state.selection.from === blockContent.afterPos - 1;
|
|
@@ -218,7 +236,11 @@ export const KeyboardShortcutsExtension = Extension.create({
|
|
|
218
236
|
// Removes a level of nesting if the block is empty & indented, while the selection is also empty & at the start
|
|
219
237
|
// of the block.
|
|
220
238
|
() => commands.command(({ state }) => {
|
|
221
|
-
const
|
|
239
|
+
const blockInfo = getBlockInfoFromSelection(state);
|
|
240
|
+
if (!blockInfo.isBlockContainer) {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
const { bnBlock: blockContainer, blockContent } = blockInfo;
|
|
222
244
|
const { depth } = state.doc.resolve(blockContainer.beforePos);
|
|
223
245
|
const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0;
|
|
224
246
|
const selectionEmpty = state.selection.anchor === state.selection.head;
|
|
@@ -235,7 +257,11 @@ export const KeyboardShortcutsExtension = Extension.create({
|
|
|
235
257
|
// Creates a new block and moves the selection to it if the current one is empty, while the selection is also
|
|
236
258
|
// empty & at the start of the block.
|
|
237
259
|
() => commands.command(({ state, dispatch }) => {
|
|
238
|
-
const
|
|
260
|
+
const blockInfo = getBlockInfoFromSelection(state);
|
|
261
|
+
if (!blockInfo.isBlockContainer) {
|
|
262
|
+
return false;
|
|
263
|
+
}
|
|
264
|
+
const { bnBlock: blockContainer, blockContent } = blockInfo;
|
|
239
265
|
const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0;
|
|
240
266
|
const selectionEmpty = state.selection.anchor === state.selection.head;
|
|
241
267
|
const blockEmpty = blockContent.node.childCount === 0;
|
|
@@ -256,7 +282,11 @@ export const KeyboardShortcutsExtension = Extension.create({
|
|
|
256
282
|
// Splits the current block, moving content inside that's after the cursor to a new text block below. Also
|
|
257
283
|
// deletes the selection beforehand, if it's not empty.
|
|
258
284
|
() => commands.command(({ state, chain }) => {
|
|
259
|
-
const
|
|
285
|
+
const blockInfo = getBlockInfoFromSelection(state);
|
|
286
|
+
if (!blockInfo.isBlockContainer) {
|
|
287
|
+
return false;
|
|
288
|
+
}
|
|
289
|
+
const { blockContent } = blockInfo;
|
|
260
290
|
const selectionAtBlockStart = state.selection.$anchor.parentOffset === 0;
|
|
261
291
|
const blockEmpty = blockContent.node.childCount === 0;
|
|
262
292
|
if (!blockEmpty) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyboardShortcutsExtension.js","sourceRoot":"","sources":["../../../../src/extensions/KeyboardShortcuts/KeyboardShortcutsExtension.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"KeyboardShortcutsExtension.js","sourceRoot":"","sources":["../../../../src/extensions/KeyboardShortcuts/KeyboardShortcutsExtension.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,38 +14,41 @@ const PLUGIN_KEY = new PluginKey("node-selection-keyboard");
|
|
|
14
14
|
// While a more elegant solution would probably process transactions instead of
|
|
15
15
|
// keystrokes, this brings us most of the way to Notion's UX without much added
|
|
16
16
|
// complexity.
|
|
17
|
-
export
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
// Checks
|
|
25
|
-
if (
|
|
26
|
-
|
|
17
|
+
export class NodeSelectionKeyboardPlugin {
|
|
18
|
+
plugin;
|
|
19
|
+
constructor() {
|
|
20
|
+
this.plugin = new Plugin({
|
|
21
|
+
key: PLUGIN_KEY,
|
|
22
|
+
props: {
|
|
23
|
+
handleKeyDown: (view, event) => {
|
|
24
|
+
// Checks for node selection
|
|
25
|
+
if ("node" in view.state.selection) {
|
|
26
|
+
// Checks if key press uses ctrl/meta modifier
|
|
27
|
+
if (event.ctrlKey || event.metaKey) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
// Checks if key press is alphanumeric
|
|
31
|
+
if (event.key.length === 1) {
|
|
32
|
+
event.preventDefault();
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
// Checks if key press is Enter
|
|
36
|
+
if (event.key === "Enter" &&
|
|
37
|
+
!event.shiftKey &&
|
|
38
|
+
!event.altKey &&
|
|
39
|
+
!event.ctrlKey &&
|
|
40
|
+
!event.metaKey) {
|
|
41
|
+
const tr = view.state.tr;
|
|
42
|
+
view.dispatch(tr
|
|
43
|
+
.insert(view.state.tr.selection.$to.after(), view.state.schema.nodes["paragraph"].createChecked())
|
|
44
|
+
.setSelection(new TextSelection(tr.doc.resolve(view.state.tr.selection.$to.after() + 1))));
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
27
47
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
event.preventDefault();
|
|
31
|
-
return true;
|
|
32
|
-
}
|
|
33
|
-
// Checks if key press is Enter
|
|
34
|
-
if (event.key === "Enter" &&
|
|
35
|
-
!event.shiftKey &&
|
|
36
|
-
!event.altKey &&
|
|
37
|
-
!event.ctrlKey &&
|
|
38
|
-
!event.metaKey) {
|
|
39
|
-
const tr = view.state.tr;
|
|
40
|
-
view.dispatch(tr
|
|
41
|
-
.insert(view.state.tr.selection.$to.after(), view.state.schema.nodes["paragraph"].createChecked())
|
|
42
|
-
.setSelection(new TextSelection(tr.doc.resolve(view.state.tr.selection.$to.after() + 1))));
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return false;
|
|
48
|
+
return false;
|
|
49
|
+
},
|
|
47
50
|
},
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
51
54
|
//# sourceMappingURL=NodeSelectionKeyboardPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSelectionKeyboardPlugin.js","sourceRoot":"","sources":["../../../../src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAErE,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;AAC5D,4EAA4E;AAC5E,+EAA+E;AAC/E,uEAAuE;AACvE,EAAE;AACF,+EAA+E;AAC/E,sDAAsD;AACtD,4EAA4E;AAC5E,4CAA4C;AAC5C,6EAA6E;AAC7E,0EAA0E;AAC1E,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,cAAc;AACd,MAAM,
|
|
1
|
+
{"version":3,"file":"NodeSelectionKeyboardPlugin.js","sourceRoot":"","sources":["../../../../src/extensions/NodeSelectionKeyboard/NodeSelectionKeyboardPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAErE,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;AAC5D,4EAA4E;AAC5E,+EAA+E;AAC/E,uEAAuE;AACvE,EAAE;AACF,+EAA+E;AAC/E,sDAAsD;AACtD,4EAA4E;AAC5E,4CAA4C;AAC5C,6EAA6E;AAC7E,0EAA0E;AAC1E,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,cAAc;AACd,MAAM,OAAO,2BAA2B;IACtB,MAAM,CAAS;IAC/B;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,GAAG,EAAE,UAAU;YACf,KAAK,EAAE;gBACL,aAAa,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC7B,4BAA4B;oBAC5B,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;wBACnC,8CAA8C;wBAC9C,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;4BACnC,OAAO,KAAK,CAAC;wBACf,CAAC;wBACD,sCAAsC;wBACtC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;4BAEvB,OAAO,IAAI,CAAC;wBACd,CAAC;wBACD,+BAA+B;wBAC/B,IACE,KAAK,CAAC,GAAG,KAAK,OAAO;4BACrB,CAAC,KAAK,CAAC,QAAQ;4BACf,CAAC,KAAK,CAAC,MAAM;4BACb,CAAC,KAAK,CAAC,OAAO;4BACd,CAAC,KAAK,CAAC,OAAO,EACd,CAAC;4BACD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;4BACzB,IAAI,CAAC,QAAQ,CACX,EAAE;iCACC,MAAM,CACL,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CACrD;iCACA,YAAY,CACX,IAAI,aAAa,CACf,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CACxD,CACF,CACJ,CAAC;4BAEF,OAAO,IAAI,CAAC;wBACd,CAAC;oBACH,CAAC;oBAED,OAAO,KAAK,CAAC;gBACf,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,81 +1,84 @@
|
|
|
1
1
|
import { Plugin, PluginKey } from "prosemirror-state";
|
|
2
2
|
import { Decoration, DecorationSet } from "prosemirror-view";
|
|
3
3
|
const PLUGIN_KEY = new PluginKey(`blocknote-placeholder`);
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
editor._tiptapEditor.view.root.append(styleEl);
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
editor._tiptapEditor.view.root.head.appendChild(styleEl);
|
|
18
|
-
}
|
|
19
|
-
const styleSheet = styleEl.sheet;
|
|
20
|
-
const getBaseSelector = (additionalSelectors = "") => `.bn-block-content${additionalSelectors} .bn-inline-content:has(> .ProseMirror-trailingBreak:only-child):before`;
|
|
21
|
-
const getSelector = (blockType, mustBeFocused = true) => {
|
|
22
|
-
const mustBeFocusedSelector = mustBeFocused
|
|
23
|
-
? `[data-is-empty-and-focused]`
|
|
24
|
-
: ``;
|
|
25
|
-
if (blockType === "default") {
|
|
26
|
-
return getBaseSelector(mustBeFocusedSelector);
|
|
4
|
+
export class PlaceholderPlugin {
|
|
5
|
+
plugin;
|
|
6
|
+
constructor(editor, placeholders) {
|
|
7
|
+
this.plugin = new Plugin({
|
|
8
|
+
key: PLUGIN_KEY,
|
|
9
|
+
view: () => {
|
|
10
|
+
const styleEl = document.createElement("style");
|
|
11
|
+
const nonce = editor._tiptapEditor.options.injectNonce;
|
|
12
|
+
if (nonce) {
|
|
13
|
+
styleEl.setAttribute("nonce", nonce);
|
|
27
14
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
};
|
|
31
|
-
for (const [blockType, placeholder] of Object.entries(placeholders)) {
|
|
32
|
-
const mustBeFocused = blockType === "default";
|
|
33
|
-
styleSheet.insertRule(`${getSelector(blockType, mustBeFocused)}{ content: ${JSON.stringify(placeholder)}; }`);
|
|
34
|
-
// For some reason, the placeholders which show when the block is focused
|
|
35
|
-
// take priority over ones which show depending on block type, so we need
|
|
36
|
-
// to make sure the block specific ones are also used when the block is
|
|
37
|
-
// focused.
|
|
38
|
-
if (!mustBeFocused) {
|
|
39
|
-
styleSheet.insertRule(`${getSelector(blockType, true)}{ content: ${JSON.stringify(placeholder)}; }`);
|
|
15
|
+
if (editor._tiptapEditor.view.root instanceof ShadowRoot) {
|
|
16
|
+
editor._tiptapEditor.view.root.append(styleEl);
|
|
40
17
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
18
|
+
else {
|
|
19
|
+
editor._tiptapEditor.view.root.head.appendChild(styleEl);
|
|
20
|
+
}
|
|
21
|
+
const styleSheet = styleEl.sheet;
|
|
22
|
+
const getBaseSelector = (additionalSelectors = "") => `.bn-block-content${additionalSelectors} .bn-inline-content:has(> .ProseMirror-trailingBreak:only-child):before`;
|
|
23
|
+
const getSelector = (blockType, mustBeFocused = true) => {
|
|
24
|
+
const mustBeFocusedSelector = mustBeFocused
|
|
25
|
+
? `[data-is-empty-and-focused]`
|
|
26
|
+
: ``;
|
|
27
|
+
if (blockType === "default") {
|
|
28
|
+
return getBaseSelector(mustBeFocusedSelector);
|
|
46
29
|
}
|
|
47
|
-
|
|
48
|
-
|
|
30
|
+
const blockTypeSelector = `[data-content-type="${blockType}"]`;
|
|
31
|
+
return getBaseSelector(mustBeFocusedSelector + blockTypeSelector);
|
|
32
|
+
};
|
|
33
|
+
for (const [blockType, placeholder] of Object.entries(placeholders)) {
|
|
34
|
+
const mustBeFocused = blockType === "default";
|
|
35
|
+
styleSheet.insertRule(`${getSelector(blockType, mustBeFocused)}{ content: ${JSON.stringify(placeholder)}; }`);
|
|
36
|
+
// For some reason, the placeholders which show when the block is focused
|
|
37
|
+
// take priority over ones which show depending on block type, so we need
|
|
38
|
+
// to make sure the block specific ones are also used when the block is
|
|
39
|
+
// focused.
|
|
40
|
+
if (!mustBeFocused) {
|
|
41
|
+
styleSheet.insertRule(`${getSelector(blockType, true)}{ content: ${JSON.stringify(placeholder)}; }`);
|
|
49
42
|
}
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
},
|
|
53
|
-
props: {
|
|
54
|
-
// TODO: maybe also add placeholder for empty document ("e.g.: start writing..")
|
|
55
|
-
decorations: (state) => {
|
|
56
|
-
const { doc, selection } = state;
|
|
57
|
-
if (!editor.isEditable) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
if (!selection.empty) {
|
|
61
|
-
return;
|
|
62
43
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
44
|
+
return {
|
|
45
|
+
destroy: () => {
|
|
46
|
+
if (editor._tiptapEditor.view.root instanceof ShadowRoot) {
|
|
47
|
+
editor._tiptapEditor.view.root.removeChild(styleEl);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
editor._tiptapEditor.view.root.head.removeChild(styleEl);
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
props: {
|
|
56
|
+
// TODO: maybe also add placeholder for empty document ("e.g.: start writing..")
|
|
57
|
+
decorations: (state) => {
|
|
58
|
+
const { doc, selection } = state;
|
|
59
|
+
if (!editor.isEditable) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (!selection.empty) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// Don't show placeholder when the cursor is inside a code block
|
|
66
|
+
if (selection.$from.parent.type.spec.code) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const $pos = selection.$anchor;
|
|
70
|
+
const node = $pos.parent;
|
|
71
|
+
if (node.content.size > 0) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
const before = $pos.before();
|
|
75
|
+
const dec = Decoration.node(before, before + node.nodeSize, {
|
|
76
|
+
"data-is-empty-and-focused": "true",
|
|
77
|
+
});
|
|
78
|
+
return DecorationSet.create(doc, [dec]);
|
|
79
|
+
},
|
|
77
80
|
},
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
81
84
|
//# sourceMappingURL=PlaceholderPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaceholderPlugin.js","sourceRoot":"","sources":["../../../../src/extensions/Placeholder/PlaceholderPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG7D,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC;AAE1D,MAAM,
|
|
1
|
+
{"version":3,"file":"PlaceholderPlugin.js","sourceRoot":"","sources":["../../../../src/extensions/Placeholder/PlaceholderPlugin.ts"],"names":[],"mappings":"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"}
|