"use client"; import { BlockNoteSchema, createHeadingBlockSpec, defaultBlockSpecs, defaultInlineContentSpecs, defaultStyleSpecs, } from "@blocknote/core"; import { pageReferenceBlock } from "./blocks/PageReferenceBlock"; import { advancedTodoBlock } from "./blocks/AdvancedTodoBlock"; import { progressBlock } from "./blocks/ProgressBlock"; import { mediaBlock } from "./blocks/MediaBlock"; import { onlineTableBlock } from "./blocks/OnlineTableBlock"; const headingSpec = typeof window === "undefined" ? defaultBlockSpecs.heading : createHeadingBlockSpec({ levels: [1, 2, 3, 4, 5], allowToggleHeadings: true, }); export const customBlockSchema = BlockNoteSchema.create({ blockSpecs: { ...defaultBlockSpecs, heading: headingSpec, pageReference: pageReferenceBlock, advancedTodo: advancedTodoBlock, progressMeter: progressBlock, media: mediaBlock, onlineTable: onlineTableBlock(), }, inlineContentSpecs: defaultInlineContentSpecs, styleSpecs: defaultStyleSpecs, }); export type CustomBlockSchema = typeof customBlockSchema.blockSchema;