返回 presentation-ai
types.ts
1 import { type TElement, type TText } from "platejs";
2
3 export interface GeneratingText extends TText {
4 text: string;
5 generating?: boolean;
6 }
7
8 // Shared image crop settings used across presentation components
9 export interface ImageCropSettings {
10 objectFit: "cover" | "contain" | "fill" | "none" | "scale-down";
11 objectPosition: { x: number; y: number };
12 // Zoom level for pan/zoom cropping. Defaults to 1 when omitted.
13 zoom?: number;
14 }
15
16 // Plate element types
17 export type ParagraphElement = TElement & { type: "p" };
18 export type HeadingElement = TElement & {
19 type: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
20 };
21 export type ImageElement = TElement & {
22 type: "img";
23 url: string;
24 query: string;
25 };
26
27 export type TChartElement = TElement & {
28 type: "chart";
29 chartType: "horizontal-bar" | "vertical-bar" | "pie" | "line";
30 data: Array<{ label: string; value: number }>;
31 };
32
32 lines TYPESCRIPT