@lexical/react
Version:
This package provides Lexical components and hooks for React applications.
81 lines (73 loc) • 2.19 kB
Flow
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow strict
*/
import type { LexicalEditor } from 'lexical';
// $FlowFixMe - Not able to type this with a flow extension
import type {TRefFor} from 'CoreTypes.flow';
import * as React from 'react';
type InlineStyle = {
[key: string]: mixed,
};
// Due to Flow limitations, we prefer fixed types over the built-in inexact HTMLElement
type HTMLDivElementDOMProps = $ReadOnly<{
'aria-label'?: void | string,
'aria-labeledby'?: void | string,
'aria-activedescendant'?: void | string,
'aria-autocomplete'?: void | string,
'aria-describedby'?: void | string,
'aria-errormessage'?: void | string,
'aria-invalid'?: void | boolean,
'aria-owns'?: void | string,
'title'?: void | string,
onClick?: void | ((e: SyntheticEvent<HTMLDivElement>) => mixed),
autoCapitalize?: void | boolean,
autoComplete?: void | boolean,
autoCorrect?: void | boolean,
id?: void | string,
className?: void | string,
'data-testid'?: void | string,
role?: void | string,
spellCheck?: void | boolean,
suppressContentEditableWarning?: void | boolean,
tabIndex?: void | number,
style?: void | InlineStyle | CSSStyleDeclaration,
'data-testid'?: void | string,
}>;
export type PlaceholderProps =
| $ReadOnly<{
'aria-placeholder'?: void,
placeholder?: null,
}>
| $ReadOnly<{
'aria-placeholder': string,
placeholder:
| ((isEditable: boolean) => null | React.Node)
| null
| React.Node,
}>;
export type Props = $ReadOnly<{
...HTMLDivElementDOMProps,
ariaActiveDescendant?: string,
ariaAutoComplete?: string,
ariaControls?: string,
ariaDescribedBy?: string,
ariaErrorMessage?: string,
ariaExpanded?: boolean,
ariaInvalid?: boolean,
ariaLabel?: string,
ariaLabelledBy?: string,
ariaMultiline?: boolean,
ariaOwns?: string,
ariaRequired?: string,
autoCapitalize?: boolean,
...PlaceholderProps,
}>;
declare export var ContentEditable: component(
ref: React.RefSetter<HTMLDivElement>,
...Props
);