@blocknote/core 0.11.2 → 0.12.1
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 +13 -17
- package/dist/blocknote.js +1662 -1447
- package/dist/blocknote.js.map +1 -1
- package/dist/blocknote.umd.cjs +6 -6
- package/dist/blocknote.umd.cjs.map +1 -1
- package/dist/style.css +1 -1
- package/dist/webpack-stats.json +1 -1
- package/package.json +7 -3
- package/src/api/blockManipulation/blockManipulation.test.ts +19 -15
- package/src/api/blockManipulation/blockManipulation.ts +107 -17
- package/src/api/exporters/html/externalHTMLExporter.ts +3 -7
- package/src/api/exporters/html/htmlConversion.test.ts +6 -3
- package/src/api/exporters/html/internalHTMLSerializer.ts +3 -7
- package/src/api/exporters/html/util/sharedHTMLConversion.ts +3 -3
- package/src/api/exporters/markdown/markdownExporter.test.ts +7 -3
- package/src/api/exporters/markdown/markdownExporter.ts +2 -6
- package/src/api/getCurrentBlockContentType.ts +14 -0
- package/src/api/nodeConversions/nodeConversions.test.ts +14 -7
- package/src/api/nodeConversions/nodeConversions.ts +1 -2
- package/src/api/parsers/html/parseHTML.test.ts +5 -1
- package/src/api/parsers/html/parseHTML.ts +2 -6
- package/src/api/parsers/html/util/nestedLists.ts +11 -1
- package/src/api/parsers/markdown/parseMarkdown.test.ts +3 -0
- package/src/api/parsers/markdown/parseMarkdown.ts +2 -6
- package/src/api/testUtil/cases/customBlocks.ts +18 -16
- package/src/api/testUtil/cases/customInlineContent.ts +12 -13
- package/src/api/testUtil/cases/customStyles.ts +12 -10
- package/src/api/testUtil/index.ts +4 -2
- package/src/api/testUtil/partialBlockTestUtil.ts +2 -6
- package/src/blocks/HeadingBlockContent/HeadingBlockContent.ts +50 -21
- package/src/blocks/ImageBlockContent/ImageBlockContent.ts +1 -2
- package/src/blocks/ImageBlockContent/uploadToTmpFilesDotOrg_DEV_ONLY.ts +8 -1
- package/src/blocks/ListItemBlockContent/BulletListItemBlockContent/BulletListItemBlockContent.ts +18 -5
- package/src/blocks/ListItemBlockContent/ListItemKeyboardShortcuts.ts +7 -1
- package/src/blocks/ListItemBlockContent/NumberedListItemBlockContent/NumberedListItemBlockContent.ts +18 -5
- package/src/blocks/ParagraphBlockContent/ParagraphBlockContent.ts +14 -5
- package/src/blocks/defaultBlockHelpers.ts +3 -3
- package/src/blocks/defaultBlockTypeGuards.ts +84 -0
- package/src/blocks/defaultBlocks.ts +29 -3
- package/src/editor/Block.css +2 -31
- package/src/editor/BlockNoteEditor.ts +223 -267
- package/src/editor/BlockNoteExtensions.ts +5 -2
- package/src/editor/BlockNoteSchema.ts +98 -0
- package/src/editor/BlockNoteTipTapEditor.ts +162 -0
- package/src/editor/cursorPositionTypes.ts +2 -6
- package/src/editor/editor.css +0 -1
- package/src/editor/selectionTypes.ts +2 -6
- package/src/extensions/FormattingToolbar/FormattingToolbarPlugin.ts +22 -29
- package/src/extensions/{ImageToolbar → ImagePanel}/ImageToolbarPlugin.ts +54 -60
- package/src/extensions/LinkToolbar/LinkToolbarPlugin.ts +330 -0
- package/src/extensions/Placeholder/PlaceholderExtension.ts +81 -88
- package/src/extensions/SideMenu/SideMenuPlugin.ts +55 -56
- package/src/extensions/SuggestionMenu/DefaultSuggestionItem.ts +8 -0
- package/src/extensions/SuggestionMenu/SuggestionPlugin.ts +353 -0
- package/src/extensions/{SlashMenu/defaultSlashMenuItems.ts → SuggestionMenu/getDefaultSlashMenuItems.ts} +119 -89
- package/src/extensions/TableHandles/TableHandlesPlugin.ts +62 -45
- package/src/extensions-shared/UiElementPosition.ts +4 -0
- package/src/index.ts +8 -8
- package/src/pm-nodes/BlockContainer.ts +5 -5
- package/src/schema/blocks/types.ts +15 -15
- package/src/schema/inlineContent/createSpec.ts +2 -2
- package/src/schema/inlineContent/types.ts +1 -1
- package/src/util/browser.ts +6 -4
- package/src/util/typescript.ts +7 -4
- package/types/src/api/blockManipulation/blockManipulation.d.ts +6 -1
- package/types/src/api/exporters/html/externalHTMLExporter.d.ts +2 -1
- package/types/src/api/exporters/html/internalHTMLSerializer.d.ts +2 -1
- package/types/src/api/exporters/markdown/markdownExporter.d.ts +2 -1
- package/types/src/api/getCurrentBlockContentType.d.ts +2 -0
- package/types/src/api/nodeConversions/nodeConversions.d.ts +2 -1
- package/types/src/api/parsers/html/parseHTML.d.ts +2 -1
- package/types/src/api/parsers/markdown/parseMarkdown.d.ts +2 -1
- package/types/src/api/testUtil/cases/customBlocks.d.ts +72 -13
- package/types/src/api/testUtil/cases/customInlineContent.d.ts +281 -6
- package/types/src/api/testUtil/cases/customStyles.d.ts +247 -13
- package/types/src/api/testUtil/index.d.ts +4 -2
- package/types/src/api/testUtil/partialBlockTestUtil.d.ts +2 -1
- package/types/src/blocks/ImageBlockContent/uploadToTmpFilesDotOrg_DEV_ONLY.d.ts +6 -1
- package/types/src/blocks/defaultBlockHelpers.d.ts +2 -2
- package/types/src/blocks/defaultBlockTypeGuards.d.ts +24 -0
- package/types/src/blocks/defaultBlocks.d.ts +21 -15
- package/types/src/editor/BlockNoteEditor.d.ts +51 -56
- package/types/src/editor/BlockNoteExtensions.d.ts +1 -0
- package/types/src/editor/BlockNoteSchema.d.ts +34 -0
- package/types/src/editor/BlockNoteTipTapEditor.d.ts +28 -0
- package/types/src/editor/cursorPositionTypes.d.ts +2 -1
- package/types/src/editor/selectionTypes.d.ts +2 -1
- package/types/src/extensions/FormattingToolbar/FormattingToolbarPlugin.d.ts +5 -6
- package/types/src/extensions/ImagePanel/ImageToolbarPlugin.d.ts +32 -0
- package/types/src/extensions/LinkToolbar/LinkToolbarPlugin.d.ts +40 -0
- package/types/src/extensions/Placeholder/PlaceholderExtension.d.ts +2 -15
- package/types/src/extensions/SideMenu/SideMenuPlugin.d.ts +8 -7
- package/types/src/extensions/SuggestionMenu/DefaultSuggestionItem.d.ts +8 -0
- package/types/src/extensions/SuggestionMenu/SuggestionPlugin.d.ts +31 -0
- package/types/src/extensions/SuggestionMenu/getDefaultSlashMenuItems.d.ts +10 -0
- package/types/src/extensions/TableHandles/TableHandlesPlugin.d.ts +7 -7
- package/types/src/extensions-shared/UiElementPosition.d.ts +4 -0
- package/types/src/index.d.ts +8 -8
- package/types/src/pm-nodes/BlockContainer.d.ts +3 -2
- package/types/src/pm-nodes/BlockGroup.d.ts +1 -1
- package/types/src/schema/blocks/types.d.ts +15 -15
- package/types/src/schema/inlineContent/types.d.ts +1 -1
- package/types/src/util/browser.d.ts +1 -0
- package/types/src/util/typescript.d.ts +1 -0
- package/src/extensions/HyperlinkToolbar/HyperlinkToolbarPlugin.ts +0 -335
- package/src/extensions/SlashMenu/BaseSlashMenuItem.ts +0 -12
- package/src/extensions/SlashMenu/SlashMenuPlugin.ts +0 -53
- package/src/extensions-shared/BaseUiElementTypes.ts +0 -8
- package/src/extensions-shared/README.md +0 -3
- package/src/extensions-shared/suggestion/SuggestionItem.ts +0 -3
- package/src/extensions-shared/suggestion/SuggestionPlugin.ts +0 -448
- package/types/src/extensions/HyperlinkToolbar/HyperlinkToolbarPlugin.d.ts +0 -38
- package/types/src/extensions/ImageToolbar/ImageToolbarPlugin.d.ts +0 -31
- package/types/src/extensions/SlashMenu/BaseSlashMenuItem.d.ts +0 -7
- package/types/src/extensions/SlashMenu/SlashMenuPlugin.d.ts +0 -13
- package/types/src/extensions/SlashMenu/defaultSlashMenuItems.d.ts +0 -3
- package/types/src/extensions-shared/BaseUiElementTypes.d.ts +0 -7
- package/types/src/extensions-shared/suggestion/SuggestionItem.d.ts +0 -3
- package/types/src/extensions-shared/suggestion/SuggestionPlugin.d.ts +0 -36
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-100.woff +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-100.woff2 +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-200.woff +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-200.woff2 +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-300.woff +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-300.woff2 +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-500.woff +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-500.woff2 +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-600.woff +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-600.woff2 +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-700.woff +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-700.woff2 +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-800.woff +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-800.woff2 +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-900.woff +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-900.woff2 +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-regular.woff +0 -0
- /package/src/{assets → fonts}/inter-v12-latin/inter-v12-latin-regular.woff2 +0 -0
- /package/src/{assets/fonts-inter.css → fonts/inter.css} +0 -0
|
@@ -6,8 +6,13 @@ import Underline from "@tiptap/extension-underline";
|
|
|
6
6
|
import { BackgroundColor } from "../extensions/BackgroundColor/BackgroundColorMark";
|
|
7
7
|
import { TextColor } from "../extensions/TextColor/TextColorMark";
|
|
8
8
|
import {
|
|
9
|
+
BlockNoDefaults,
|
|
10
|
+
BlockSchema,
|
|
9
11
|
BlockSpecs,
|
|
12
|
+
InlineContentSchema,
|
|
10
13
|
InlineContentSpecs,
|
|
14
|
+
PartialBlockNoDefaults,
|
|
15
|
+
StyleSchema,
|
|
11
16
|
StyleSpecs,
|
|
12
17
|
createStyleSpecFromTipTapMark,
|
|
13
18
|
getBlockSchemaFromSpecs,
|
|
@@ -32,7 +37,10 @@ export const defaultBlockSpecs = {
|
|
|
32
37
|
|
|
33
38
|
export const defaultBlockSchema = getBlockSchemaFromSpecs(defaultBlockSpecs);
|
|
34
39
|
|
|
35
|
-
|
|
40
|
+
// underscore is used that in case a user overrides DefaultBlockSchema,
|
|
41
|
+
// they can still access the original default block schema
|
|
42
|
+
export type _DefaultBlockSchema = typeof defaultBlockSchema;
|
|
43
|
+
export type DefaultBlockSchema = _DefaultBlockSchema;
|
|
36
44
|
|
|
37
45
|
export const defaultStyleSpecs = {
|
|
38
46
|
bold: createStyleSpecFromTipTapMark(Bold, "boolean"),
|
|
@@ -46,7 +54,10 @@ export const defaultStyleSpecs = {
|
|
|
46
54
|
|
|
47
55
|
export const defaultStyleSchema = getStyleSchemaFromSpecs(defaultStyleSpecs);
|
|
48
56
|
|
|
49
|
-
|
|
57
|
+
// underscore is used that in case a user overrides DefaultStyleSchema,
|
|
58
|
+
// they can still access the original default style schema
|
|
59
|
+
export type _DefaultStyleSchema = typeof defaultStyleSchema;
|
|
60
|
+
export type DefaultStyleSchema = _DefaultStyleSchema;
|
|
50
61
|
|
|
51
62
|
export const defaultInlineContentSpecs = {
|
|
52
63
|
text: { config: "text", implementation: {} as any },
|
|
@@ -57,4 +68,19 @@ export const defaultInlineContentSchema = getInlineContentSchemaFromSpecs(
|
|
|
57
68
|
defaultInlineContentSpecs
|
|
58
69
|
);
|
|
59
70
|
|
|
60
|
-
|
|
71
|
+
// underscore is used that in case a user overrides DefaultInlineContentSchema,
|
|
72
|
+
// they can still access the original default inline content schema
|
|
73
|
+
export type _DefaultInlineContentSchema = typeof defaultInlineContentSchema;
|
|
74
|
+
export type DefaultInlineContentSchema = _DefaultInlineContentSchema;
|
|
75
|
+
|
|
76
|
+
export type PartialBlock<
|
|
77
|
+
BSchema extends BlockSchema = DefaultBlockSchema,
|
|
78
|
+
I extends InlineContentSchema = DefaultInlineContentSchema,
|
|
79
|
+
S extends StyleSchema = DefaultStyleSchema
|
|
80
|
+
> = PartialBlockNoDefaults<BSchema, I, S>;
|
|
81
|
+
|
|
82
|
+
export type Block<
|
|
83
|
+
BSchema extends BlockSchema = DefaultBlockSchema,
|
|
84
|
+
I extends InlineContentSchema = DefaultInlineContentSchema,
|
|
85
|
+
S extends StyleSchema = DefaultStyleSchema
|
|
86
|
+
> = BlockNoDefaults<BSchema, I, S>;
|
package/src/editor/Block.css
CHANGED
|
@@ -305,11 +305,8 @@ NESTED BLOCKS
|
|
|
305
305
|
}
|
|
306
306
|
|
|
307
307
|
/* PLACEHOLDERS*/
|
|
308
|
-
|
|
309
|
-
.bn-is-empty .bn-inline-content:before,
|
|
310
|
-
.bn-is-filter .bn-inline-content:before {
|
|
308
|
+
.bn-inline-content:has(> .ProseMirror-trailingBreak):before {
|
|
311
309
|
/*float: left; */
|
|
312
|
-
content: "";
|
|
313
310
|
pointer-events: none;
|
|
314
311
|
height: 0;
|
|
315
312
|
/* width: 0; */
|
|
@@ -317,33 +314,7 @@ NESTED BLOCKS
|
|
|
317
314
|
font-style: italic;
|
|
318
315
|
}
|
|
319
316
|
|
|
320
|
-
/* TODO:
|
|
321
|
-
|
|
322
|
-
.bn-block-content.bn-is-empty.bn-has-anchor .bn-inline-content:before {
|
|
323
|
-
content: "Enter text or type '/' for commands";
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
.bn-block-content.bn-is-filter.bn-has-anchor .bn-inline-content:before {
|
|
327
|
-
content: "Type to filter";
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
.bn-block-content[data-content-type="heading"].bn-is-empty
|
|
331
|
-
.bn-inline-content:before {
|
|
332
|
-
content: "Heading";
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
.bn-block-content[data-content-type="bulletListItem"].bn-is-empty
|
|
336
|
-
.bn-inline-content:before,
|
|
337
|
-
.bn-block-content[data-content-type="numberedListItem"].bn-is-empty
|
|
338
|
-
.bn-inline-content:before {
|
|
339
|
-
content: "List";
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
.bn-is-empty
|
|
343
|
-
.bn-block-content[data-content-type="captionedImage"]
|
|
344
|
-
.bn-inline-content:before {
|
|
345
|
-
content: "Caption";
|
|
346
|
-
}
|
|
317
|
+
/* TODO: should this be here? */
|
|
347
318
|
|
|
348
319
|
/* TEXT COLORS */
|
|
349
320
|
[data-text-color="gray"] {
|