lexical 0.6.5 → 0.7.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.
@@ -37,6 +37,7 @@ export declare type EditorFocusOptions = {
37
37
  defaultSelection?: 'rootStart' | 'rootEnd';
38
38
  };
39
39
  export declare type EditorThemeClasses = {
40
+ blockCursor?: EditorThemeClassName;
40
41
  characterLimit?: EditorThemeClassName;
41
42
  code?: EditorThemeClassName;
42
43
  codeHighlight?: Record<string, EditorThemeClassName>;
@@ -168,7 +169,7 @@ declare type Listeners = {
168
169
  export declare type Listener = DecoratorListener | EditableListener | MutationListener | RootListener | TextContentListener | UpdateListener;
169
170
  export declare type ListenerType = 'update' | 'root' | 'decorator' | 'textcontent' | 'mutation' | 'editable';
170
171
  export declare type TransformerType = 'text' | 'decorator' | 'element' | 'root';
171
- export declare type IntentionallyMarkedAsDirtyElement = boolean;
172
+ declare type IntentionallyMarkedAsDirtyElement = boolean;
172
173
  declare type DOMConversionCache = Map<string, Array<(node: Node) => DOMConversion | null>>;
173
174
  export declare type SerializedEditor = {
174
175
  editorState: SerializedEditorState;
@@ -218,6 +219,7 @@ export declare class LexicalEditor {
218
219
  _htmlConversions: DOMConversionCache;
219
220
  _window: null | Window;
220
221
  _editable: boolean;
222
+ _blockCursorElement: null | HTMLDivElement;
221
223
  constructor(editorState: EditorState, parentEditor: null | LexicalEditor, nodes: RegisteredNodes, config: EditorConfig, onError: ErrorHandler, htmlConversions: DOMConversionCache, editable: boolean);
222
224
  isComposing(): boolean;
223
225
  registerUpdateListener(listener: UpdateListener): () => void;
package/LexicalGC.d.ts CHANGED
@@ -5,8 +5,10 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  */
8
- import type { IntentionallyMarkedAsDirtyElement, LexicalEditor } from './LexicalEditor';
8
+ import type { LexicalEditor } from './LexicalEditor';
9
9
  import type { EditorState } from './LexicalEditorState';
10
10
  import type { NodeKey } from './LexicalNode';
11
11
  export declare function $garbageCollectDetachedDecorators(editor: LexicalEditor, pendingEditorState: EditorState): void;
12
+ declare type IntentionallyMarkedAsDirtyElement = boolean;
12
13
  export declare function $garbageCollectDetachedNodes(prevEditorState: EditorState, editorState: EditorState, dirtyLeaves: Set<NodeKey>, dirtyElements: Map<NodeKey, IntentionallyMarkedAsDirtyElement>): void;
14
+ export {};
package/LexicalNode.d.ts CHANGED
@@ -79,9 +79,9 @@ export declare class LexicalNode {
79
79
  exportJSON(): SerializedLexicalNode;
80
80
  static importJSON(_serializedNode: SerializedLexicalNode): LexicalNode;
81
81
  remove(preserveEmptyParent?: boolean): void;
82
- replace<N extends LexicalNode>(replaceWith: N): N;
83
- insertAfter(nodeToInsert: LexicalNode): LexicalNode;
84
- insertBefore(nodeToInsert: LexicalNode): LexicalNode;
82
+ replace<N extends LexicalNode>(replaceWith: N, restoreSelection?: boolean): N;
83
+ insertAfter(nodeToInsert: LexicalNode, restoreSelection?: boolean): LexicalNode;
84
+ insertBefore(nodeToInsert: LexicalNode, restoreSelection?: boolean): LexicalNode;
85
85
  selectPrevious(anchorOffset?: number, focusOffset?: number): RangeSelection;
86
86
  selectNext(anchorOffset?: number, focusOffset?: number): RangeSelection;
87
87
  markDirty(): void;
@@ -5,8 +5,10 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  */
8
- import type { IntentionallyMarkedAsDirtyElement, LexicalEditor, MutatedNodes } from './LexicalEditor';
8
+ import type { LexicalEditor, MutatedNodes } from './LexicalEditor';
9
9
  import type { NodeKey } from './LexicalNode';
10
10
  import { EditorState } from './LexicalEditorState';
11
+ declare type IntentionallyMarkedAsDirtyElement = boolean;
11
12
  export declare function reconcileRoot(prevEditorState: EditorState, nextEditorState: EditorState, editor: LexicalEditor, dirtyType: 0 | 1 | 2, dirtyElements: Map<NodeKey, IntentionallyMarkedAsDirtyElement>, dirtyLeaves: Set<NodeKey>): MutatedNodes;
12
13
  export declare function storeDOMWithKey(key: NodeKey, dom: HTMLElement, editor: LexicalEditor): void;
14
+ export {};
package/LexicalUtils.d.ts CHANGED
@@ -29,7 +29,7 @@ export declare function getDOMTextNode(element: Node | null): Text | null;
29
29
  export declare function toggleTextFormatType(format: number, type: TextFormatType, alignWithFormat: null | number): number;
30
30
  export declare function $isLeafNode(node: LexicalNode | null | undefined): node is TextNode | LineBreakNode | DecoratorNode<unknown>;
31
31
  export declare function $setNodeKey(node: LexicalNode, existingKey: NodeKey | null | undefined): void;
32
- export declare function removeFromParent(writableNode: LexicalNode): void;
32
+ export declare function removeFromParent(node: LexicalNode): void;
33
33
  export declare function internalMarkNodeAsDirty(node: LexicalNode): void;
34
34
  export declare function internalMarkSiblingsAsDirty(node: LexicalNode): void;
35
35
  export declare function $setCompositionKey(compositionKey: null | NodeKey): void;
@@ -86,7 +86,7 @@ export declare function isDelete(keyCode: number): boolean;
86
86
  export declare function getCachedClassNameArray(classNamesTheme: EditorThemeClasses, classNameThemeType: string): Array<string>;
87
87
  export declare function setMutatedNode(mutatedNodes: MutatedNodes, registeredNodes: RegisteredNodes, mutationListeners: MutationListeners, node: LexicalNode, mutation: NodeMutation): void;
88
88
  export declare function $nodesOfType<T extends LexicalNode>(klass: Klass<T>): Array<T>;
89
- export declare function $getDecoratorNode(focus: PointType, isBackward: boolean): null | LexicalNode;
89
+ export declare function $getAdjacentNode(focus: PointType, isBackward: boolean): null | LexicalNode;
90
90
  export declare function isFirefoxClipboardEvents(editor: LexicalEditor): boolean;
91
91
  export declare function dispatchCommand<TCommand extends LexicalCommand<unknown>>(editor: LexicalEditor, command: TCommand, payload: CommandPayloadType<TCommand>): boolean;
92
92
  export declare function $textContentRequiresDoubleLinebreakAtEnd(node: ElementNode): boolean;
@@ -106,3 +106,5 @@ export declare function $copyNode<T extends LexicalNode>(node: T): T;
106
106
  export declare function $applyNodeReplacement<N extends LexicalNode>(node: LexicalNode): N;
107
107
  export declare function errorOnInsertTextNodeOnRoot(node: LexicalNode, insertNode: LexicalNode): void;
108
108
  export declare function $getNodeByKeyOrThrow<N extends LexicalNode>(key: NodeKey): N;
109
+ export declare function removeDOMBlockCursorElement(blockCursorElement: HTMLElement, editor: LexicalEditor, rootElement: HTMLElement): void;
110
+ export declare function updateDOMBlockCursorElement(editor: LexicalEditor, rootElement: HTMLElement, nextSelection: null | RangeSelection | NodeSelection | GridSelection): void;
@@ -5,4 +5,4 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  */
8
- export declare const VERSION = "0.6.5";
8
+ export declare const VERSION = "0.7.1";
package/index.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  *
8
8
  */
9
9
  export type { PasteCommandType } from './LexicalCommands';
10
- export type { CommandListenerPriority, CommandPayloadType, EditableListener, EditorConfig, EditorThemeClasses, IntentionallyMarkedAsDirtyElement, Klass, LexicalCommand, LexicalEditor, MutationListener, NodeMutation, SerializedEditor, Spread, } from './LexicalEditor';
10
+ export type { CommandListenerPriority, CommandPayloadType, EditableListener, EditorConfig, EditorThemeClasses, Klass, LexicalCommand, LexicalEditor, MutationListener, NodeMutation, SerializedEditor, Spread, } from './LexicalEditor';
11
11
  export type { EditorState, SerializedEditorState } from './LexicalEditorState';
12
12
  export type { DOMChildConversion, DOMConversion, DOMConversionFn, DOMConversionMap, DOMConversionOutput, DOMExportOutput, LexicalNode, NodeKey, NodeMap, SerializedLexicalNode, } from './LexicalNode';
13
13
  export type { BaseSelection, ElementPointType as ElementPoint, GridSelection, GridSelectionShape, NodeSelection, Point, RangeSelection, TextPointType as TextPoint, } from './LexicalSelection';
@@ -21,7 +21,7 @@ export type { EventHandler } from './LexicalEvents';
21
21
  export { $normalizeSelection as $normalizeSelection__EXPERIMENTAL } from './LexicalNormalization';
22
22
  export { $createNodeSelection, $createRangeSelection, $getPreviousSelection, $getSelection, $getTextContent, $insertNodes, $isNodeSelection, $isRangeSelection, DEPRECATED_$createGridSelection, DEPRECATED_$isGridSelection, } from './LexicalSelection';
23
23
  export { $parseSerializedNode } from './LexicalUpdates';
24
- export { $addUpdateTag, $applyNodeReplacement, $copyNode, $getDecoratorNode, $getNearestNodeFromDOMNode, $getNearestRootOrShadowRoot, $getNodeByKey, $getRoot, $hasAncestor, $isInlineElementOrDecoratorNode, $isLeafNode, $isRootOrShadowRoot, $nodesOfType, $setCompositionKey, $setSelection, } from './LexicalUtils';
24
+ export { $addUpdateTag, $applyNodeReplacement, $copyNode, $getAdjacentNode, $getNearestNodeFromDOMNode, $getNearestRootOrShadowRoot, $getNodeByKey, $getRoot, $hasAncestor, $isInlineElementOrDecoratorNode, $isLeafNode, $isRootOrShadowRoot, $nodesOfType, $setCompositionKey, $setSelection, } from './LexicalUtils';
25
25
  export { VERSION } from './LexicalVersion';
26
26
  export { $isDecoratorNode, DecoratorNode } from './nodes/LexicalDecoratorNode';
27
27
  export { $isElementNode, ElementNode } from './nodes/LexicalElementNode';
@@ -19,8 +19,6 @@ export declare type SerializedElementNode = Spread<{
19
19
  export declare type ElementFormatType = 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
20
20
  /** @noInheritDoc */
21
21
  export declare class ElementNode extends LexicalNode {
22
- /** @internal */
23
- __children: Array<NodeKey>;
24
22
  /** @internal */
25
23
  __first: null | NodeKey;
26
24
  /** @internal */
@@ -65,7 +63,7 @@ export declare class ElementNode extends LexicalNode {
65
63
  setIndent(indentLevel: number): this;
66
64
  splice(start: number, deleteCount: number, nodesToInsert: Array<LexicalNode>): this;
67
65
  exportJSON(): SerializedElementNode;
68
- insertNewAfter(selection: RangeSelection): null | LexicalNode;
66
+ insertNewAfter(selection: RangeSelection, restoreSelection?: boolean): null | LexicalNode;
69
67
  canInsertTab(): boolean;
70
68
  canIndent(): boolean;
71
69
  collapseAtStart(selection: RangeSelection): boolean;
@@ -21,7 +21,7 @@ export declare class LineBreakNode extends LexicalNode {
21
21
  updateDOM(): false;
22
22
  static importDOM(): DOMConversionMap | null;
23
23
  static importJSON(serializedLineBreakNode: SerializedLineBreakNode): LineBreakNode;
24
- exportJSON(): SerializedLineBreakNode;
24
+ exportJSON(): SerializedLexicalNode;
25
25
  }
26
26
  export declare function $createLineBreakNode(): LineBreakNode;
27
27
  export declare function $isLineBreakNode(node: LexicalNode | null | undefined): node is LineBreakNode;
@@ -8,7 +8,7 @@
8
8
  import type { EditorConfig, LexicalEditor } from '../LexicalEditor';
9
9
  import type { DOMConversionMap, DOMExportOutput, LexicalNode } from '../LexicalNode';
10
10
  import type { SerializedElementNode } from './LexicalElementNode';
11
- import type { Spread } from 'lexical';
11
+ import type { RangeSelection, Spread } from 'lexical';
12
12
  import { ElementNode } from './LexicalElementNode';
13
13
  export declare type SerializedParagraphNode = Spread<{
14
14
  type: 'paragraph';
@@ -23,8 +23,8 @@ export declare class ParagraphNode extends ElementNode {
23
23
  static importDOM(): DOMConversionMap | null;
24
24
  exportDOM(editor: LexicalEditor): DOMExportOutput;
25
25
  static importJSON(serializedNode: SerializedParagraphNode): ParagraphNode;
26
- exportJSON(): SerializedParagraphNode;
27
- insertNewAfter(): ParagraphNode;
26
+ exportJSON(): SerializedElementNode;
27
+ insertNewAfter(_: RangeSelection, restoreSelection: boolean): ParagraphNode;
28
28
  collapseAtStart(): boolean;
29
29
  }
30
30
  export declare function $createParagraphNode(): ParagraphNode;
@@ -29,9 +29,13 @@ export declare type TextMarks = Array<TextMark>;
29
29
  /** @noInheritDoc */
30
30
  export declare class TextNode extends LexicalNode {
31
31
  __text: string;
32
+ /** @internal */
32
33
  __format: number;
34
+ /** @internal */
33
35
  __style: string;
36
+ /** @internal */
34
37
  __mode: 0 | 1 | 2 | 3;
38
+ /** @internal */
35
39
  __detail: number;
36
40
  static getType(): string;
37
41
  static clone(node: TextNode): TextNode;
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "rich-text"
10
10
  ],
11
11
  "license": "MIT",
12
- "version": "0.6.5",
12
+ "version": "0.7.1",
13
13
  "main": "Lexical.js",
14
14
  "repository": {
15
15
  "type": "git",