@blocknote/react
Version:
A "Notion-style" block-based extensible text editor built on top of Prosemirror and Tiptap.
44 lines (43 loc) • 2.18 kB
TypeScript
import { BlockNoteEditor, BlockSchema, InlineContentSchema, StyleSchema } from "@blocknote/core";
import React, { HTMLAttributes, ReactNode, Ref } from "react";
import { BlockNoteDefaultUIProps } from "./BlockNoteDefaultUI.js";
import "./styles.css";
export type BlockNoteViewProps<BSchema extends BlockSchema, ISchema extends InlineContentSchema, SSchema extends StyleSchema> = {
editor: BlockNoteEditor<BSchema, ISchema, SSchema>;
theme?: "light" | "dark";
/**
* Whether to render the editor element itself.
* When `false`, you're responsible for rendering the editor yourself using the `BlockNoteViewEditor` component.
*
* @default true
*/
renderEditor?: boolean;
/**
* Locks the editor from being editable by the user if set to `false`.
*
* @default true
*/
editable?: boolean;
/**
* A callback function that runs whenever the text cursor position or selection changes.
*/
onSelectionChange?: () => void;
/**
* A callback function that runs whenever the editor's contents change.
*/
onChange?: Parameters<BlockNoteEditor<BSchema, ISchema, SSchema>["onChange"]>[0];
children?: ReactNode;
ref?: Ref<HTMLDivElement> | undefined;
} & Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "onSelectionChange" | "children"> & BlockNoteDefaultUIProps;
declare function BlockNoteViewComponent<BSchema extends BlockSchema, ISchema extends InlineContentSchema, SSchema extends StyleSchema>(props: BlockNoteViewProps<BSchema, ISchema, SSchema>, ref: React.Ref<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
export declare const BlockNoteViewRaw: <BSchema extends BlockSchema, ISchema extends InlineContentSchema, SSchema extends StyleSchema>(props: BlockNoteViewProps<BSchema, ISchema, SSchema> & {
ref?: React.ForwardedRef<HTMLDivElement>;
}) => ReturnType<typeof BlockNoteViewComponent<BSchema, ISchema, SSchema>>;
/**
* Renders the contentEditable editor itself (.bn-editor element) and the
* default UI elements.
*/
export declare const BlockNoteViewEditor: (props: {
children?: ReactNode;
}) => import("react/jsx-runtime").JSX.Element;
export {};