File size: 1,106 Bytes
3d7d9b5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
export interface RefImage {
  id: string;
  url: string;
  x: number;
  y: number;
  width: number;
  height: number;
  aspectRatio: number;
  isDesaturated?: boolean;
  isFlippedH?: boolean;
  isFlippedV?: boolean;
  groupId?: string;
  crop?: { left: number; right: number; top: number; bottom: number; };
}

export interface TextNote {
  id: string;
  text: string;
  x: number;
  y: number;
  width: number;
  height?: number;
  color?: string;
  bgColor?: string;
  fontSize?: number;
  fontFamily?: string;
  alignment?: 'left' | 'center' | 'right';
  isBold?: boolean;
  isItalic?: boolean;
  isUnderline?: boolean;
  groupId?: string;
}

export type ContextMenuState = {
  x: number;
  y: number;
  imageId: string | null;
} | null;

export interface Point {
  x: number;
  y: number;
}

export interface Palette {
  imageId: string;
  colors: string[];
  x: number;
  y: number;
}

export interface AnnotationPath {
  id: string;
  points: Point[];
  color: string;
  strokeWidth: number;
  groupId?: string;
  isHighlighter?: boolean;
}