UNPKG

edix

Version:

An experimental, framework agnostic, small (~3kB) contenteditable state manager.

18 lines (17 loc) 636 B
export declare const NODE_TEXT = 1; export declare const NODE_VOID = 2; export type TextNode = Readonly<{ type: typeof NODE_TEXT; text: string; }>; export type VoidNode = Readonly<{ type: typeof NODE_VOID; data: Record<string, unknown>; }>; export type NodeData = TextNode | VoidNode; export type DocFragment = readonly (readonly NodeData[])[]; export type Position = readonly [line: number, offset: number]; export type SelectionSnapshot = readonly [anchor: Position, focus: Position]; export type Writeable<T> = T extends Record<string, unknown> | readonly unknown[] ? { -readonly [key in keyof T]: T[key]; } : T;