UNPKG

2.78 kBTypeScriptView Raw
1import React from 'react';
2import { JSX } from 'react';
3import { Element, NodeEntry, Range, Text } from 'slate';
4import { ReactEditor } from '../plugin/react-editor';
5import { DOMRange } from '../utils/dom';
6/**
7 * `RenderElementProps` are passed to the `renderElement` handler.
8 */
9export interface RenderElementProps {
10 children: any;
11 element: Element;
12 attributes: {
13 'data-slate-node': 'element';
14 'data-slate-inline'?: true;
15 'data-slate-void'?: true;
16 dir?: 'rtl';
17 ref: any;
18 };
19}
20/**
21 * `RenderLeafProps` are passed to the `renderLeaf` handler.
22 */
23export interface RenderLeafProps {
24 children: any;
25 leaf: Text;
26 text: Text;
27 attributes: {
28 'data-slate-leaf': true;
29 };
30}
31/**
32 * `EditableProps` are passed to the `<Editable>` component.
33 */
34export type EditableProps = {
35 decorate?: (entry: NodeEntry) => Range[];
36 onDOMBeforeInput?: (event: InputEvent) => void;
37 placeholder?: string;
38 readOnly?: boolean;
39 role?: string;
40 style?: React.CSSProperties;
41 renderElement?: (props: RenderElementProps) => JSX.Element;
42 renderLeaf?: (props: RenderLeafProps) => JSX.Element;
43 renderPlaceholder?: (props: RenderPlaceholderProps) => JSX.Element;
44 scrollSelectionIntoView?: (editor: ReactEditor, domRange: DOMRange) => void;
45 as?: React.ElementType;
46 disableDefaultStyles?: boolean;
47} & React.TextareaHTMLAttributes<HTMLDivElement>;
48/**
49 * Editable.
50 */
51export declare const Editable: (props: EditableProps) => JSX.Element;
52/**
53 * The props that get passed to renderPlaceholder
54 */
55export type RenderPlaceholderProps = {
56 children: any;
57 attributes: {
58 'data-slate-placeholder': boolean;
59 dir?: 'rtl';
60 contentEditable: boolean;
61 ref: React.RefCallback<any>;
62 style: React.CSSProperties;
63 };
64};
65/**
66 * The default placeholder element
67 */
68export declare const DefaultPlaceholder: ({ attributes, children, }: RenderPlaceholderProps) => JSX.Element;
69/**
70 * A default memoized decorate function.
71 */
72export declare const defaultDecorate: (entry: NodeEntry) => Range[];
73/**
74 * Check if an event is overrided by a handler.
75 */
76export declare const isEventHandled: <EventType extends React.SyntheticEvent<unknown, unknown>>(event: EventType, handler?: ((event: EventType) => void | boolean) | undefined) => boolean;
77/**
78 * Check if the event's target is an input element
79 */
80export declare const isDOMEventTargetInput: <EventType extends React.SyntheticEvent<unknown, unknown>>(event: EventType) => boolean;
81/**
82 * Check if a DOM event is overrided by a handler.
83 */
84export declare const isDOMEventHandled: <E extends Event>(event: E, handler?: ((event: E) => void | boolean) | undefined) => boolean;
85//# sourceMappingURL=editable.d.ts.map
\No newline at end of file