import { TLinkElement } from '@udecode/plate-link'; import { TTableCellElement, TTableElement } from '@udecode/plate-table'; import { TAttachmentElement } from '../plugins/attachmentPlugin/types'; import { TIframeElement } from '../plugins/iframePlugin/types'; import { TImageElement } from '../plugins/imagePlugin/types'; /** * Deprecated plate schema types */ export type DeprecatedImageElement = TImageElement & { data: TImageElement['data'] & { src?: string; align?: SlateImgAlign; imageSize?: { width?: number; height?: number; }; }; }; export type DepreactedTTableElement = TTableElement & { data?: TTableElement['data'] & { cellSizes?: number[]; }; }; export type DeprecatedTTableCellElement = TTableCellElement & { data?: TTableCellElement['data'] & { colSpan?: number; rowSpan?: number; }; }; export type DeprecatedTLinkElement = TLinkElement & { data?: TLinkElement['data'] & { url?: string; }; }; export type DeprecatedTIframeElement = TIframeElement & { src?: string; data: TIframeElement['data'] & { src?: string; }; }; export type DeprecatedTAttachmentElement = TAttachmentElement & { data?: TAttachmentElement['data'] & { src?: string; }; }; /** * Legacy slate schema types */ /** Deprecated Slate content structure */ export type SlateSchema = { /** object type */ object: 'value'; /** document object */ document: { object: 'document'; nodes: SlateElement[]; data?: { [key: string]: unknown; }; [key: string]: unknown; }; /** any other key */ [key: string]: unknown; }; export type SlateElement = SlateBlockElement | SlateInlineElement | SlateTextElement; type ObjectType = 'text' | 'inline' | 'block' | 'mark' | 'value' | 'document'; export type SlateImgAlign = 'align-left' | 'align-right' | 'align-center'; interface DataObject { url?: string; cellSizes?: number[]; align?: SlateImgAlign; src?: string; imageSize?: { width?: number; height?: number; }; colSpan?: number; rowSpan?: number; path?: string; [key: string]: unknown; } interface SlateBaseElement { object: ObjectType; type?: string; nodes?: SlateElement[]; data?: DataObject; [key: string]: unknown; } export interface SlateBlockElement extends SlateBaseElement { object: 'block'; type: string; } export interface SlateInlineElement extends SlateBaseElement { object: 'inline'; type: string; } export interface SlateTextElement extends SlateBaseElement { object: 'text'; type?: never; text: string; marks?: SlateMark[]; } export interface SlateMark { object: 'mark'; type: string; data?: DataObject & { style?: { [key: string]: unknown; }; }; } export {}; //# sourceMappingURL=types.d.ts.map